Daftar Isi:

Steker Cerdas Terkendali Suhu yang Diaktifkan WiFi: 4 Langkah
Steker Cerdas Terkendali Suhu yang Diaktifkan WiFi: 4 Langkah

Video: Steker Cerdas Terkendali Suhu yang Diaktifkan WiFi: 4 Langkah

Video: Steker Cerdas Terkendali Suhu yang Diaktifkan WiFi: 4 Langkah
Video: Mauro Biglino benar, para imam memperlakukan umat sebagai massa idiot Kami tumbuh di YouTube 2024, Juli
Anonim
Plug Cerdas Terkendali Suhu yang Diaktifkan WiFi
Plug Cerdas Terkendali Suhu yang Diaktifkan WiFi

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

Menyiapkan Smart Plug TP-LINK Anda
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

Image
Image
Langkah Terakhir
Langkah Terakhir
Langkah Terakhir
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: