Mündəricat:

WiFi aktivləşdirilmiş temperatur nəzarətli ağıllı fiş: 4 addım
WiFi aktivləşdirilmiş temperatur nəzarətli ağıllı fiş: 4 addım

Video: WiFi aktivləşdirilmiş temperatur nəzarətli ağıllı fiş: 4 addım

Video: WiFi aktivləşdirilmiş temperatur nəzarətli ağıllı fiş: 4 addım
Video: Aqara T1 - ağ və ünvanlı LED-ləri olan yeni Zigbee zolağı, baxış və sınaq 2024, Iyul
Anonim
WiFi aktivləşdirilmiş temperatur nəzarətli ağıllı fiş
WiFi aktivləşdirilmiş temperatur nəzarətli ağıllı fiş

Bu təlimat dəstində, ağır qaldırma üçün sadə bir ESP8266 və DHT11 temperatur/rütubət sensoru istifadə edərək WiFi effektiv bir temperatur probunun necə qurulacağına baxacağıq. Yaratdığım və satın almaq istəyirsinizsə kanalın tindie mağazasında satışda olan elektron kartdan da istifadə edəcəyik.

Ehtiyac duyacağınız materiallar hesabına başlayaq:

ESP8266 WiFi Modulu

amzn.to/2pkGPoa

DHT11 Sensoru

amzn.to/2phwfhO

TP-Link Ağıllı Fiş

amzn.to/2GElQUz

Kanal üçün tindie mağazasında bütün modulu götürə bilərsiniz:

www.tindie.com/products/misperry/wifi-enab…

PCB Fabrikasiyası üçün JLCPCB -ə də baxın. PCB etmək üçün istifadə etdiyim insanlardır:

Https://jlcpcb.com saytında İlk Sifarişlə Pulsuz Göndərmə və 2 dollarlıq PCB Prototipləşdirmə

Addım 1: ESP8266 -ya Kod əlavə edin

İndi aşağıdakı kodu ESP8266 üzərinə yandırmalıyıq. Bu kodu aşağıdakı github deposunda tapa bilərsiniz:

Aşağıdakı kodda yalnız ən yaxşı bir neçə tərif bölməsini qurmalı olacaqsınız:

MQTT Server:

MQTT İstifadəçisi:

MQTT Şifrəsi:

MQTT_sensor_topic:

-Wi -Fi

Dedi: bağlandığınız wifi şəbəkəsi haqqında

Şifrə: WiFi parol.

Aşağıdakı kodu doldurduqdan sonra səhvləri tərtib edib yoxlaya bilərsiniz və 0 səhv olarsa onu ESP8266 üzərinə yandıra bilərsiniz.

/ * * Fayl adı: TempHumSensor.ino * * Tətbiq: HomeAssistant Space Isıtıcı Termostat * * Təsvir: Bu kod ESP8266 WiFi effektiv arduino * uyğun cihaz üçündür. Bu, DHT11 cihazının temperatur məlumatlarını * emal üçün HASS ön ucuna ötürəcək. * * Müəllif: M. Sperry - https://www.youtube.com/misperry * Tarix: 03/ * Düzəliş: 1.0 * * */

#daxil edin

#daxil edin #daxil edin #daxil edin #daxil edin

#define CON_TIME_OUT 20 // wifi ilə əlaqənin kəsilmə vaxtı

#define MQTT_TIME_OUT 10 // MQTT serverinə heç bir bağlantının kəsilməsi

#define DHTPIN 0 // DHT sensoruna qoşulan pin

#dehine DHTTYPE DHT11 // Sensor növü DHT11 -dir, onu DHT22 (AM2302), DHT21 (AM2301) olaraq dəyişə bilərsiniz

#define mqtt_server "" // MQTT server əlavələrinizi və ya IP -ni daxil edin. Bu sahədə DuckDNS adresimi (adınız.duckdns.org) istifadə edirəm

#define mqtt_user "" // MQTT istifadəçi adınızı daxil edin #deq mqtt_password "" təyin edin // parolunuzu daxil edin #MQTT_SENSOR_TOPIC "ha/bedroom_temp" ni təyin edin // MQTT üçün mövzu daxil edin

// Wifi: SSID və parol

const char* ssid = ""; const char* parol = "";

// DHT Quraşdırma

DHT_Unified dht (DHTPIN, DHTTYPE); uint32_t gecikdirmə MS;

