Daftar Isi:
- Langkah 1: Menambahkan Kode ke ESP8266
- Langkah 2: Menyiapkan Smart Plug TP-LINK Anda
- Langkah 3: Menyiapkan Asisten Rumah
- Langkah 4: Langkah Terakhir
Video: Steker Cerdas Terkendali Suhu yang Diaktifkan WiFi: 4 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:57
Dalam set instruksi ini kita akan melihat bagaimana membangun probe suhu berkemampuan WiFi dengan menggunakan ESP8266 sederhana untuk angkat berat dan sensor suhu/kelembaban DHT11. Kami juga akan menggunakan papan sirkuit yang telah saya buat dan juga dijual sekarang di toko saluran jika Anda ingin membeli.
Mari kita mulai dengan tagihan bahan yang Anda perlukan dalam:
Modul WiFi ESP8266
amzn.to/2pkGPoa
Sensor DHT11
amzn.to/2phwfhO
Steker Cerdas TP-Link
amzn.to/2GElQUz
Anda juga dapat mengambil seluruh modul di toko tindie untuk saluran:
www.tindie.com/products/misperry/wifi-enab…
Lihat juga JLCPCB untuk Fabrikasi PCB. Merekalah yang saya gunakan untuk membuat PCB:
Pengiriman Gratis untuk Pesanan Pertama & Pembuatan Prototipe PCB $2 di
Langkah 1: Menambahkan Kode ke ESP8266
Kita sekarang perlu mem-flash kode berikut ke ESP8266. Kode ini dapat ditemukan di repositori github berikut:
Dalam kode di bawah ini Anda hanya perlu menyiapkan beberapa bagian definisi teratas:
Server MQTT:
Pengguna MQTT:
Kata Sandi MQTT:
MQTT_sensor_topik:
-Wifi
Said: kata dari jaringan wifi yang Anda sambungkan
Kata sandi: kata sandi WiFi.
Setelah Anda mengisi kode di bawah ini, Anda dapat mengkompilasi dan memeriksa kesalahan dan jika 0 kesalahan, Anda dapat mem-flash-nya ke ESP8266.
/* * Nama File: TempHumSensor.ino * * Aplikasi: HomeAssistant Space Heater Thermostat * * Deskripsi: Kode ini untuk perangkat yang kompatibel dengan ESP8266 WiFi berkemampuan arduino *. Ini akan menyampaikan informasi suhu * perangkat DHT11 ke frontend HASS untuk diproses. * * Penulis: M. Sperry - https://www.youtube.com/misperry * Tanggal: 03/* Revisi: 1.0 * * */
#termasuk
#sertakan #sertakan #sertakan #sertakan #sertakan
#define CON_TIME_OUT 20 //Waktu habis tanpa koneksi ke wifi
#define MQTT_TIME_OUT 10 //Waktu habis tanpa koneksi ke server MQTT
#define DHTPIN 0 //Pin yang terhubung ke sensor DHT
#define DHTTYPE DHT11 //Jenis sensor adalah DHT11, Anda dapat mengubahnya menjadi DHT22 (AM2302), DHT21 (AM2301)
#define mqtt_server "" // Masukkan alamat atau IP server MQTT Anda. Saya menggunakan alamat DuckDNS saya (namaanda.duckdns.org) di bidang ini
#define mqtt_user "" //masukkan nama pengguna MQTT Anda #define mqtt_password "" //masukkan kata sandi Anda #define MQTT_SENSOR_TOPIC "ha/bedroom_temp" //Masukkan topik untuk MQTT Anda
// Wifi: SSID dan kata sandi
const char*ssid = ""; const char* kata sandi = "";
//Pengaturan DHT
DHT_Unified dht(DHTPIN, DHTTYPE); uint32_t delayMS;
WiFiKlien wifiKlien;
klien PubSubClient (wifiClient);
// fungsi dipanggil untuk mempublikasikan suhu dan kelembapan
void publishData(float p_temperature) { // buat objek JSON // doc: https://github.com/bblanchon/ArduinoJson/wiki/API%20Reference StaticJsonBuffer jsonBuffer; JsonObject& root = jsonBuffer.createObject(); // INFO: data harus diubah menjadi string; terjadi masalah saat menggunakan float… //konversi ke fahrenheit p_temperature = (p_temperature * 1.8) + 32; // konversi ke fahrenheit root["temperature"] = (String)p_temperature; root.prettyPrintTo(Serial); Serial.println("");
data karakter[200];
root.printTo(data, root.measureLength() + 1); client.publish(MQTT_SENSOR_TOPIC, data, benar); }
// fungsi dipanggil saat pesan MQTT tiba
batalkan panggilan balik(char* p_topic, byte* p_payload, unsigned int p_length) { }
batal sambungkan kembali() {
// Ulangi sampai kita terhubung kembali while (!client.connected()) { Serial.print("INFO: Mencoba koneksi MQTT…"); // Mencoba menghubungkan if (client.connect("ESPBlindstl", mqtt_user, mqtt_password)) { Serial.println("INFO: connected"); } else { Serial.print("ERROR: gagal, rc="); Serial.print(klien.status()); Serial.println("DEBUG: coba lagi dalam 5 detik"); // Tunggu 5 detik sebelum mencoba lagi delay(5000); } } }
pengaturan batal(batal) {
Serial.begin(9600);
// Kita mulai dengan menghubungkan ke jaringan WiFi
Serial.println(); Serial.println(); Serial.print("Menghubungkan ke "); Serial.println(ssid);
WiFi.begin(ssid, kata sandi);
sementara (WiFi.status() != WL_CONNECTED) {
penundaan (800); Serial.print("."); }
Serial.println("");
Serial.println("WiFi terhubung"); Serial.println("Alamat IP: "); Serial.println(WiFi.localIP()); // init koneksi MQTT client.setServer(mqtt_server, 1883); client.setCallback(panggilan balik);
// Inisialisasi sensor DHT
dht.mulai(); Serial.println("Data Sensor Terpadu DHT11");
//Cetak detail sensor suhu
sensor_t sensor; dht.temperature().getSensor(&sensor); Serial.println("------------------------------------"); Serial.println("Suhu"); Serial.print("Sensor: "); Serial.println(sensor.nama); Serial.print("Versi Driver: "); Serial.println(sensor.versi); Serial.print("ID Unik: "); Serial.println(sensor.sensor_id); Serial.print("Nilai Maksimal: "); Serial.print(sensor.max_value); Serial.println("*C"); Serial.print("Nilai Min: "); Serial.print(sensor.min_value); Serial.println("*C"); Serial.print("Resolusi: "); Serial.print(sensor.resolusi); Serial.println("*C"); Serial.println("------------------------------------"); // Cetak detail sensor kelembaban. dht.humidity().getSensor(&sensor); Serial.println("------------------------------------"); Serial.println("Kelembaban"); Serial.print("Sensor: "); Serial.println(sensor.nama); Serial.print("Versi Driver: "); Serial.println(sensor.versi); Serial.print("ID Unik: "); Serial.println(sensor.sensor_id); Serial.print("Nilai Maksimal: "); Serial.print(sensor.max_value); Serial.println("%"); Serial.print("Nilai Min: "); Serial.print(sensor.min_value); Serial.println("%"); Serial.print("Resolusi: "); Serial.print(sensor.resolusi); Serial.println("%"); Serial.println("------------------------------------");
//Setel penundaan antara pembacaan sensor berdasarkan detail sensor
delayMS = sensor.min_delay / 1000; }
lingkaran batal (batal) {
suhu mengambang;
jika (!klien.terhubung())
{ sambungkan kembali(); }
penundaan (delayMS);
// Dapatkan peristiwa suhu dan cetak nilainya.
sensor_event_t acara; dht.temperature().getEvent(&event); if (isnan(event.temperature)) { Serial.println("Error membaca suhu!"); suhu = 0,00; } else { suhu = event.temperature; Serial.print("Suhu: "); Serial.print(suhu); Serial.println("*C"); } // mempublikasikan ke MQTT publishData(suhu); }
Langkah 2: Menyiapkan Smart Plug TP-LINK Anda
Anda perlu menyetel steker pintar TP-LINK Anda, atau steker pintar apa pun untuk hal itu, dengan cara yang direkomendasikan oleh pabrikan.
Pastikan untuk mencatat alamat MAC pada perangkat. Jika perangkat Anda seperti perangkat TP-LINK saya, Anda tidak dapat menyimpan alamat IP statis. Dengan demikian, Anda perlu mengkonfigurasi router Anda untuk Reservasi DHCP. Ini akan mengambil alamat MAC perangkat Anda dan ketika perangkat itu meminta alamat, router akan memberikan alamat yang sama setiap saat.
Berikut ini tautan ke cara mengaturnya dengan Linksys
www.linksys.com/us/support-article?article…
Langkah 3: Menyiapkan Asisten Rumah
Sekarang untuk menyiapkan Asisten Rumah. Untuk ini, Anda perlu menambahkan konfigurasi berikut ke file configuration.yaml yang terletak di struktur folder /home/homeassistant/.homeassistant pada perangkat tempat Anda menginstalnya.
Setelah selesai menambahkan ini ke konfigurasi asisten rumah Anda, Anda harus memulai ulang perangkat lunak asisten rumah Anda agar perubahan dapat diterapkan.
Saya juga akan menggunakan smart plug TP-LINK untuk perangkat switching dan definisinya ada di bawah dalam file konfigurasi. Alamat IP yang digunakan untuk perangkat adalah alamat yang Anda atur untuk reservasi DHCP di langkah sebelumnya.
Konfigurasi ini juga dapat ditemukan di repo github berikut:
mqtt:sakelar: - platform: nama tplink: Host Pemanas Kamar Tidur: 192.168.2.11
sensor 1:
platform: mqtt state_topic: 'ha/bedroom_temp' nama: Suhu Kamar Tidur unit_of_measurement: '°F' value_template: '{{ value_json.temperature }}'
otomatisasi:
- alias: _Temp Kamar Tidur Suhu Pemicu Tinggi: - platform: numeric_state entity_id: sensor. Bedroom_Temp di atas: 73
tindakan:
layanan: homeassistant.turn_off entity_id: switch. Bedroom_Heater
- alias: _Temp Kamar Tidur Suhu Rendah
pemicu: - platform: numeric_state entity_id: sensor. Bedroom_Temp bawah: 73 tindakan: layanan: homeassistant.turn_on entity_id: switch. Bedroom_Heater
Langkah 4: Langkah Terakhir
Sekarang dengan konfigurasi asisten rumah Anda dan pengaturan kode Arduino Anda, Anda akan siap untuk mengaktifkan seluruh sistem. Jadi, pasang steker pemanas/kipas/pendingin Anda ke steker pintar dan colokkan steker cerdas. Setelah siap, Anda perlu mencolokkan pengisi daya USB kecil dan kemudian probe Suhu yang diaktifkan WiFi. Setelah semuanya online, Anda harus dapat melihat di dasbor asisten rumah Anda dan melihat suhu baru yang dilaporkan.
Terima kasih banyak atas semua bantuan dan dukungan Anda. pastikan untuk meninggalkan suka dan datang mengunjungi saluran di https://www.youbue.com/misperry dan lihat apa yang kami miliki untuk Anda. Pastikan Anda berlangganan dan berbagi dengan teman-teman Anda untuk membantu saluran.
Direkomendasikan:
Sistem Irigasi Terkendali WiFi 'Cerdas' Bertenaga Surya: 6 Langkah (dengan Gambar)
Sistem Irigasi Terkendali WiFi 'Cerdas' Bertenaga Surya: Proyek ini menggunakan komponen surya dan 12v DIY standar dari ebay, bersama dengan perangkat Shelly IoT dan beberapa pemrograman dasar di openHAB untuk membuat jaringan listrik dan irigasi taman buatan sendiri yang sepenuhnya bertenaga surya. setup.Sorotan Sistem: Fu
Steker Cerdas ESP8266: 6 Langkah
Steker Pintar ESP8266: Bienvenue sur cet article dengan cepat dan tepat. Ayant toujours adoré les memilih automatiques et optimisées, j'ai décidé de créer moi-même mes prises connectées. Komandan Celles-ci sont melalui WiFi. La
Strip Steker Terkendali Daya USB. Dengan Isolasi.: 4 Langkah (dengan Gambar)
Strip Steker Terkendali Daya USB. With Isolation.: Inti dari Instructable ini adalah untuk memungkinkan saya menyalakan semua aksesori untuk komputer saya tanpa memikirkannya. Dan kemudian tidak menyalakan semua kutil dinding vampir daya kecil ketika saya tidak menggunakan komputer. Idenya sederhana, Anda
Perbaiki Steker Ethernet yang Rusak: 10 Langkah (dengan Gambar)
Perbaiki Steker Ethernet yang Rusak: Tab pengunci colokan RJ45 mudah rusak. Ganti dengan dua ikatan kabel nilon (alias ikatan zip), dalam hitungan menit. CATATAN PENTING: - Ini harus dianggap sebagai "Mac Gyver" sementara. solusi, untuk penggunaan di rumah. - Jelas bukan untuk staf TI
Cara Memperbaiki Kabel Steker Pengisi Daya IBook G4 yang Rusak: 6 Langkah
Cara Memperbaiki Kabel Colokan Pengisi Daya IBook G4 yang Rusak: Jika Kabel Colokan Pengisi Daya iBook G4 Anda putus atau sobek sehingga tidak berfungsi dengan baik, semuanya tidak akan hilang. Anda dapat memperbaikinya jika Anda dapat menyolder kembali kabel. Begini caranya