Isi kandungan:

Palam Pintar Berkawal Suhu Diaktifkan WiFi: 4 Langkah
Palam Pintar Berkawal Suhu Diaktifkan WiFi: 4 Langkah

Video: Palam Pintar Berkawal Suhu Diaktifkan WiFi: 4 Langkah

Video: Palam Pintar Berkawal Suhu Diaktifkan WiFi: 4 Langkah
Video: [ light novel ] Haunted House | ch 341-360 | #learnenglish #audiobook #englishstories 2024, Julai
Anonim
Palam Pintar Terkawal Suhu WiFi
Palam Pintar Terkawal Suhu WiFi

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

Menyiapkan Palam Pintar TP-LINK Anda
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

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