- Doel
Het doel is dat we een proefopstelling bouwen met behulp van een ESP8266 (= MicroControllerUnit) en DHT11 (= temperatuur- en vochtigheidssensor) die we vervolgens gaan programmeren via de IoT Cloud. De bedoeling is dat we de sensorwaarden dus de data op afstand kunnen visualiseren via de seriële monitor op de IoT Cloud
(zie afbeelding hierboven) of op de remote app.
-
Wat is een microcontroller (=MCU)
Een microcontroller is eigenlijk een kleine programmeerbare computer met een:
- geïntegreerde chip
- CPU kernen
- RAM
- programmeerbare input en output
- een programma waarmee je de MCU programmeert (Arduino)
- …
-
Wat is IoT in dit project
Internet of Things (IoT) is een manier om via internet info van een MCU naar de Cloud te sturen.
-
Hoe zijn we te werk gegaan
eerst en vooral zijn we begonnen met research te doen over hoe we de sensorwaarden of data (van de DHT11) konden aflezen op de Iot Cloud van Arduino en op de Arduino Remote app met behulp van een ESP8266. Na een lange tijd zoeken en proberen zijn we uiteindelijk tot een werkende oplossing gekomen. hierboven op de foto kan je zien hoe alles er uit ziet als alles geprogrammeerd is. We kunnen alle sensorwaarden (temperatuur + vochtigheid) aflezen via de Arduino IoT Cloud en de Remote app.
-
De proefopstelling
-
Gebruikte componenten
1) Arduino ESP8266: (MicroControllerUnit met wifi toepassingen)
2) DHT11: (Temperatuur- en vochtigheidssensor)
3) Breadboard: (is een bordje, dat bestaat uit rijen gaatjes waarin de verschillende componenten geprikt kunnen worden)
4) Wires: (kabels voor de verbinding tussen de verschillende componenten)
-
De code
Deze code is bestemd voor de IoT cloud van Arduino.
#include "thingProperties.h" // lees library "thingproperties.h"
#include "DHT.h" // lees library "DHT.h"
#define DHTPIN 2 // definieer dat pin2
#define DHTTYPE DHT11 // definieer type sensor, de DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600); // seriële monitor met 9600 baudrate
dht.begin(); // start de DHT op
delay(1500); // wacht 1,5 seconden
initProperties();
setDebugMessageLevel(2);
ArduinoCloud.printDebugInfo();
}
void loop() {
ArduinoCloud.update(); // update de arduino IoT cloud
float h = dht.readHumidity(); // lees vochtigheidsdata af
float t = dht.readTemperature(); // lees temperatuur data af
temperature = t;
humidity = h;
}
void onLEDChange() {
if (LED == 0)
{ digitalWrite(2, HIGH); // stuur stroom door pin 2
}
else
{ digitalWrite(2, LOW); // stuur geen stroom meer door pin 2
}
}
-
Flowchart over de code
Reactie plaatsen
Reacties