Auf dieser Demoseite wird die ausgelesene Temperatur und die gemessene Luftfeuchtigkeit angezeigt.
Für eine Terrarien-Steuerung kann mit diesen Werten der Befeuchter bzw. die Heizung angesteuert werden.
char tempNow[15]=““; //Array für Zahlendarstellung char humNow[15]=““; //Array für Zahlendarstellung void display_terra() { CleO.Start(); int tiefeBt1 = 100; //Titel CleO.StringExt(FONT_MEDIUM, 160, 0, BLUE, TM, 0, 0, „HOKA I2C DEMO“); //Hintergrund CleO.RectangleExt(0, 50, 350, 500, WHITE, TL, 0, 0); //Ueberschrift CleO.StringExt(FONT_MEDIUM, 160, 80, BLACK, MM, 0, 0, „Temperatur /“); CleO.StringExt(FONT_MEDIUM, 160, 125, BLACK, MM, 0, 0, „Luftfeuchtigkeit“); //Konvertiere int zu String itoa(getTemperature(),tempNow,10); //Fuer Temperatur itoa(getHumidity(),humNow,10); //Fuer Luftfeuchtigkeit //Zeichne Anzeige CleO.CircleExt(80, 220, 40, 45, LIGHTGREY, MM, 0, 0); CleO.CircleExt(220, 220, 40, 45, LIGHTGREY, MM, 0, 0); CleO.RectangleExt(0, 220 , 320, 480, WHITE, TL, 0, 0); //Zeichne Temperatur Nadel CleO.NeedleWidth(10); CleO.NeedleExt(80, 220, 50, BLUE, controlNeedleTemp(getTemperature()+90), 0); CleO.StringExt(FONT_MEDIUM, 65, 250, BLACK, TM, 0, 0, tempNow); CleO.StringExt(FONT_MEDIUM, 95, 250, BLACK, TM, 0, 0, “ C“); //Zeichne Feuchtigkeits Nadel CleO.NeedleExt(220, 220, 50, BLUE, controlNeedleHum(getHumidity()+90), 0); CleO.StringExt(FONT_MEDIUM, 205, 250, BLACK, TM, 0, 0, humNow); CleO.StringExt(FONT_MEDIUM, 235, 250, BLACK, TM, 0, 0, “ %“); CleO.LineWidth(30); //Funktion für zurueck-Button if (penDownOnBack) { penDownOnBack = false; globalCurrSite = 0; } //Startseite-Button CleO.Tag(100); CleO.LineColor(BLUE); CleO.Line(0, 375, 350, 375); CleO.StringExt(FONT_MEDIUM,160, 375, WHITE, MM, 0, 0, „Startseite“); //Footer CleO.StringExt(FONT_SANS_2, 160, 440, BLUE, TM, 0, 0, „www.horter.de“); CleO.Show(); } float getTemperature() { return dht.readTemperature(); //DHT Library-Befehl } float getHumidity() { return dht.readHumidity(); //DHT Library-Befehl } int controlNeedleTemp(int val) { double b = 1.1; int res = b*val; return res; } int controlNeedleHum(int val) { double b = 1.4; int res = b*val; return res; } void control_terra() { int16_t x, y, dur, tag; CleO.TouchCoordinates(x, y, dur, tag); if (previousDur == 0 && dur != 0) { previousTag = tag; previousDur = 1; if (tag == 100) penDownOnBack = true; } else if (previousDur == 1 && dur == 0) { previousDur = 0; if (previousTag == 100) penDownOnBack = false; } }
Der Code der einzelnen Bildschirmseiten finden Sie hier:
FTDI NerO + Startseite
FTDI NerO + I2C-Digital Output
FTDI NerO + I2C-Digital Input
FTDI NerO + AM2322 T/F-Sensor
Den kompletten Code kann hier heruntergeladen werden:
Demoprogramm für Arduino-IDE FTDI NerO und CleO35 mit I2C-Modulen (614 Downloads)