WiFiClient wifiClient;

PubSubClient müştəri (wifiClient);

// temperatur və rütubəti dərc etmək üçün çağırılan funksiya

void publishData (float p_temperature) {// bir JSON obyekti yaradın // doc: https://github.com/bblanchon/ArduinoJson/wiki/API%20Reference StaticJsonBuffer jsonBuffer; JsonObject & root = jsonBuffer.createObject (); // BİLGİ: məlumatlar bir sətrə çevrilməlidir; float istifadə edərkən bir problem yaranır… // fahrenheit'e çevir p_temperature = (p_temperature * 1.8) + 32; // fahrenheit kökünə çevirmək ["temperatur"] = (String) p_temperature; root.prettyPrintTo (Serial); Serial.println ("");

char məlumatları [200];

root.printTo (data, root.measureLength () + 1); client.publish (MQTT_SENSOR_TOPIC, data, true); }

// MQTT mesajı gəldikdə çağırılan funksiya

boş zəng (char* p_topic, bayt* p_payload, imzasız int p_length) {}

void reconnect () {

// (! Client.connected ()) {Serial.print ("INFO: MQTT bağlantısı cəhd edilir …"); // Bağlanmağa cəhd edin (client.connect ("ESPBlindstl", mqtt_user, mqtt_password)) {Serial.println ("INFO: bağlı"); } başqa {Serial.print ("ERROR: fail, rc ="); Serial.print (client.state ()); Serial.println ("DEBUG: 5 saniyə ərzində yenidən cəhd edin"); // Yenidən sınamaq üçün 5 saniyə gözləyin (5000); }}}

boş quraşdırma (boş) {

Serial.begin (9600);

// WiFi şəbəkəsinə qoşulmaqla başlayırıq

Serial.println (); Serial.println (); Serial.print ("Bağlanır"); Serial.println (ssid);

WiFi.begin (ssid, parol);

isə (WiFi.status ()! = WL_CONNECTED) {

gecikmə (800); Serial.print ("."); }

Serial.println ("");

Serial.println ("WiFi bağlıdır"); Serial.println ("IP ünvanı:"); Serial.println (WiFi.localIP ()); // MQTT bağlantısı client.setServer (mqtt_server, 1883); client.setCallback (geri zəng);

// DHT sensorunu işə salın

dht.begin (); Serial.println ("DHT11 Vahid Sensor Məlumatları");

// İstilik sensoru detallarını çap edin

sensor_t sensoru; dht.temperature (). getSensor (& sensor); Serial.println ("------------------------------------"); Serial.println ("Temperatur"); Serial.print ("Sensor:"); Serial.println (sensor.adı); Serial.print ("Sürücü Ver:"); Serial.println (sensor.versiya); Serial.print ("Unikal ID:"); Serial.println (sensor.sensor_id); Serial.print ("Maksimum dəyər:"); Serial. çap (sensor.max_value); Serial.println (" *C"); Serial.print ("Minimum dəyər:"); Serial. çap (sensor.min_value); Serial.println (" *C"); Serial.print ("Çözünürlük:"); Serial.çap (sensor. Qətnamə); Serial.println (" *C"); Serial.println ("------------------------------------"); // Rütubət sensoru detallarını çap edin. dht.humidity (). getSensor (& sensor); Serial.println ("------------------------------------"); Serial.println ("Rütubət"); Serial.print ("Sensor:"); Serial.println (sensor.adı); Serial.print ("Sürücü Ver:"); Serial.println (sensor.versiya); Serial.print ("Unikal ID:"); Serial.println (sensor.sensor_id); Serial.print ("Maksimum dəyər:"); Serial. çap (sensor.max_value); Serial.println ("%"); Serial.print ("Minimum dəyər:"); Serial. çap (sensor.min_value); Serial.println ("%"); Serial.print ("Çözünürlük:"); Serial.çap (sensor. Qətnamə); Serial.println ("%"); Serial.println ("------------------------------------");

// Sensor detallarına əsaslanaraq sensorlar oxunması arasındakı gecikməni təyin edin

gecikməMS = sensor.min_delay / 1000; }

boşluq döngəsi (boş) {

üzmə temperaturu;

əgər (! müştəri. bağlı ())

{yenidən bağlan (); }

gecikmə (gecikmə MS);

// Temperatur hadisəsini alın və dəyərini çap edin.

sensors_event_t hadisəsi; dht.temperature (). getEvent (& hadisə); if (isnan (event.temperature)) {Serial.println ("İstiliyin oxunması xətası!"); temperatur = 0.00; } başqa {temperatur = hadisə.temperatur; Serial.print ("Temperatur:"); Serial çap (temperatur); Serial.println (" *C"); } // MQTT -də dərc etmə publishData (temperatur); }

Addım 2: TP-LINK Smart Plugunuzu qurun

TP-LINK Ağıllı Fişinizin Qurulması
TP-LINK Ağıllı Fişinizin Qurulması

İstehsalçının tövsiyə etdiyi şəkildə TP-LINK ağıllı fişinizi və ya hər hansı bir ağıllı fişi quraşdırmalısınız.

Cihazdakı MAC ünvanını qeyd etdiyinizə əmin olun. Cihazınız mənim TP-LINK cihazım kimidirsə, statik bir IP ünvanı göstərə bilməzsiniz. Beləliklə, DHCP Rezervasyonu üçün yönlendiricinizi konfiqurasiya etməlisiniz. Bu, cihazınızın MAC ünvanını alacaq və həmin cihaz bir ünvan istədikdə marşrutlaşdırıcı hər dəfə eyni ünvanı verəcək.

Bunun Linksys ilə necə qurulacağına dair bir link

www.linksys.com/us/support-article?article…

Addım 3: Ev köməkçisini qurun

İndi Ev köməkçisini qurmaq üçün. Bunun üçün quraşdırdığınız cihazda /home/homeassistant/.homeassistant qovluq quruluşunda olan configuration.yaml faylına aşağıdakı konfiqurasiyaları əlavə etməlisiniz.

Bunu ev köməkçisi konfiqurasiyasına əlavə etməyi bitirdikdən sonra dəyişikliklərin təsir etməsi üçün ev köməkçisi proqramınızı yenidən başlatmalısınız.

Ayrıca keçid cihazı üçün TP-LINK ağıllı fişindən istifadə edəcəyəm və tərifi konfiqurasiya sənədində aşağıda verilmişdir. Cihaz üçün istifadə olunan IP ünvanı, əvvəlki addımda DHCP rezervasiyası üçün qurduğunuz ünvandır.

Bu konfiqurasiyanı aşağıdakı github repo -da da tapa bilərsiniz:

mqtt: keçid: - platforma: tplink adı: Yataq otağı qızdırıcısı host: 192.168.2.11

sensor 1:

platform: mqtt state_topic: 'ha/bedroom_temp' adı: Yataq otağı Temp unit_of_measurement: '° F' dəyər_template: '{{value_json.temperature}}'

avtomatlaşdırma:

- alias: _Temp Yataq otağı Temp Yüksək tetikleyici: - platforma: numeric_state entity_id: sensor. Bedroom_Temp yuxarıda: 73

hərəkət:

xidmət: homeassistant.turn_off entity_id: switch. Bedroom_Heater

- ləqəb: _Temp yataq otağı istiliyi aşağı

trigger: - platform: numeric_state entity_id: sensor. Bedroom_Temp aşağıda: 73 hərəkət: xidmət: homeassistant.turn_on entity_id: switch. Bedroom_Heater

Addım 4: Son addımlar

Image
Image
Son addımlar
Son addımlar
Son addımlar
Son addımlar

İndi ev köməkçinizin konfiqurasiyası və Arduino kodunuzun qurulması ilə bütün sistemi aktivləşdirməyə hazır olacaqsınız. Beləliklə, qızdırıcı/fan/soyuducu fişini ağıllı fişə və ağıllı fişə qoşun. Hazır olduqdan sonra kiçik bir USB şarj cihazını və sonra WiFi aktivləşdirilmiş Temperatur probunu qoşmalısınız. Hər şey onlayn olduqdan sonra ev köməkçinizin tablosuna baxa və yeni temperaturun bildirildiyini görə bilməlisiniz.

Bütün köməyinizə və dəstəyinizə görə çox sağ olun. bir bəyənmə buraxdığınızdan və https://www.youbue.com/misperry ünvanındakı kanalı ziyarət etməyinizə əmin olun və sizin üçün orda olanların hamısına baxın. Kanala kömək etmək üçün abunə olub dostlarınızla paylaşdığınızdan əmin olun.

Tövsiyə: