Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| veranstaltungen:hessen20162:arduino-workshop-notizen [04.10.2016 10:51] – [Arduino Sketch (Programm):] ipsecguy | veranstaltungen:hessen20162:arduino-workshop-notizen [04.10.2016 11:01] (aktuell) – [Arduino Sketch (Programm):] ipsecguy | ||
|---|---|---|---|
| Zeile 49: | Zeile 49: | ||
| <file text arduino-freifunk.ino> | <file text arduino-freifunk.ino> | ||
| + | #include < | ||
| OneWire | OneWire | ||
| + | |||
| + | #include " | ||
| + | #define DHTPIN 2 // what digital pin we're connected to | ||
| + | #define DHTTYPE DHT11 // DHT 11 | ||
| + | //#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 | ||
| + | //#define DHTTYPE DHT21 // DHT 21 (AM2301) | ||
| + | DHT dht(DHTPIN, DHTTYPE); | ||
| + | |||
| + | bool running = false; | ||
| + | |||
| + | void setup(void) { | ||
| + | pinMode(13, OUTPUT); | ||
| + | digitalWrite(13, | ||
| + | Serial.begin(9600); | ||
| + | Serial.setTimeout(1000); | ||
| + | dht.begin(); | ||
| + | digitalWrite(13, | ||
| + | } | ||
| + | |||
| + | void loop(void) { | ||
| + | byte i; | ||
| + | byte present = 0; | ||
| + | byte type_s; | ||
| + | byte data[12]; | ||
| + | byte addr[8]; | ||
| + | float celsius, fahrenheit; | ||
| + | float h,t; | ||
| + | |||
| + | if( !running ){ | ||
| + | digitalWrite(13, | ||
| + | Serial.flush(); | ||
| + | while(!Serial.available()){ | ||
| + | delay(500); | ||
| + | } | ||
| + | digitalWrite(13, | ||
| + | |||
| + | Serial.readString(); | ||
| + | Serial.flush(); | ||
| + | |||
| + | running = true; // start execution | ||
| + | } | ||
| + | |||
| + | if ( !ds.search(addr)) { | ||
| + | ds.reset_search(); | ||
| + | |||
| + | //DHT11 Code | ||
| + | h = dht.readHumidity(); | ||
| + | t = dht.readTemperature(); | ||
| + | if (!isnan(h) && !isnan(t)) { | ||
| + | Serial.print(" | ||
| + | Serial.print(t); | ||
| + | Serial.print(" | ||
| + | Serial.println(h); | ||
| + | } | ||
| + | Serial.println(" | ||
| + | |||
| + | running = false; // done with this cycle, wait again | ||
| + | return; | ||
| + | } | ||
| + | |||
| + | if (OneWire:: | ||
| + | Serial.println(" | ||
| + | return; | ||
| + | } | ||
| + | | ||
| + | // the first ROM byte indicates which chip | ||
| + | switch (addr[0]) { | ||
| + | case 0x10: | ||
| + | // Serial.println(" | ||
| + | type_s = 1; | ||
| + | break; | ||
| + | case 0x28: | ||
| + | // Serial.println(" | ||
| + | type_s = 0; | ||
| + | break; | ||
| + | case 0x22: | ||
| + | // Serial.println(" | ||
| + | type_s = 0; | ||
| + | break; | ||
| + | default: | ||
| + | // Serial.println(" | ||
| + | return; | ||
| + | } | ||
| + | | ||
| + | ds.reset(); | ||
| + | ds.select(addr); | ||
| + | ds.write(0x44, | ||
| + | | ||
| + | } | ||
| + | |||
| </ | </ | ||