Inbäddade Arduino (smarta apparater) (7 / 9 steg)
Steg 7: Lägga till en LCD
Snarare än att ha en dator ansluten till att läsa den seriella produktionen, lägger jag en LCD för att Visa temperaturen och luftfuktigheten. Detta kräver några ändringar av koden och naturligtvis mer anslutningar. Ta bort LCD när du bränner en bootloader.
Delar som behövs:
LCD-modul för Arduino 20 x 4, vit på blå
Anslut per den bifogade schematiska, använder Arduino stift till Chip stift karta som tillhandahålls.
Kodförändringar är följande:
Exempel testning skiss för olika DHT luftfuktighet/temperatur sensorer
Skrivet av ladyada, offentlig
Fahrenheit konvertering och LCD kod lagts till av Steve Spence, http://arduinotronics.blogspot.com
#include
Anslutningar:
rs (LCD stift 4) till Arduino stift 7
RW (LCD pin 5) till Arduino - järnväg
Aktivera (LCD stift 6) till Arduino stift 8
LCD stift d4, d5, d6 och d7 till Arduino stift 9, 10, 11, 12
LiquidCrystal lcd (7, 8, 9, 10, 11, 12);
#include "DHT.h"
#define DHTPIN 2 / / vilken pin vi är ansluten till
Avkommentera oavsett vilken typ du använder!
#define DHTTYPE DHT11 / / DHT 11
#define DHTTYPE DHT22 / / DHT 22 (AM2302)
#define DHTTYPE DHT21 / / DHT 21 (AM2301)
Ansluta pin + (mitten) av sensorn till + 5V
Ansluta stift S (på rätten) av sensorn till vad din DHTPIN är
Ansluta stift - (på vänster) av sensorn till marken
DHT dht (DHTPIN, DHTTYPE);
void setup() {
Serial.BEGIN(9600);
Serial.println ("DHTxx test!");
DHT.BEGIN();
}
void loop() {
Läst temperatur eller fuktighet tar cirka 250 millisekunder!
Sensormätningar kan också vara upp till 2 sekunder "gamla" (det är en mycket långsam sensor)
flyta h = dht.readHumidity();
flyta t = dht.readTemperature();
kolla om avkastningen är giltig, om de är NaN (inte ett tal) då något gick fel!
om (isnan(t) || isnan(h)) {
Serial.println ("kunde inte läsa från DHT");
} annat {
Serial.Print ("luftfuktighet:");
Serial.Print(h);
Serial.Print ("% \t");
Serial.Print ("temperatur:");
Serial.Print(t*1.8+32);
Serial.println ("* F");
LCD-kod
LCD.BEGIN(20,4); kolumner, rader. använda 16,2 för en 16 x 2 LCD; 20,4 för en 20 x 4 LCD.
LCD.Clear(); börja med en tom skärm
lcd.setCursor(0,0); ställa markören till kolumn 0, raden 0 (första raden)
LCD.Print("humidity"); ändra texten till vad du vill. hålla den ren.
lcd.setCursor(0,1); ställa markören till kolumn 0, rad 1
LCD.Print(h);
LCD.Print (("% \t");
lcd.setCursor(0,2); ställa markören till kolumn 0, rad 2
LCD.Print("temperature:");
lcd.setCursor(0,3); ställa markören till kolumn 0, rad 3
LCD.Print(t*1.8+32);
LCD.Print ("* F");
}
}