Een vochtigheidssensor met Arduino gebruiken
Boden- oder Hautfeuchtigkeit messen und einen Warnton auslösen
Kies een microcontroller
Pinnen, schakelschema en sketch in de werkstappen wisselen mee met je selectie. Deze blijft opgeslagen.
Den Feuchtigkeitssensor in Betrieb nehmen
Pinbezetting Arduino UNO
Beim Arduino UNO schreibst du die Pin-Nummer direkt in den Sketch, also 5 und 7 ohne Zusatz.
// Variable für die Speicherung des Messwertes
int Messwert = 0;
void setup()
{
// Seriellen Monitor starten
Serial.begin(9600);
}
void loop()
{
// Messwert am analogen Anschluss A0 lesen
Messwert = analogRead(A0);
// Messwert im Seriellen Monitor anzeigen
Serial.print("Feuchtigkeits-Messwert:");
Serial.println(Messwert);
// Pause 500 Millisekunden
delay(500);
}Download: programmcode-messwert-anzeigen-uno-wemos-d1-mini-nodemcu.ino
Board in de Arduino IDEArduino Uno
Ein zusätzliches Board-Paket brauchst du dafür nicht. Der UNO ist in der Arduino IDE ab Werk dabei.
Pinbezetting Wemos D1 Mini
Den Pin-Nummern muss das D vorangestellt werden. Du schreibst also D6 und D7 in den Sketch, nicht 6 und 7.
// Variable für die Speicherung des Messwertes
int Messwert = 0;
void setup()
{
// Seriellen Monitor starten
Serial.begin(9600);
}
void loop()
{
// Messwert am analogen Anschluss A0 lesen
Messwert = analogRead(A0);
// Messwert im Seriellen Monitor anzeigen
Serial.print("Feuchtigkeits-Messwert:");
Serial.println(Messwert);
// Pause 500 Millisekunden
delay(500);
}Download: programmcode-messwert-anzeigen-uno-wemos-d1-mini-nodemcu.ino
Board in de Arduino IDELOLIN(WEMOS) D1 R2 & mini
Dafür muss die ESP8266-Boardverwaltung installiert sein. Du fügst sie einmalig über die Einstellungen der Arduino IDE hinzu.
Pinbezetting ESP32-Wroom
Beim ESP32 schreibst du die GPIO-Nummer direkt in den Sketch, also 26 und 27 ohne D davor.
// Variable für die Speicherung des Messwertes
int Messwert = 0;
void setup()
{
// Seriellen Monitor starten
Serial.begin(9600);
// ADC-Wandler ESP32 auf 10 Bit (0-1023)
analogReadResolution(10);
}
void loop()
{
// Messwert am analogen Anschluss 33 lesen
Messwert = analogRead(33);
// Messwert im Seriellen Monitor anzeigen
Serial.print("Feuchtigkeits-Messwert:");
Serial.println(Messwert);
// Pause 500 Millisekunden
delay(500);
}Download: programmcode-messwert-anzeigen-esp32-wroom.ino
Board in de Arduino IDEESP32 Dev Module
Dafür muss die ESP32-Boardverwaltung installiert sein. Du fügst sie einmalig über die Einstellungen der Arduino IDE hinzu.
Pinbezetting NodeMCU
Auch beim NodeMCU steht vor der Pin-Nummer ein D. D1 entspricht GPIO 5, D2 entspricht GPIO 4.
// Variable für die Speicherung des Messwertes
int Messwert = 0;
void setup()
{
// Seriellen Monitor starten
Serial.begin(9600);
}
void loop()
{
// Messwert am analogen Anschluss A0 lesen
Messwert = analogRead(A0);
// Messwert im Seriellen Monitor anzeigen
Serial.print("Feuchtigkeits-Messwert:");
Serial.println(Messwert);
// Pause 500 Millisekunden
delay(500);
}Download: programmcode-messwert-anzeigen-uno-wemos-d1-mini-nodemcu.ino
Board in de Arduino IDENodeMCU 1.0 (ESP-12E Module)
Dafür muss die ESP8266-Boardverwaltung installiert sein. Du fügst sie einmalig über die Einstellungen der Arduino IDE hinzu.
Erweiterung: Lautsprecher bei zu hoher Feuchtigkeit
Pinbezetting Arduino UNO
Beim Arduino UNO schreibst du die Pin-Nummer direkt in den Sketch, also 5 und 7 ohne Zusatz.
// Variable für die Speicherung des Messwertes
int Messwert = 0;
void setup()
{
// Seriellen Monitor starten
Serial.begin(9600);
// Lautsprecher an Pin 7
pinMode(7, OUTPUT);
}
void loop()
{
// Messwert am analogen Anschluss A0 lesen
Messwert = analogRead(A0);
// Messwert im Seriellen Monitor anzeigen
Serial.print("Feuchtigkeits-Messwert:");
Serial.println(Messwert);
// wenn der Messwert > 200 -> Lautsprecher an
if (Messwert > 200) digitalWrite(7, HIGH);
// wenn der Messwert <= 200 -> Lautsprecher ausschalten
else digitalWrite(7, LOW);
// Pause 500 Millisekunden
delay(500);
}Download: programmcode-mit-lautsprecher-arduino-uno.ino
Pinbezetting Wemos D1 Mini
Den Pin-Nummern muss das D vorangestellt werden. Du schreibst also D6 und D7 in den Sketch, nicht 6 und 7.
// Variable für die Speicherung des Messwertes
int Messwert = 0;
void setup()
{
// Seriellen Monitor starten
Serial.begin(9600);
// Lautsprecher an Pin D1
pinMode(D1, OUTPUT);
}
void loop()
{
// Messwert am analogen Anschluss A0 lesen
Messwert = analogRead(A0);
// Messwert im Seriellen Monitor anzeigen
Serial.print("Feuchtigkeits-Messwert:");
Serial.println(Messwert);
// wenn der Messwert > 200 -> Lautsprecher an
if (Messwert > 200) digitalWrite(D1, HIGH);
// wenn der Messwert <= 200 -> Lautsprecher ausschalten
else digitalWrite(D1, LOW);
// Pause 500 Millisekunden
delay(500);
}Download: programmcode-mit-lautsprecher-wemos-d1-mini.ino
Pinbezetting ESP32-Wroom
Beim ESP32 schreibst du die GPIO-Nummer direkt in den Sketch, also 26 und 27 ohne D davor.
// Variable für die Speicherung des Messwertes
int Messwert = 0;
void setup()
{
// Seriellen Monitor starten
Serial.begin(9600);
// ADC-Wandler ESP32 auf 10 Bit (0-1023)
analogReadResolution(10);
// Lautsprecher an Pin 19
pinMode(19, OUTPUT);
}
void loop()
{
// Messwert am analogen Anschluss 33 lesen
Messwert = analogRead(33);
// Messwert im Seriellen Monitor anzeigen
Serial.print("Feuchtigkeits-Messwert:");
Serial.println(Messwert);
// wenn der Messwert > 200 -> Lautsprecher an
if (Messwert > 200) digitalWrite(19, HIGH);
// wenn der Messwert <= 200 -> Lautsprecher ausschalten
else digitalWrite(19, LOW);
// Pause 500 Millisekunden
delay(500);
}Download: programmcode-mit-lautsprecher-esp32-wroom.ino
Pinbezetting NodeMCU
Auch beim NodeMCU steht vor der Pin-Nummer ein D. D1 entspricht GPIO 5, D2 entspricht GPIO 4.
// Variable für die Speicherung des Messwertes
int Messwert = 0;
void setup()
{
// Seriellen Monitor starten
Serial.begin(9600);
// Lautsprecher an Pin D1
pinMode(D1, OUTPUT);
}
void loop()
{
// Messwert am analogen Anschluss A0 lesen
Messwert = analogRead(A0);
// Messwert im Seriellen Monitor anzeigen
Serial.print("Feuchtigkeits-Messwert:");
Serial.println(Messwert);
// wenn der Messwert > 200 -> Lautsprecher an
if (Messwert > 200) digitalWrite(D1, HIGH);
// wenn der Messwert <= 200 -> Lautsprecher ausschalten
else digitalWrite(D1, LOW);
// Pause 500 Millisekunden
delay(500);
}Download: programmcode-mit-lautsprecher-nodemcu.ino