Intro till Intel XDK IoT upplagan användande en temperatur Display (2 / 3 steg)
Steg 2: Skriv koden!
Programmering med XDK är lite annorlunda från programmering med Arduino. Arduino är i C, men XDK är med JavaScript. Viss erfarenhet med programmering är nödvändigt att förstå vad som pågår här, även om ingen behövs för att få detta att fungera. Jag har personligen erfarenhet i många språk, så allt jag behöver generellt att plocka upp en ny är nyckelorden. Jag försökt dokumentera vad jag kände var nödvändigt/hjälp, men om du behöver något förklarade bara fråga mig!
/ * jslint nod: true, vars:true, bitvis: true, unparam:true * /
/ * jshint oanvända: sant * /
Dessa ovan krävs av javascript.
var mraa = require("mraa"); Ett nytt objekt av klassen "mraa"
Grove Temperaturmodul, ansluten till analoga pin 0
var temperatur = nya mraa. AIO(0);
var B = 3975;
var knapp = nya mraa. Gpio(5);
var buttonState = 0;
var clearString = ""; Kommer att kallas när vi vill ta bort en linje på LCD
var skärmen = require('jsupm_i2clcd'); Ett nytt objekt av klassen "jsupm_i2clcd" (LCD-klass)
var Lcd = nya Screen.Jhd1313m1 (0, 0x3E, 0x62); Initiera Jhd1313m1 på 0x62 (RGB_ADDRESS) och 0x3E (LCD_ADDRESS)
Dessa är de 2 metoderna av LCD-. setCursor(row,column) och write(string)
Lcd.setCursor(0,0);
LCD.write("temperature:");
starta funktioner
checkButton();
tempDisplay();
funktion tempDisplay()
{
Om knappen inte trycks, Visa temperaturen...
IF(buttonState == 0)
{
var fahrenheit_temperature = getTemp(); be om temperaturen
Lcd.setCursor(1,0);
LCD.write(clearString); Avmarkera "HOLD" strängen, om det var där
Lcd.setCursor(1,0);
LCD.write ("F:" + parseInt(fahrenheit_temperature*100,10)/100); Detta visar temperaturen till 2 decimaler
}
setTimeout(tempDisplay,1000); ... varje sekund
}
funktion getTemp()
{
var en = temperature.read();
var motstånd = (1023 - en) * 10000 / a; få motståndet av sensorn;
var celsius_temperature = 1 / (Math.log(resistance / 10000) / B + 1 / 298.15) - 273.15; konvertera till temperatur, baserat på Groves datablad
var fahrenheit_temperature = (celsius_temperature * (9 / 5)) + 32; konvertera till fahrenheit
återvända fahrenheit_temperature; returnera temperaturen
}
funktion checkButton()
{
buttonState = button.read();
Låt användaren veta temperaturen visningen hålls
IF(buttonState == 1)
{
Lcd.setCursor(1,10);
LCD.write("Hold");
}
setTimeout(checkButton,10); kalla denna funktion varje 10 millisekunder
}
Jag skrev några andra Instructables med denna temperatur display som exempel inställning. I dem hade jag knappen aktivera bakgrundsbelysningen i några sekunder. Detta är lite annorlunda eftersom jag har knappen "håller" aktuell temperatur. Jag vet inte och kan inte hitta några referenser på hur, aktivera/inaktivera eller ändra färg på RGB bakgrundsbelysningen.