Bangun Stasiun Cuaca WiFi dengan ESP8266 dan Sensor Suhu DHT22
Komponen dan Perlengkapan
Espressif ESP8266 ESP-01 — 1 unit
Sensor Suhu DHT22 — 1 unit
Breadboard (generik) — 1 unit
Kabel jumper (generik) — 1 unit
UDOO USB / Serial Debug Module — 1 unit
Arduino UNO — 1 unit
Tentang Proyek Ini
Saya ingin merancang stasiun cuaca kecil dan menggunakannya untuk melacak variabel cuaca luar ruangan secara otomatis selama periode waktu yang panjang dan mencatatnya ke dalam spreadsheet. Ini hanya untuk bersenang-senang, untuk memahami perilaku faktor cuaca ini di kabupaten saya dan di rumah. Kabupaten saya memiliki kondisi yang sangat baik untuk petani dan memproduksi sayuran dan makanan hijau lainnya. Berlebihan. Untuk menjual makanan ke kota utama kami.
Langkah 1
Langkah 2
Hubungkan ESP8266 dengan Arduino dan unggah kode dari IDE.
Menggunakan port serial unggah kode langsung ke modul ESP8266. Ingat bahwa setelah Anda melakukan ini firmware asli akan dihapus. Jika Anda ingin firmware asli lagi di ESP8266 Anda Anda akan memerlukan proses panjang untuk melakukannya. Periksa video ini yang dapat memberikan singkatannya tentang hal itu.
Langkah 3
Hubungkan sensor DHT22:
Langkah 4
Periksa komunikasi Anda dengan saluran ThingSpeak yang sebelumnya telah Anda konfigurasikan:
Ini adalah baris kode wajib untuk berkomunikasi dengan saluran Anda:
Ingat bahwa ESP8266 Anda membutuhkan arus yang besar, jadi salah satu kegagalan adalah Anda perlu memberinya daya dari port USB PC Anda dan dari sumber daya eksternal.
Langkah 6
Jika Anda dapat mencatat 8 field dalam saluran silakan mulai memikirkan sensor cuaca lain yang dapat Anda tambahkan ke stasiun Anda - tekanan barometrik? Mungkin!
Kode
temphumwifi.ino
temphumwifi.inoArduino
#include <ThingSpeak.h> /* DEVELOPER: hernando Bolanos - Colaborations - original code and libraries for wifi modules and code uploaded in GITHUB for send information to Thinhspeak-Libraries according to each author * * This code send to Thingspeak DHT22 data each 20 seconds -using wifi * This program do not use arduino just use the GPIO2 to receive DHT22 sensor information and demux it. How to load directly to de esp8266 from arduino IDE is a chellenge- take a look to the "el profe garcia videos on youtube" */ #include <DHT.h> //cargamos la librera DHT #define DHTPIN 2 //Seleccionamos el pin en el que se conectar el sensor #define DHTTYPE DHT22 //Se selecciona el DHT22(hay otros DHT) DHT dht(DHTPIN, DHTTYPE); //Se inicia una variable que ser usada por Arduino para comunicarse con el sensor #include <ESP8266WiFi.h> unsigned long myChannelNumber = 167319; const char * myWriteAPIKey = "XXXP9V86RWR7R9Y"; const char* ssid = "XXXX "; const char* password = "XXXX"; WiFiClient client; // Create an instance of the server // specify the port to listen on as an argument WiFiServer server(80); void setup() { Serial.begin(115200); delay(10); dht.begin(); //Se inicia el sensor // Connect to WiFi network Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); // Start the server // server.begin(); // Serial.println("Server started"); // Print the IP address Serial.println(WiFi.localIP()); ThingSpeak.begin(client); } void loop() { float h = dht.readHumidity(); //Se lee la humedad float t = dht.readTemperature(); //Se lee la temperatura //Se imprimen las variables Serial.println("Humedad: "); Serial.println(h); Serial.println("Temperatura: "); Serial.println(t); delay(2000); //Se espera 2 segundos para seguir leyendo //datos ThingSpeak.writeField(myChannelNumber, 1, h, myWriteAPIKey); delay(20000); ThingSpeak.writeField(myChannelNumber, 2, t, myWriteAPIKey); delay(20000); }