Isi kandungan:
- Langkah 1: Menambah Kod ke ESP8266
- Langkah 2: Menyiapkan Palam Pintar TP-LINK Anda
- Langkah 3: Menyiapkan Pembantu Rumah
- Langkah 4: Langkah Akhir
Video: Palam Pintar Berkawal Suhu Diaktifkan WiFi: 4 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:11
Dalam set arahan ini kita akan melihat bagaimana membuat probe suhu yang diaktifkan WiFi dengan menggunakan ESP8266 sederhana untuk pengangkat berat dan sensor suhu / kelembapan DHT11. Kami juga akan menggunakan papan litar yang telah saya buat dan kini juga dijual di kedai tindie saluran jika anda ingin membeli.
Mari mulakan dengan jumlah bahan yang anda perlukan:
Modul WiFi ESP8266
amzn.to/2pkGPoa
Sensor DHT11
amzn.to/2phwfhO
Palam Pintar TP-Link
amzn.to/2GElQUz
Anda juga boleh mengambil keseluruhan modul di kedai tindie untuk saluran:
www.tindie.com/products/misperry/wifi-enab…
Lihat juga JLCPCB untuk Fabrik PCB. Mereka adalah saya yang biasa membuat PCB:
Penghantaran Percuma pada Pesanan Pertama & Prototaip PCB $ 2 di
Langkah 1: Menambah Kod ke ESP8266
Kita sekarang perlu memasukkan kod berikut ke ESP8266. Kod ini boleh didapati di repositori github berikut:
Dalam kod di bawah, anda hanya perlu menyediakan beberapa bahagian definisi teratas:
Pelayan MQTT:
Pengguna MQTT:
Kata Laluan MQTT:
MQTT_sensor_topik:
-WiFi
Berkata: kata rangkaian wifi yang anda sambungkan
Kata Laluan: kata laluan WiFi.
Setelah memasukkannya ke dalam kod di bawah ini, anda kemudian dapat menyusun dan memeriksa kesilapan dan jika 0 kesalahan anda boleh memasukkannya ke ESP8266.
/ * * Nama Fail: TempHumSensor.ino * * Aplikasi: Thermostat Pemanas Ruang HomeAssistant * * Penerangan: Kod ini adalah untuk peranti serasi dengan arduino * ESP8266 WiFi. Ini akan menyampaikan maklumat suhu * peranti DHT11 ke frontend HASS untuk diproses. * * Pengarang: M. Sperry - https://www.youtube.com/misperry * Tarikh: 03 / * Semakan: 1.0 * * * /
#sertakan
#sertakan #sertakan #sertakan #sertakan #sertakan
#tentukan CON_TIME_OUT 20 // Waktu tamat tanpa sambungan ke wifi
#tentukan MQTT_TIME_OUT 10 // Waktu tamat tanpa sambungan ke pelayan MQTT
#tentukan DHTPIN 0 // Pin yang disambungkan ke sensor DHT
#define DHTTYPE DHT11 // Jenis sensor adalah DHT11, anda boleh mengubahnya menjadi DHT22 (AM2302), DHT21 (AM2301)
#define mqtt_server "" // Masukkan penambah atau IP pelayan MQTT anda. Saya menggunakan alamat DuckDNS saya (namaanda.duckdns.org) dalam bidang ini
#define mqtt_user "" // masukkan nama pengguna MQTT anda #define mqtt_password "" // masukkan kata laluan anda #define MQTT_SENSOR_TOPIC "ha / bedroom_temp" // Masukkan topik untuk MQTT anda
// Wifi: SSID dan kata laluan
const char * ssid = ""; const char * kata laluan = "";
// DHT SEtup
DHT_Unified dht (DHTPIN, DHTTYPE); uint32_t delayMS;
WiFiClient wifiClient;
Pelanggan PubSubClient (wifiClient);
// fungsi dipanggil untuk menerbitkan suhu dan kelembapan
batal publishData (float p_temperature) {// buat objek JSON // doc: https://github.com/bblanchon/ArduinoJson/wiki/API%20Reference StaticJsonBuffer jsonBuffer; JsonObject & root = jsonBuffer.createObject (); // INFO: data mesti diubah menjadi rentetan; masalah berlaku semasa menggunakan apungan… // tukar ke fahrenheit p_temperature = (p_temperature * 1.8) + 32; // tukar ke akar fahrenheit ["suhu"] = (Rentetan) p_temperature; root.prettyPrintTo (Bersiri); Serial.println ("");
data char [200];
root.printTo (data, root.measureLength () + 1); client.publish (MQTT_SENSOR_TOPIC, data, benar); }
// fungsi dipanggil semasa mesej MQTT tiba
kekosongan panggilan balik (char * p_topic, byte * p_payload, int p_length yang tidak ditandatangani) {}
batal sambungkan semula () {
// Gelung sehingga kita disambungkan semula sementara (! Client.connected ()) {Serial.print ("INFO: Mencuba sambungan MQTT …"); // Cuba sambung jika (client.connect ("ESPBlindstl", mqtt_user, mqtt_password)) {Serial.println ("INFO: connect"); } lain {Serial.print ("RALAT: gagal, rc ="); Serial.print (pelanggan.state ()); Serial.println ("DEBUG: cuba lagi dalam 5 saat"); // Tunggu 5 saat sebelum mencuba penundaan (5000); }}}
persediaan kosong (kekosongan) {
Serial.begin (9600);
// Kita mulakan dengan menyambung ke rangkaian WiFi
Bersiri.println (); Bersiri.println (); Serial.print ("Menyambung ke"); Serial.println (ssid);
WiFi.begin (ssid, kata laluan);
sementara (WiFi.status ()! = WL_CONNECTED) {
kelewatan (800); Cetakan bersiri ("."); }
Serial.println ("");
Serial.println ("WiFi disambungkan"); Serial.println ("Alamat IP:"); Serial.println (WiFi.localIP ()); // masukkan klien sambungan MQTT.setServer (mqtt_server, 1883); client.setCallback (panggilan balik);
// Memulakan sensor DHT
dht.begin (); Serial.println ("Data Sensor Bersatu DHT11");
// Cetak butiran sensor suhu
sensor_t sensor; dht.temperature (). getSensor (& sensor); Serial.println ("------------------------------------"); Serial.println ("Suhu"); Serial.print ("Sensor:"); Serial.println (sensor.name); Serial.print ("Pemandu Ver:"); Serial.println (sensor.version); Serial.print ("ID Unik:"); Serial.println (sensor.sensor_id); Serial.print ("Nilai Maks:"); 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.resolution); Serial.println ("* C"); Serial.println ("------------------------------------"); // Cetak butiran sensor kelembapan. dht.humidity (). getSensor (& sensor); Serial.println ("------------------------------------"); Serial.println ("Kelembapan"); Serial.print ("Sensor:"); Serial.println (sensor.name); Serial.print ("Pemandu Ver:"); Serial.println (sensor.version); Serial.print ("ID Unik:"); Serial.println (sensor.sensor_id); Serial.print ("Nilai Maks:"); Serial.print (sensor.max_value); Serial.println ("%"); Serial.print ("Nilai Min:"); Serial.print (sensor.min_value); Serial.println ("%"); Serial.print ("Resolusi:"); Serial.print (sensor.resolution); Serial.println ("%"); Serial.println ("------------------------------------");
// Tetapkan kelewatan antara pembacaan sensor berdasarkan perincian sensor
delayMS = sensor.min_delay / 1000; }
gelung kosong (kekosongan) {
suhu apungan;
jika (! client.connected ())
{sambung semula (); }
kelewatan (delayMS);
// Dapatkan acara suhu dan cetak nilainya.
acara sensors_event_t; dht.temperature (). getEvent (& event); if (isnan (event.temperature)) {Serial.println ("Ralat membaca suhu!"); suhu = 0.00; } lain {suhu = peristiwa.temperature; Serial.print ("Suhu:"); Cetakan bersiri (suhu); Serial.println ("* C"); } // terbitkan ke MQTT publishData (suhu); }
Langkah 2: Menyiapkan Palam Pintar TP-LINK Anda
Anda perlu menetapkan palam pintar TP-LINK anda, atau sebarang palam pintar untuk bahan tersebut, seperti yang dicadangkan oleh pengeluar.
Pastikan perhatikan alamat MAC pada peranti. Sekiranya peranti anda seperti peranti TP-LINK saya, anda tidak boleh meletakkan alamat IP statik. Oleh itu, anda perlu mengkonfigurasi penghala anda untuk Tempahan DHCP. Ini akan mengambil alamat MAC peranti anda dan apabila peranti tersebut meminta alamat, penghala akan memberikannya alamat yang sama setiap saat.
Berikut adalah pautan untuk mengaturnya dengan Linksys
www.linksys.com/us/support-article?article…
Langkah 3: Menyiapkan Pembantu Rumah
Sekarang untuk menyediakan Pembantu Rumah. Untuk ini, anda perlu menambahkan konfigurasi berikut ke file config.yaml yang terletak di struktur folder /home/homeassistant/.homeassistant pada peranti yang anda pasangkan.
Setelah selesai menambahkannya ke konfigurasi pembantu rumah anda, anda perlu memulakan semula perisian pembantu rumah anda agar perubahan berlaku.
Juga saya akan menggunakan palam pintar TP-LINK dengan alat peralihan dan definisi ada di bawah dalam fail konfigurasi. Alamat IP yang digunakan untuk perangkat adalah alamat yang anda tetapkan untuk tempahan DHCP pada langkah sebelumnya.
Konfigurasi ini juga boleh didapati di repo github berikut:
mqtt: switch: - platform: tplink name: Host Heater Bilik Tidur: 192.168.2.11
sensor 1:
platform: mqtt state_topic: 'ha / bedroom_temp' name: Bedroom Temp unit_of_measurement: '° F' value_template: '{{value_json.temperature}}'
automasi:
- alias: _Temp Bedroom Temp High trigger: - platform: numeric_state entity_id: sensor. Bedroom_Temp di atas: 73
tindakan:
perkhidmatan: homeassistant.turn_off entity_id: switch. Bedroom_Heater
- alias: _Temp Bilik Tidur Rendah
trigger: - platform: numeric_state entity_id: sensor. Bedroom_Temp di bawah: 73 tindakan: perkhidmatan: homeassistant.turn_on entity_id: switch. Bedroom_Heater
Langkah 4: Langkah Akhir
Sekarang dengan konfigurasi pembantu rumah dan kod Arduino anda, anda akan bersedia untuk mengaktifkan keseluruhan sistem. Oleh itu, pasangkan palam pemanas / kipas / penyejuk anda ke palam pintar dan pasangkan palam pintar. Setelah siap, anda perlu memasukkan pengecas USB kecil dan kemudian probe Suhu yang dibolehkan WiFi. Setelah semua dalam talian anda seharusnya dapat melihat di papan pemuka pembantu rumah anda dan melihat suhu baru yang dilaporkan.
Terima kasih banyak atas semua bantuan dan sokongan anda. pastikan untuk meninggalkan suka dan datang melawat saluran di https://www.youbue.com/misperry dan melihat apa yang kami ada untuk anda. Pastikan anda melanggan dan berkongsi dengan rakan anda untuk membantu saluran tersebut.
Disyorkan:
Peranti Pintar Perisian Perkakasan dan Perisian, Tuya dan Jalur Lebar LED, Sonoff, Palam Pintar BSD33: 7 Langkah
Peranti Pintar Perisian Perkakasan dan Perisian, Tuya dan Broadlink LED, Sonoff, BSD33 Smart Plug: Dalam Instruksional ini saya menunjukkan kepada anda bagaimana saya memancarkan beberapa peranti pintar dengan firmware saya sendiri, jadi saya dapat mengawalnya dengan MQTT melalui persediaan Openhab saya. Saya akan menambah peranti baru ketika saya menggodamnya. Sudah tentu ada kaedah berasaskan perisian lain untuk mem
Palam Pintar ESP8266: 6 Langkah
Smart Plug ESP8266: Bienvenue sur cet article qui a pour but de vous montrer un projet de domotique que j'ai réalisé. Ayant toujours adoré les memilih automatiques et optimisées, j'ai décidé de créer moi-même mes prises connectées. Celles-ci sont commandées melalui WiFi. La
Kereta RC Berkawal Telefon Pintar Menggunakan Arduino: 13 Langkah (dengan Gambar)
Kereta RC yang Dikawal Telefon Pintar Menggunakan Arduino: Instruksional ini menunjukkan cara membuat Kereta Robot Arduino yang dikendalikan oleh Telefon Pintar. Kemas kini pada 25 Okt 2016
Kereta RC Berkawal WiFi Mudah: 7 Langkah (dengan Gambar)
Kereta RC Berkawal WiFi Sederhana: Sekiranya anda memberitahu saya beberapa tahun yang lalu bahawa anda akan dapat mengubahsuai Mobil RC untuk memberikannya WiFi sehingga anda dapat mengendalikan melalui laman web menggunakan telefon anda, dan kos untuk melakukannya akan lebih rendah daripada € 8, saya tidak akan mempercayai anda! Tetapi ini sangat mengagumkan
Alexa Echo + ESP 8266 = Palam Kuasa Pintar: 4 Langkah (dengan Gambar)
Alexa Echo + ESP 8266 = Palam Kuasa Pintar: Penggunaan yang diarahkan ini ALEXA ECHO kawalan langsung ESP8266. Pelayan saya hanya menyokong kebenaran ESP8266 ke pelayan Amazon. Pelayan saya tidak membuat sandaran data anda. Undi saya: D Terima kasih