Мазмұны:

WiFi қосылған температуралық басқарылатын ақылды штепсель: 4 қадам
WiFi қосылған температуралық басқарылатын ақылды штепсель: 4 қадам

Бейне: WiFi қосылған температуралық басқарылатын ақылды штепсель: 4 қадам

Бейне: WiFi қосылған температуралық басқарылатын ақылды штепсель: 4 қадам
Бейне: Замена отопления в новостройке. Подключение. Опрессовка. #17 2024, Шілде
Anonim
WiFi қосылған температуралық басқарылатын ақылды штепсель
WiFi қосылған температуралық басқарылатын ақылды штепсель

Бұл нұсқаулықта біз ауыртпалықты көтеру үшін қарапайым ESP8266 және DHT11 температура/ылғалдылық сенсоры көмегімен WiFi қосылған температуралық зондты қалай құруға болатынын қарастырамыз. Біз сондай -ақ мен жасаған тақтаны қолданатын боламыз және егер сіз сатып алғыңыз келсе, қазір теледидардың дүкенінде сатылады.

Сізге қажет материалдардың есебінен бастайық:

ESP8266 WiFi модулі

amzn.to/2pkGPoa

DHT11 сенсоры

amzn.to/2phwfhO

TP-Link ақылды штепселі

amzn.to/2GElQUz

Сіз сондай -ақ арнаның tindie дүкенінен бүкіл модульді ала аласыз:

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

Сондай -ақ, PCB фабрикасы үшін JLCPCB қараңыз. Олар мен бұрын ПХД жасаған:

Бірінші тапсырыс бойынша ақысыз жеткізу және $ 2 PCB прототипі https://jlcpcb.com сайтында

1 -қадам: ESP8266 кодын қосу

Енді біз келесі кодты ESP8266 -ге жыпылықтауымыз керек. Бұл кодты келесі github репозиторийінен табуға болады:

Төмендегі кодта сізге тек бірнеше анықтамалық бөлімдерді орнату қажет болады:

MQTT сервері:

MQTT пайдаланушысы:

MQTT құпия сөзі:

MQTT_sensor_topic:

-Сымсыз дәлдiк

Айтты: сіз қосылып жатқан Wi -Fi желісі туралы

Құпия сөз: WiFi құпия сөзі.

Төмендегі кодты толтырғаннан кейін сіз қателерді жинап, тексере аласыз, егер 0 қате болса, сіз оны ESP8266 -ге жыпылықтай аласыз.

/ * * Файл атауы: TempHumSensor.ino * * Қолданба: HomeAssistant ғарыш жылытқышының термостаты * * Сипаттама: Бұл код ESP8266 WiFi қосылған arduino * үйлесімді құрылғыға арналған. Бұл DHT11 құрылғысының температурасы туралы ақпаратты * өңдеу үшін HASS фронталына жібереді. * * Автор: М. Сперри - https://www.youtube.com/misperry * Күні: 03/ * Қайта қарау: 1.0 * * */

#қосу

#қосу #қосу #қосу #қосу #қосу

#анықтаңыз CON_TIME_OUT 20 // Wi -Fi желісіне қосылудың күту уақыты

#dquine MQTT_TIME_OUT 10 // MQTT серверіне қосылудың күту уақыты

#define DHTPIN 0 // DHT сенсорына қосылған түйреуіш

#DHTTYPE DHT11 анықтаңыз // Сенсор түрі - DHT11, оны DHT22 (AM2302), DHT21 (AM2301) етіп өзгертуге болады

#define mqtt_server «» // MQTT серверінің қосқыштарын немесе IP мекенжайын енгізіңіз. Мен бұл өрісте DuckDNS адресін қолданамын (yourname.duckdns.org)

#define mqtt_user «» // MQTT пайдаланушы атын енгізіңіз #mqtt_password «анықтаңыз» // құпия сөзіңізді енгізіңіз #MQTT_SENSOR_TOPIC «ha/bedroom_temp» анықтаңыз // MQTT үшін тақырыпты енгізіңіз.

// Wifi: SSID және құпия сөз

const char* ssid = «»; const char* пароль = «»;

// DHT реттеу

DHT_Unified dht (DHTPIN, DHTTYPE); uint32_t delayMS;

WiFiClient wifiClient;

PubSubClient клиенті (wifiClient);

