Miniatyr grönt hus med arduino (9 / 12 steg)
Steg 9: Skriva koden för det gröna huset
Detta är koden jag skrev för min gröna hus som be om vatten om luftfuktigheten är lägre än 50%
Kopiera koden och formatera den i Aduino IDE så det är lättare att läsa (ctrl + T)
#include "DHT.h" / / DHT & AM2302 bibliotek
#include / / servo bibliotek
Version nummer const float fVerNum = 0,03;
Data pin ansluten till AM2302 #define DHTPIN 2
#define DHTTYPE DHT22 / / DHT 22 (AM2302)
DHT dht (DHTPIN, DHTTYPE); LED stift
Servo myservo; skapa objekt för att styra en servo servo / / maximalt åtta servo objekt kan skapas
int pos = 0; variabel att lagra servo position
/ / / / SETUP / / void setup() {/ / Setup seriell övervaka Serial.begin(9600);
servo stift 9 myservo.attach(9);
Vänta 3 sekunder delay(3000);
Serial.println F ("\nAM2302 Sensor"). Serial.Print (F ("Version:")); Serial.println(fVerNum); Serial.println F ("Arduino - Derek Erb\n"). Delay(5000);
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 (F ("kunde inte läsa från DHT"));} annat {Serial.print (F ("luftfuktighet:")); Serial.Print(h); Serial.Print F ("% \t"). Serial.Print (F ("temperatur:")); Serial.Print(t); Serial.println (F("C"));
om (h < 50) {/ / om luftfuktigheten är lägre än 50 växterna bör vara waterd för (pos = 0; pos < 180; pos + = 1) / / går från 0 grader till 180 grader {/ / i steg om 1 grad myservo.write(pos); / / tala servo gå för att placera i variabel "pos"}} annat {för (pos = 180, pos > = 1; pos-= 1) / / går från 180 grader till 0 grader {myservo.write(pos); / / tala servo gå för att placera i variabel "pos" / / väntar 15 MS för servo att nå ståndpunkten}}}
Vänta 3 sekunder delay(3000); }