Bouw een WiFi Weerstation met ESP8266 en DHT22 Temperatuursensor
Onderdelen en benodigdheden
| Espressif ESP8266 ESP-01 | 1 |
| DHT22 Temperatuursensor | 1 |
| Breadboard (standaard) | 1 |
| Jumper-draden (standaard) | 1 |
| UDOO USB / Seriële Debug-module | 1 |
| Arduino UNO | 1 |
Over dit project
Ik wilde een klein weerstation ontwerpen voor langdurige buitenmetingen en automatische registratie in een spreadsheet. Mijn regio heeft uitstekende omstandigheden voor landbouw.
Stap 1
Basisaansluiting van componenten.
Stap 2: ESP8266 programmeren
Sluit ESP8266 aan op Arduino en upload code via IDE via seriële poort. Let op: De originele firmware wordt overschreven. Herstel vereist een lang proces.
Stap 3: DHT22 sensor aansluiten
Volg het schema voor correcte aansluiting van de DHT22.
Stap 4: Communicatie met ThingSpeak
Configureer een ThingSpeak-kanaal. Verplichte coderegels:
#include <ThingSpeak.h>
unsigned long myChannelNumber = 167319;
const char * myWriteAPIKey = "XXXP9V86RWR7R9Y";
ThingSpeak.writeField(myChannelNumber, 1, h, myWriteAPIKey);
delay(20000);
ThingSpeak.writeField(myChannelNumber, 2, t, myWriteAPIKey);
delay(20000);
Stap 5: Voeding
ESP8266 heeft veel stroom nodig. Voed het vanuit zowel PC USB als een externe bron.
Stap 6: Uitbreiding
ThingSpeak ondersteunt 8 velden per kanaal. Overweeg extra sensoren zoals luchtdruk.
Code
temphumwifi.ino
#include <ThingSpeak.h>
#include <DHT.h>
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
#include <ESP8266WiFi.h>
unsigned long myChannelNumber = 167319;
const char * myWriteAPIKey = "XXXP9V86RWR7R9Y";
const char* ssid = "XXXX";
const char* password = "XXXX";
WiFiClient client;
WiFiServer server(80);
void setup() {
Serial.begin(115200);
delay(10);
dht.begin();
Serial.println("Connecting to WiFi...");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("WiFi connected");
Serial.println(WiFi.localIP());
ThingSpeak.begin(client);
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
Serial.println("Humedad: "); Serial.println(h);
Serial.println("Temperatura: "); Serial.println(t);
delay(2000);
ThingSpeak.writeField(myChannelNumber, 1, h, myWriteAPIKey);
delay(20000);
ThingSpeak.writeField(myChannelNumber, 2, t, myWriteAPIKey);
delay(20000);
}
Schema
Sluit Arduino aan op display zoals getoond in het schema.
Productieproces
- Een externe temperatuursensor bouwen met Raspberry Pi en Python – Stap-voor-stap handleiding
- Een Raspberry Pi-weerstation bouwen dat dagelijkse weergegevens e-mailt
- Een Multi-sensor Temperatuur- & Lichtmonitoringssysteem Bouwen met Raspberry Pi & DS18B20
- Raspberry Pi-sensor- en actuatorbeheersing onder de knie: versnellingsmeter, servo en datastreaming
- Je vochtigheidssensor verifiëren en kalibreren voor nauwkeurige metingen
- Nauwkeurige Temperatuur- & Vochtigheidsmonitoring met SHT15 op Windows 10 IoT Core
- Integreren van een thermocouple-sensor met de Arduino Portenta H7 via de MAX6675 IC
- DHT11 Temperatuur- & Vochtigheidsensor Project met LED-indicatoren en Piezo-luidspreker
- Bouw een Slimme IoT Pot met ESP8266, Arduino & Ultrasonische Sensor – Real-time Monitoring
- Riviergezondheidsmonitor: Arduino-gebaseerd Waterkwaliteitssysteem
- Een DFRobot Capacitieve Vingerafdruksensor integreren met Arduino of ESP8266