// температура мен ылғалдылықты жариялауға арналған функция

void publishData (float p_temperature) {// JSON нысанын жасау // doc: https://github.com/bblanchon/ArduinoJson/wiki/API%20Reference StaticJsonBuffer jsonBuffer; JsonObject & root = jsonBuffer.createObject (); // INFO: мәліметтер жолға түрлендірілуі керек; флоаттарды қолданған кезде мәселе туындайды… // fahrenheit түрлендіру p_temperature = (p_temperature * 1.8) + 32; // фаренгейт түбіріне айналдыру [«температура»] = (Жол) p_temperature; root.prettyPrintTo (сериялық); Serial.println («»);

char деректері [200];

root.printTo (деректер, root.measureLength () + 1); client.publish (MQTT_SENSOR_TOPIC, деректер, ақиқат); }

// функция MQTT хабарламасы келген кезде шақырылады

жарамсыз кері байланыс (char* p_topic, байт* p_payload, int p_length белгісіз) {}

жарамсыз қайта қосылу () {

// (! Client.connected ()) {Serial.print («INFO: MQTT қосылымы әрекет етуде …») кезінде қайта қосылғанша айналдырыңыз; // Қосылу әрекеті if (client.connect («ESPBlindstl», mqtt_user, mqtt_password)) {Serial.println («INFO: қосылған»); } else {Serial.print («ERROR: сәтсіз, rc =»); Serial.print (client.state ()); Serial.println («ҚАТЕЛІК: 5 секундтан кейін қайталап көріңіз»); // Қайталаудың кешігуіне дейін 5 секунд күтіңіз (5000); }}}

жарамсыз орнату (жарамсыз) {

Serial.begin (9600);

// Біз WiFi желісіне қосылудан бастаймыз

Serial.println (); Serial.println (); Serial.print («Қосылу»); Serial.println (ssid);

WiFi.begin (ssid, құпия сөз);

while (WiFi.status ()! = WL_CONNECTED) {

кешіктіру (800); Serial.print («.»); }

Serial.println («»);

Serial.println («WiFi қосылған»); Serial.println («IP мекенжайы:»); Serial.println (WiFi.localIP ()); // init MQTT қосылу client.setServer (mqtt_server, 1883); client.setCallback (кері шақыру);

// DHT сенсорын іске қосыңыз

dht.begin (); Serial.println («DHT11 сенсорының бірыңғай деректері»);

// Температура сенсорының мәліметтерін басып шығару

sensor_t сенсоры; dht.temperature (). getSensor (& sensor); Serial.println («------------------------------------»); Serial.println («Температура»); Serial.print («Сенсор:»); Serial.println (сенсордың аты); Serial.print («Driver Ver:»); Serial.println (сенсорлық нұсқа); Serial.print («Бірегей идентификатор:»); Serial.println (sensor.sensor_id); Serial.print («Максималды мән:»); Serial.print (sensor.max_value); Serial.println (« *C»); Serial.print («Минималды мән:»); Serial.print (sensor.min_value); Serial.println (« *C»); Serial.print («Ажыратымдылық:»); Сериялық.баспа (сенсор. Ажыратымдылық); Serial.println (« *C»); Serial.println («------------------------------------»); // Ылғалдылық датчигінің мәліметтерін басып шығарыңыз. dht.humidity (). getSensor (& sensor); Serial.println («------------------------------------»); Serial.println («Ылғалдылық»); Serial.print («Сенсор:»); Serial.println (сенсордың аты); Serial.print («Driver Ver:»); Serial.println (сенсорлық нұсқа); Serial.print («Бірегей идентификатор:»); Serial.println (sensor.sensor_id); Serial.print («Максималды мән:»); Serial.print (sensor.max_value); Serial.println («%»); Serial.print («Минималды мән:»); Serial.print (sensor.min_value); Serial.println («%»); Serial.print («Ажыратымдылық:»); Сериялық.баспа (сенсор. Ажыратымдылық); Serial.println («%»); Serial.println («------------------------------------»);

// Сенсор мәліметтері негізінде сенсор көрсеткіштері арасындағы кідірісті орнатыңыз

delayMS = sensor.min_delay / 1000; }

жарамсыз цикл (жарамсыз) {

қалқу температурасы;

if (! client.connected ())

{қайта қосылу (); }

кешігу (кідіріс ММ);

// Температура оқиғасын алыңыз және оның мәнін басып шығарыңыз.

sensors_event_t оқиғасы; dht.temperature (). getEvent (& event); if (isnan (event.temperature)) {Serial.println («Температураны оқу қатесі!»); температура = 0,00; } else {температура = оқиға.температура; Serial.print («Температура:»); Сериялық баспа (температура); Serial.println (« *C»); } // MQTT -ке жариялау publishData (температура); }

2-қадам: TP-LINK ақылды штепсельін орнату

TP-LINK ақылды штепсельін орнату
TP-LINK ақылды штепсельін орнату

Сізге TP-LINK ақылды штепсельін немесе өндіруші ұсынғандай кез келген ақылды штепсельді орнату қажет болады.

Құрылғыдағы MAC мекенжайын ескеруді ұмытпаңыз. Егер сіздің құрылғыңыз менің TP-LINK құрылғысына ұқсас болса, онда сіз тұрақты IP мекенжайын көрсете алмайсыз. Осылайша, маршрутизаторды DHCP брондау үшін конфигурациялау қажет болады. Бұл сіздің құрылғыңыздың MAC мекенжайын алады және сол құрылғы мекенжайды сұраған кезде оған сол мекенжайды береді.

Мұны Linksys көмегімен қалай орнату керектігі туралы сілтеме

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

3 -қадам: Үй көмекшісін орнату

Енді үй көмекшісін орнату керек. Ол үшін сіз орнатқан құрылғыдағы /home/homeassistant/.homeassistant қалтасының құрылымында орналасқан configuration.yaml файлына келесі конфигурацияларды қосу қажет болады.

Мұны үй көмекшісінің конфигурациясына қосуды аяқтағаннан кейін, өзгерістер әсер етуі үшін үй көмекшісінің бағдарламалық жасақтамасын қайта іске қосу қажет болады.

Сондай-ақ, мен TP-LINK смарт штепсельін коммутациялық құрылғыда қолданатын боламын және конфигурация файлында анықтама төменде көрсетілген. Құрылғы үшін пайдаланылатын IP мекенжайы - алдыңғы қадамда DHCP брондау үшін орнатқан адрес.

Бұл конфигурацияны келесі github реподан табуға болады:

mqtt: қосқыш: - платформа: tplink атауы: Жатын бөлме жылытқышы: 192.168.2.11

сенсор 1:

платформа: mqtt state_topic: 'ha/bedroom_temp' атауы: Жатын бөлме температурасының өлшем бірлігі: '° F' мәні_темплейні: '{{value_json.temperature}}'

автоматтандыру:

- бүркеншік ат: _Temp Bedroom Temp High триггері: - платформа: numeric_state entity_id: sensor. Bedroom_Temp жоғарыда: 73

әрекет:

қызмет: homeassistant.turn_off entity_id: switch. Bedroom_Heater

- бүркеншік ат: _Temp Bedroom Temp Low

триггер: - платформа: numeric_state entity_id: sensor. Bedroom_Temp төменде: 73 әрекет: қызмет: homeassistant.turn_on entity_id: switch. Bedroom_Heater

4 -қадам: Қорытынды қадамдар

Image
Image
Қорытынды қадамдар
Қорытынды қадамдар
Қорытынды қадамдар
Қорытынды қадамдар

Енді сіздің үй көмекшіңіздің конфигурациясы мен Arduino коды орнатылған кезде сіз бүкіл жүйені белсендіруге дайын боласыз. Осылайша, жылытқыш/желдеткіш/салқындатқышты ақылды штепсельдік розеткаға қосыңыз. Дайын болғаннан кейін сізге шағын USB зарядтағышын қосу керек, содан кейін WiFi қосылған температура датчигі. Барлығы желіге қосылғаннан кейін сіз үй көмекшісінің бақылау тақтасынан қарап, жаңа температураның хабарлануын көре аласыз.

Барлық көмегіңіз бен қолдауыңыз үшін үлкен рахмет. лайк қалдыруды ұмытпаңыз және https://www.youbue.com/misperry мекен -жайындағы арнаға кіріңіз және бізде сіз үшін не бар екенін көріңіз. Каналға көмектесу үшін жазылуды және достарыңызбен бөлісуді ұмытпаңыз.

Ұсынылған: