Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Wetterstation mit Arduino & ThingSpeak IoT (DHT11 + ESP8266)

Komponenten

BauteilMenge
Arduino UNO1
ESP8266 ESP-01 (WiFi)1
DHT11 Temperatur- & Feuchtesensor (3 Pins)1
Steckbrett1
Jumper-Kabel1 Satz
Breadboard-Netzteil 5 V / 3,3 V1

Software & Dienste

Projektbeschreibung

Einsteigerfreundliches IoT-Projekt: Ein DHT11 misst Temperatur & Luftfeuchte, der Arduino liest die Werte, sendet sie per AT-Befehlen über den ESP8266 an ThingSpeak. Dort werden sie grafisch dargestellt (15 s Aktualisierungsintervall).

Verdrahtung

ESP-01 PinVerbindung
VCC3,3 V (Breadboard-Netzteil)
GNDGND
CH_PD3,3 V
RESET3,3 V
TXArduino Pin 2 (SoftwareSerial RX)
RXArduino Pin 3 (SoftwareSerial TX) – ggf. Spannungsteiler!
DHT11 PinVerbindung
VCC5 V
OUTArduino A0
GNDGND

Wichtig: ESP8266 braucht eigene 3,3 V Quelle (Peak-Strom > Arduino 3,3 V Pin). Breadboard-Netzteil auf 3,3 V jumpern.

ThingSpeak einrichten

  1. Auf thingspeak.com registrieren.
  2. Neuen Channel anlegen: Field 1 = Temperature, Field 2 = Humidity.
  3. Write API Key notieren (wird im Code benötigt).

Arduino IDE Bibliotheken

  1. SoftwareSerial (built-in)
  2. Adafruit Unified Sensor: GitHub → ZIP installieren.
  3. DHT Sensor Library: GitHub → ZIP installieren.

Code (Kernausschnitte)

String myAPIkey = "DEIN_WRITE_API_KEY";
#include <SoftwareSerial.h>
#include <DHT.h>

SoftwareSerial ESP8266(2, 3); // RX, TX
#define DHTTYPE DHT11
#define DHTPIN A0
DHT dht(DHTPIN, DHTTYPE, 11);

float humidity, temp_f;
long writingTimer = 17; // Sekunden
long startTime = 0;

void setup() {
  Serial.begin(9600);
  ESP8266.begin(9600);
  dht.begin();
  startTime = millis();
  ESP8266.println("AT+RST");
  delay(2000);
  // WLAN verbinden
  while(!connected) {
    ESP8266.print("AT+CWJAP=\"SSID\",\"PASSWORT\"\r\n");
    // ... auf "WIFI CONNECTED" warten
  }
}

void loop() {
  if (millis() - startTime > writingTimer * 1000) {
    readSensors();
    writeThingSpeak();
    startTime = millis();
  }
}

void readSensors() {
  temp_f = dht.readTemperature();
  humidity = dht.readHumidity();
}

void writeThingSpeak() {
  ESP8266.flush();
  String cmd = "AT+CIPSTART=\"TCP\",\"184.106.153.149\",80"; // api.thingspeak.com
  ESP8266.println(cmd);
  if(ESP8266.find("Error")) return;

  String getStr = "GET /update?api_key=" + myAPIkey;
  getStr += "&field1=" + String(temp_f);
  getStr += "&field2=" + String(humidity);
  getStr += "\r\n\r\n";

  ESP8266.print("AT+CIPSEND=" + String(getStr.length()));
  if(ESP8266.find(">")) {
    ESP8266.print(getStr);
    // Antwort lesen ...
  } else {
    ESP8266.println("AT+CIPCLOSE");
  }
}

Vollständiger Code: GitHub

Ergebnis

ThingSpeak-Channel zeigt zwei Diagramme (Temperatur, Luftfeuchte) mit 15-Sekunden-Intervall.

Herstellungsprozess

  1. Outdoor-Wetterstation mit Raspberry Pi 2 & ADS-WS1 bauen
  2. Raspberry Pi Wetterstation bauen, die tägliche Wetterdaten per E-Mail sendet
  3. Fortgeschrittene Wetterstation v2.0: Echtzeit Temperatur, Druck, Feuchte & Höhe Monitoring
  4. Arduino Digitaler Würfel: LCD-Würfel mit Zufallszahlen (1–6)
  5. Arduino Iron Man bauen: Komponenten, Sensoren & Schritt-für-Schritt-Anleitung
  6. Find Me: Smarter Gegenstands-Finder mit Arduino und Bluetooth
  7. Funktionaler 3D-gedruckter Roboterarm mit Arduino – Schritt-für-Schritt-Anleitung
  8. DIY Arduino Luftbefeuchter-Steuerung mit Relais – Sichere Hochspannungs-Installation
  9. Tragbare Arduino-Wetterstation für 10$ bauen (Nano, DHT22, BMP180 & LCD)
  10. eDOT: Präzise Arduino-Uhr & Wetterstation mit IR-Fernbedienung