Files
J1B1-CMB/arduino/sensor combo/combi/combi.ino

91 lines
2.8 KiB
C++

//de library van de tempratuur en vochtisheid sensor er bij pakken.
//moet je instaleren via linker tabje moet boeken en dan dht11 op te zoeke n in het zoek veld en daarna de dht11 extensie te installeren
#include <DHT11.h>
#include <WiFi.h>
#include <WiFiClient.h>
#include <WiFiAP.h>
#include <WiFiMulti.h>
#include <HTTPClient.h>
// LDR = 12, geeft gaan dat het variable LDR terugwijst naar 12.
#define LDR 17
//tegen DHT11 library zeggen dat we het variabel TLV(Temparatuur LuchtVochtigheid) willen geven en dat het de informatie van pin 18 kan halen.
DHT11 TLV(18);
WiFiMulti wifiMulti;
HTTPClient http;
void setup() {
//hoeveel bits er per seconden worden gestuurd naar de pc, moet je ook instellen in arduino IDE anders krijg je gibberish terug in je serial monitor.
Serial.begin(9600);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
digitalWrite(6, HIGH);
Serial.print("mac adress:");
Serial.println(WiFi.macAddress());
//verbinden met wifi
WiFi.mode(WIFI_STA);
wifiMulti.addAP("ObsidianAmstelveen", "drijversstraatmaastricht");
wifiMulti.addAP("iotroam", "BcgrFpX3kl");
//een loop zodat het script wacht tot de esp32s3 verbind met het internet
while (wifiMulti.run() != WL_CONNECTED) {
}
//print het ip adress van de esp32s3 naar de console
Serial.println(WiFi.localIP());
//gebruikt deze website om posts requests naar toe te sturen
http.begin("http://hva-onto.nl/api/ti/map/measurements/add?api-key=efffc47610ea6282a3416f71b51b3a");
digitalWrite(4, HIGH);
}
void loop() {
digitalWrite(5, LOW);
//int geeft aan dat het een geheeld nummer moet zijn, als je float gebruikt kan het ook nog decimalen hebben
// eerste 2 zijn van DHT om data van af te lezen en op te slaan in het variabel
//laatste is om de lichtsensor analoog af te lezen en op te slaan in een variabel
float Luchtvochtigheid = TLV.readHumidity();
float Temparatuur = TLV.readTemperature();
float Lichtsterkte = analogRead(LDR);
//hier worden alle variabelen in de serial monitor uitgespuugt, en websites kunnen ook de Serial.print lezen.
Serial.println("----------");
Serial.print("Temparatuur celcius: ");
Serial.println(Temparatuur);
Serial.print("vochtigheid: ");
Serial.println(Luchtvochtigheid);
Serial.print("LDR reading: ");
Serial.println(Lichtsterkte);
//voeg een header toe aan de post request
http.addHeader("Content-Type", "application/x-www-form-urlencoded");
//de data stoppen in een variabel voor de post request
String httpRequestData = "type=temperature&value=" + String(Temparatuur);
//stuur de post request naar de server toe
int httpResponseCode = http.POST(httpRequestData);
//print de response code naar
Serial.print("HTTP Response code:");
Serial.println(httpResponseCode);
//wacht x aanal miliseconden
digitalWrite(5, HIGH);
delay(400);
}