Mundarija:
- 1 -qadam: Kodni ESP8266 ga qo'shish
- 2-qadam: TP-LINK aqlli vilkasini o'rnatish
- 3 -qadam: Uy yordamchisini sozlash
- 4 -qadam: Yakuniy qadamlar
Video: WiFi yoqilgan haroratni boshqaruvchi aqlli vilka: 4 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:28
Ushbu yo'riqnomada biz og'ir yuk ko'tarish uchun oddiy ESP8266 va DHT11 harorat/namlik sensori yordamida WiFi -ga ega bo'lgan harorat o'lchagichini qanday qurishni ko'rib chiqamiz. Agar men sotib olmoqchi bo'lsangiz, men yaratgan va hozirda kanalning tindie do'konida sotiladigan elektron platadan ham foydalanamiz.
Sizga kerak bo'lgan materiallar ro'yxatini boshlaylik:
ESP8266 WiFi moduli
amzn.to/2pkGPoa
DHT11 sensori
amzn.to/2phwfhO
TP-Link aqlli vilkasi
amzn.to/2GElQUz
Siz kanalning tindie do'konida butun modulni olishingiz mumkin:
www.tindie.com/products/misperry/wifi-enab…
PCB mato uchun JLCPCB -ni tekshiring. Men PCB ishlab chiqarganlar:
Birinchi buyurtma bo'yicha bepul etkazib berish va $ 2 PCB prototipi https://jlcpcb.com saytida
1 -qadam: Kodni ESP8266 ga qo'shish
Endi biz ESP8266 -ga quyidagi kodni o'chirishimiz kerak bo'ladi. Bu kodni quyidagi github omboridan topish mumkin:
Quyidagi kodda siz faqat bir nechta ta'rif bo'limlarini o'rnatishingiz kerak bo'ladi:
MQTT serveri:
MQTT foydalanuvchisi:
MQTT paroli:
MQTT_sensor_topik:
-Wifi
Said: siz ulanayotgan wifi tarmog'i haqida
Parol: WiFi paroli.
Quyidagi kodni to'ldirgandan so'ng, siz xatolarni tuzishingiz va tekshirishingiz mumkin, agar 0 xato bo'lsa, uni ESP8266 -ga o'chirib qo'yishingiz mumkin.
/ * * Fayl nomi: TempHumSensor.ino * * Ilova: HomeAssistant kosmik isitgich termostati * * Tavsif: Bu kod ESP8266 WiFi yoqilgan arduino * mos keladigan qurilma uchun. Bu DHT11 qurilmasining harorat ma'lumotlarini * qayta ishlash uchun HASS frontendiga uzatadi. * * Muallif: M. Sperri - https://www.youtube.com/misperry * Sana: 03/ * Tuzatish: 1.0 * * */
#qo'shing
#qo'shish #qo'shish #qo'shish #qo'shish #qo'shish
#define CON_TIME_OUT 20 // Wi -Fi ulanmagan
#define MQTT_TIME_OUT 10 // MQTT serveriga ulanmagan
#define DHTPIN 0 // DHT sensoriga ulangan pin
#Define DHTTYPE DHT11 // Sensor turi - DHT11, siz uni DHT22 (AM2302), DHT21 (AM2301) ga o'zgartirishingiz mumkin.
#define mqtt_server "" // MQTT server qo'shimchalarini yoki IP -ni kiriting. Men bu sohada DuckDNS manzili (yourname.duckdns.org) dan foydalanaman
#define mqtt_user "" // MQTT foydalanuvchi nomingizni kiriting #deq mqtt_password "" // parolingizni kiriting #dequine MQTT_SENSOR_TOPIC "ha/bedroom_temp" // MQTT uchun mavzuni kiriting.
// Wi -Fi: SSID va parol
const char* ssid = ""; const char* parol = "";
// DHT sozlash
DHT_Unified dht (DHTPIN, DHTTYPE); uint32_t kechikish MS;
WiFiClient wifiClient;
PubSubClient mijozi (wifiClient);
// harorat va namlikni e'lon qilish funktsiyasi
void publishData (float p_temperature) {// JSON obyektini yaratish // doc: https://github.com/bblanchon/ArduinoJson/wiki/API%20Reference StaticJsonBuffer jsonBuffer; JsonObject & root = jsonBuffer.createObject (); // INFO: ma'lumotlar satrga aylantirilishi kerak; floatlardan foydalanganda muammo yuzaga keladi… // fahrenheitga aylantirish p_temperature = (p_temperatur * 1.8) + 32; // farenxayt ildiziga aylantirish ["harorat"] = (String) p_temperature; root.prettyPrintTo (ketma -ket); Serial.println ("");
char ma'lumotlari [200];
root.printTo (ma'lumotlar, root.measureLength () + 1); client.publish (MQTT_SENSOR_TOPIC, ma'lumotlar, rost); }
// MQTT xabari kelganda chaqiriladigan funksiya
bekor qo'ng'iroq (char* p_topic, bayt* p_payload, imzosiz int p_length) {}
bekor qayta ulanish () {
// Bizni (! Client.connected ()) {Serial.print ("INFO: MQTT ulanishga urinish …") qayta ulanmagunimizcha aylantiring; // Ulanishga urinish if (client.connect ("ESPBlindstl", mqtt_user, mqtt_password)) {Serial.println ("INFO: ulangan"); } else {Serial.print ("XATO: bajarilmadi, rc ="); Serial.print (client.state ()); Serial.println ("DEBUG: 5 soniyadan keyin qayta urinib ko'ring"); // Kechiktirishni qayta urinishdan oldin 5 soniya kuting (5000); }}}
bekor o'rnatish (bekor) {
Serial.begin (9600);
// Biz Wi -Fi tarmog'iga ulanishdan boshlaymiz
Serial.println (); Serial.println (); Serial.print ("Ulanish"); Serial.println (ssid);
WiFi.begin (ssid, parol);
esa (WiFi.status ()! = WL_CONNECTED) {
kechikish (800); Serial.print ("."); }
Serial.println ("");
Serial.println ("Wi -Fi ulangan"); Serial.println ("IP -manzil:"); Serial.println (WiFi.localIP ()); // MQTT ulanishi client.setServer (mqtt_server, 1883); client.setCallback (qayta qo'ng'iroq qilish);
// DHT sensorini ishga tushiring
dht.begin (); Serial.println ("DHT11 yagona sensorli ma'lumotlari");
// Harorat sensori tafsilotlarini chop etish
sensor_t sensori; dht.temperature (). getSensor (& sensor); Serial.println ("------------------------------------"); Serial.println ("Harorat"); Serial.print ("Sensor:"); Serial.println (sensor.name); Serial.print ("Driver Ver:"); Serial.println (sensor.versiya); Serial.print ("Noyob identifikator:"); Serial.println (sensor.sensor_id); Serial.print ("Maksimal qiymat:"); Serial.print (sensor.max_value); Serial.println (" *C"); Serial.print ("Minimal qiymat:"); Serial.print (sensor.min_value); Serial.println (" *C"); Serial.print ("Qaror:"); Ketma -ket chop etish (sensor. Rezolyutsiya); Serial.println (" *C"); Serial.println ("------------------------------------"); // Namlik sensori tafsilotlarini chop eting. dht.humidity (). getSensor (& sensor); Serial.println ("------------------------------------"); Serial.println ("Namlik"); Serial.print ("Sensor:"); Serial.println (sensor.name); Serial.print ("Driver Ver:"); Serial.println (sensor.versiya); Serial.print ("Noyob identifikator:"); Serial.println (sensor.sensor_id); Serial.print ("Maksimal qiymat:"); Serial.print (sensor.max_value); Serial.println ("%"); Serial.print ("Minimal qiymat:"); Serial.print (sensor.min_value); Serial.println ("%"); Serial.print ("Qaror:"); Ketma -ket chop etish (sensor. Rezolyutsiya); Serial.println ("%"); Serial.println ("------------------------------------");
// Sensor tafsilotlari asosida sensorlar o'qishlari orasidagi kechikishni o'rnating
kechikish MS = sensor.min_delay / 1000; }
bo'sh halqa (bo'sh) {
suzish harorati;
agar (! client.connected ())
{qayta ulanish (); }
kechikish (kechikish MS);
// Harorat hodisasini oling va uning qiymatini chop eting.
sensors_event_t hodisasi; dht.temperature (). getEvent (& hodisa); if (isnan (hodisa.temperatur))) {Serial.println ("Haroratni o'qishda xato!"); harorat = 0,00; } boshqa {harorat = hodisa.temperatur; Serial.print ("Harorat:"); Seriyali bosma (harorat); Serial.println (" *C"); } // MQTT -ga nashr etishDataboshlash (harorat); }
2-qadam: TP-LINK aqlli vilkasini o'rnatish
Siz TP-LINK aqlli vilkasini yoki ishlab chiqaruvchi tomonidan tavsiya etilgan uskuna uchun aqlli vilkasini o'rnatishingiz kerak bo'ladi.
Qurilmadagi MAC manziliga e'tibor bering. Agar sizning qurilmangiz mening TP-LINK qurilmamga o'xshasa, siz statik IP-manzilni o'rnatolmaysiz. Shunday qilib, siz yo'riqchini DHCP zahirasi uchun sozlashingiz kerak bo'ladi. Bu sizning qurilmangizning MAC manzilini oladi va yo'riqnoma manzil so'rasa, har safar unga bir xil manzil beriladi.
Buni Linksys -da qanday sozlash haqida havola
www.linksys.com/us/support-article?article…
3 -qadam: Uy yordamchisini sozlash
Endi uy yordamchisini sozlash. Buning uchun siz o'rnatgan qurilmadagi /home/homeassistant/.homeassistant papkasida joylashgan configuration.yaml fayliga quyidagi konfiguratsiyalarni qo'shishingiz kerak bo'ladi.
Buni uy yordamchisi konfiguratsiyasiga qo'shishni tugatgandan so'ng, o'zgarishlar ta'sir qilishi uchun siz uy yordamchi dasturini qayta ishga tushirishingiz kerak bo'ladi.
Shuningdek, men TP-LINK aqlli vilkasini kommutatsiya qurilmasidan foydalanaman va uning konfiguratsiya faylida ta'rifi quyida keltirilgan. Qurilma uchun ishlatiladigan IP -manzil avvalgi bosqichda DHCP -ni bron qilish uchun o'rnatgan manzilingizdir.
Ushbu konfiguratsiyani quyidagi github repo -da ham topish mumkin:
mqtt: switch: - platforma: tplink nomi: Yotoq xonasi isitgichi: 192.168.2.11
Sensor 1:
platforma: mqtt state_topic: 'ha/bedroom_temp' nomi: Yotoq xonasi harorati o'lchov birligi: '° F' qiymati_template: '{{value_json.temperature}}'
avtomatlashtirish:
- taxallus: _Temp Bedroom Temp High trigger: - platforma: numeric_state entity_id: sensor. Bedroom_Temp yuqorida: 73
harakat:
xizmat: homeassistant.turn_off entity_id: switch. Bedroom_Heater
- taxallus: _Yotoqxonadagi harorat past
trigger: - platforma: numeric_state entity_id: sensor. Bedroom_Temp pastda: 73 ta harakat: xizmat: homeassistant.turn_on entity_id: switch. Bedroom_Heater
4 -qadam: Yakuniy qadamlar
Endi sizning uy yordamchingiz konfiguratsiyasi va Arduino kodini sozlash bilan siz butun tizimni faollashtirishga tayyor bo'lasiz. Shunday qilib, isitgich/fan/sovutgich vilkasini aqlli vilkaga joylashtiring va aqlli vilkasini rozetkaga ulang. Tayyor bo'lgach, siz kichik USB zaryadlovchini, keyin esa Wi -Fi yoqilgan haroratni o'lchash moslamasini ulashingiz kerak bo'ladi. Hammasi Internetga kirgandan so'ng, siz uy yordamchisining boshqaruv paneliga qarashingiz va yangi harorat haqida xabar berishingiz mumkin.
Barcha yordamingiz va qo'llab -quvvatlashingiz uchun katta rahmat. ishonch hosil qiling va https://www.youbue.com/misperry kanaliga tashrif buyuring va bizda nima borligini ko'ring. Kanalga yordam berish uchun obuna bo'lishni va do'stlaringiz bilan bo'lishishni unutmang.
Tavsiya:
Uyda tayyorlangan Peltier sovutgichi / Sovutgich, haroratni boshqaruvchi DIY: 6 qadam (rasmlar bilan)
Uy qurilishi Peltier sovutgichi / Sovutgich, haroratni nazorat qilish moslamasi DIY: W1209 haroratni nazorat qilish moslamasi yordamida uy qurilishi termoelektrik Peltier sovutgichi / mini muzlatgichni DIY qilish. Bu TEC1-12706 moduli va Peltier effekti mukammal DIY sovutgichini yaratadi
Buzilgan kalit taxtasini haroratni nazorat qilish yordamida aqlli sensorli kalitga o'rnating: 4 qadam
Haroratni nazorat qilish yordamida buzilgan kalit taxtani aqlli sensorli kalitga o'rnating: Men hammangiz bilasizki, hayotingizda hech bo'lmaganda bir marta kalit paneli uzluksiz ishlatilganda buzilib ketgan. ko'p vaqt yoki kalit ichidagi kamon joyidan siljiydi yoki
PID haroratni boshqaruvchi: 7 qadam
PID haroratni boshqaruvchi: Mening do'stim plastikni qayta ishlash uchun plastik ekstruder qurmoqda (https://preciousplastic.com). U ekstruziya haroratini boshqarishi kerak. Shu maqsadda u ko'krak isitgichi tasmasini ishlatadi. Bu nozulda termojuft va isitish moslamasi mavjud
SMD Skillet Reflow uchun IQ haroratni boshqaruvchi: 4 qadam
SMD Skillet Reflow uchun IQ haroratni nazorat qilish moslamasi: agar siz SMD (sirtga o'rnatish moslamasi) yordamida o'z elektron platalaringizni qayta oqimga o'tkazmoqchi bo'lsangiz, bu ko'rsatma yordam beradi. Bir nechta taxtalarni qo'lda lehimlagandan so'ng, men o'zimni qiziqtira boshladim
Yassi vilka: 4 qadam
Yassi vilka: Nima uchun avtomobil aksessuarlari juda katta? Nega ular barrel shaklida? Agar siz tirikchilik uchun sayohat qilsangiz va gadjetlarni olib kelsangiz, zaryadlovchi va adapterlarni ham olib kelishingiz kerak. Avtomobil uchun USB adapteri/batareya zaryadlovchi qurilmasi bo'lishi shart emas, lekin men