1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| #include <LiquidCrystal.h> #include <DHT11.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); DHT11 dht11(6); int motor = 7; int RH = 0; int RH_limit = 30; char ID[12] = {}; void setup() { Serial.begin(9600); lcd.begin(16, 2); pinMode(motor, OUTPUT); } void flushLCD() { lcd.setCursor(0, 0); lcd.print("ID:"); lcd.print(ID); lcd.setCursor(0, 1); lcd.print("RH:"); lcd.print(RH); } void checkMotor() { if (RH > RH_limit) { digitalWrite(motor, LOW); } else { digitalWrite(motor, HIGH); } } void serialWrite() { Serial.print("RH:"); Serial.println(RH); } void loop() { RH = dht11.readHumidity(); if (Serial.available()) { for (int i = 0; i < 11 && Serial.available(); ++i) { ID[i] = char(Serial.read()); } for (int i = 0; i < 11; ++i) { if (ID[i + 1] == 0) { RH_limit = 30 + ID[i] - '0'; } } } flushLCD(); checkMotor(); serialWrite(); delay(1000); }
|