Мазмұны:

Есік пен температураның күйін тіркеуші жобасы: 21 қадам
Есік пен температураның күйін тіркеуші жобасы: 21 қадам

Бейне: Есік пен температураның күйін тіркеуші жобасы: 21 қадам

Бейне: Есік пен температураның күйін тіркеуші жобасы: 21 қадам
Бейне: ЧУПАКАБРА ма, әлде ЖЫН ба?#тылсымдүние #td #төреденбірвидео 2024, Шілде
Anonim
Есік пен температураның күйін тіркеу жобасы
Есік пен температураның күйін тіркеу жобасы

Бұл нұсқаулықта ESP8266 NodeMCU, DHT11 температура мен ылғалдылық сенсоры, есік/терезе қамысының қосқышы, 10К Ом резисторы мен қосқыш сым көмегімен 10.00 доллардан төмен қарапайым есік пен температураның күйін тіркеуші қалай жасалатынын көрсетеді.

Бұл жобаның шығу тегі Arduino тақтасы арқылы үйді автоматтандыруды жақсарту ниетімнен туындады, өйткені мен Arduino -мен үйлесімді EPS8266 NodeMCU туралы көп оқығандықтан, мен бұл тақтаны эксперимент жасау үшін арзан бағалы тақта деп шештім. ESP8266 тақталарын пайдаланып үйдегі автоматтандыру жобаларын Интернеттен іздегеннен кейін, мен бірінші әрекетім үшін температура мен есік күйін тіркеушіні біріктіруге шешім қабылдадым. Ақырында бұл жоба менің атам 50 жыл бұрын жобалап, салған шағын жылыжайды автоматтандыру үшін серво, ылғал сенсоры және басқа электроникамен біріктіріледі. Температура сенсоры жылыту жүйесін қосу немесе ажырату керектігін анықтау үшін пайдаланылады, сондай -ақ қажет кезде желдету жүйесін ашу мен жабу туралы сервоға сигнал береді. Желдету жүйесінің күйі магнитті қамысты қосқыштардың көмегімен бақыланатын болады. Соңында ылғал сенсорлары суару жүйесін автоматтандыру үшін қолданылады.

1 -қадам: Жауапкершіліктен бас тарту

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

2 -қадам: IFTTT тегін есептік жазбасын орнату

IFTTT ақысыз есептік жазбасын орнату
IFTTT ақысыз есептік жазбасын орнату

Егер сізде әлі жоқ болса, қазір IFTTT -тің ақысыз шотын олардың басты бетіне өту арқылы орнатудың уақыты келді. IFTTT - егер бұл солай болса, бұл Интернетке негізделген қызметтерді жаңа жолмен қосуға мүмкіндік беретін ақысыз платформа. бұл қызметтерді жаңа жолмен пайдалануға мүмкіндік береді. Бұл жоба үшін біз ESP8266 -ға Google Sheets құжатындағы DHT11 сенсоры арқылы қамыс қосқышы арқылы есіктің күйін және температура мен ылғалдылықты тіркеуге мүмкіндік беретін IFTTT қолданамыз.

3 -қадам: IFTTT апплетін жасаңыз

IFTTT апплетін жасаңыз
IFTTT апплетін жасаңыз

IFTTT -де болған кезде «Менің апплеттерім» бөліміне өтіңіз және «Жаңа апплет» түймесін басу арқылы жаңа апплет жасаңыз.

4 -қадам: Апплетіңіздің «осы» бөлігін конфигурациялаңыз

Конфигурациялаңыз
Конфигурациялаңыз

Жоғарыдағы суретте көрсетілгендей көк түсте «осы» сөзді басыңыз.

5 -қадам: WebHooks қызметін апплетке қосыңыз

WebHooks қызметін апплетке қосыңыз
WebHooks қызметін апплетке қосыңыз

Іздеу жолағында «Webhooks» қызметін іздеңіз және Webhooks белгішесін таңдаңыз.

«Webhooks» қызметін тапқаннан кейін оны басыңыз.

6 -қадам: Веб -сұранысты алуды орнатыңыз

Веб -сұрауды алуды орнатыңыз
Веб -сұрауды алуды орнатыңыз

«Веб -сұранысты алу» триггерін таңдаңыз.

7 -қадам: Оқиға атауын беріңіз

Оқиға атауын беріңіз
Оқиға атауын беріңіз

Мәтін өрісінде жаңа апплетке оқиға атауын беріңіз. Мен «Деректерді тіркеушіні» таңдадым, бірақ сіз өзіңізге ұнайтын нәрсені таңдай аласыз.

8 -қадам: Апплетіңіздің «сол» бөлігін конфигурациялаңыз

Конфигурациялаңыз
Конфигурациялаңыз

Жоғарыдағы суретте көрсетілгендей көк түсте «сол» сөзді басыңыз.

9 -қадам: Әрекет қызметін орнату

Әрекет қызметін орнату
Әрекет қызметін орнату

Іздеу жолағында «Google Sheets» қызметін іздеңіз және Google Sheets белгішесін нұқыңыз.

10 -қадам: Google парақтарына қосылыңыз

Google Sheets -ке қосылыңыз
Google Sheets -ке қосылыңыз

Егер сіз мұны әлі жасамаған болсаңыз, IFTTT есептік жазбаңызды Google Sheets -ке қосуыңыз қажет болады. Жоғарыда көрсетілген Қосылу түймесін басып, экрандағы нұсқауларды орындаңыз.

11 -қадам: Әрекетті таңдаңыз

Әрекетті таңдаңыз
Әрекетті таңдаңыз

«Электрондық кестеге жол қосу» түймесін басыңыз.

12 -қадам: Әрекетті орнатыңыз

Әрекетті орнату
Әрекетті орнату

«Электрондық кесте атауы» мәтін ұяшығына атау беріңіз. Мен дәйектілік үшін «Data_Logger» қолдануды таңдаймын. Қалған параметрді жалғыз қалдырыңыз (сіз бұл параметрмен басқа уақытта тәжірибе жасай аласыз), содан кейін экранның төменгі жағындағы «Әрекет жасау» түймесін басыңыз.

13 -қадам: Апплетіңізді қарап шығыңыз және аяқтаңыз

Апплетіңізді қарап шығыңыз және аяқтаңыз
Апплетіңізді қарап шығыңыз және аяқтаңыз

Апплет конфигурациясына қанағаттанғаннан кейін «Аяқтау» түймесін басыңыз.

14 -қадам: Конфигурация туралы ақпаратты кейінірек алу

Кейін қажет конфигурация ақпаратын алыңыз
Кейін қажет конфигурация ақпаратын алыңыз

Жоғарыда көрсетілгендей «Webhooks» түймесін басыңыз.

15 -қадам: API кілті үшін Webhooks құжаттамасына өтіңіз

API кілті үшін Webhooks құжаттамасына өтіңіз
API кілті үшін Webhooks құжаттамасына өтіңіз

Біртүрлі көрінуі мүмкін, бірақ бірегей API кілті бар бетке өту үшін жоғарғы оң жақтағы Құжаттама сілтемесін нұқыңыз.

16 -қадам: API кілтін сақтаңыз

API кілтін сақтаңыз
API кілтін сақтаңыз
API кілтін сақтаңыз
API кілтін сақтаңыз

Құжаттар экранының бірінші жолы сіздің бірегей API кілтін көрсетеді. Бұл кілтті кейін пайдалану үшін көшіріп, сақтаңыз.

Аплетті осында сынап көру де жақсы идея. Есіңізде болсын, {event} параметрін Data_Logger немесе кез келген оқиғаны атаңыз және 3 бос мәнге кейбір деректерді қосыңыз, содан кейін беттің төменгі жағындағы «Тексеру» түймесін басыңыз. Сіз «Оқиға басталды» деген жасыл хабарламаны көресіз. Олай болса, Google Docs қызметіне өтіңіз және тест парағына енгізілген деректер Google Sheets құжатында көрсетілгенін растаңыз.

17 -қадам: Компоненттерді жинаңыз

Компоненттерді жинаңыз
Компоненттерді жинаңыз
Компоненттерді жинаңыз
Компоненттерді жинаңыз
Компоненттерді жинаңыз
Компоненттерді жинаңыз

Сізге тек бірнеше бөлік қажет.

1) ESP8266 NodeMcu әзірлеу тақтасы

2) DHT11 температура/ылғалдылық сенсоры

3) Есік/терезе қамысының қосқышы

4) 10к Ом резисторы

5) қосылу сымы

18 -қадам: компоненттерді жинаңыз

1) ESP8266 құрылғысындағы 3v3 түйреуіштің бірін DHT11 -дегі вк істікшесіне қосыңыз.

2) ESP8266 жердегі түйреуіштердің бірін DHT11 жерге қосу штырына қосыңыз.

3) ESP8266 -дағы D4 (IDE -дегі 2 -ші түйреуіш) DHT11 -дегі деректер түйрегіне қосыңыз.

4) ESP8266 басқа 3v3 түйреуішін есік/терезе қамысының қосқышының бір жағына жалғаңыз.

5) ESP8266 құрылғысындағы D5 түйреуішті (IDE -дегі 14 -ші түйреуіш) есік/терезе қамысының қосқышының екінші жағына жалғаңыз, сонымен қатар оны 10к Ом резистордың бір жағына қосыңыз.

6) 10к Ом резистордың екінші жағын ESP8266 басқа жерге тұйықтауышқа қосыңыз.

ESP8266 түйреуішін таңдау үшін осы пайдалы диаграмманы немесе өте пайдалы бейнені қараңыз.

19 -қадам: Arduino кодын жазыңыз

Arduino кодын жазыңыз
Arduino кодын жазыңыз

Төмендегі кодты көшіріп, Arduino IDE -ге қойыңыз.

#қосу #қосу #қосу «DHT.h»

#DHTPIN 2 анықтаңыз // біз қандай сандық түйреуішке қосыламыз

#DORPIN 14 анықтаңыз // есіктің қосқышы қандай сандық түйреуіш қосылғанын.

#DHTTYPE DHT11 // DHT 11 анықтаңыз

DHT dht (DHTPIN, DHTTYPE);

int count = 1;

const char* ssid = «some_ssid»; // мұны ssid const char* password = «some_password» пайдалану үшін өзгертіңіз; // мұны құпия сөзді пайдалану үшін өзгерту int sleepTime = 100;

// IFTTT Webhooks жасаушысы

const char* server = «maker.ifttt.com»;

// IFTTT URL ресурсы

const char* resource = «/trigger/SOME_SERVICE_NAME/with/key/SOME_API_KEY»; // Қызмет атауы мен api кілтін қолданғаныңызға көз жеткізіңіз.

String doorStatus = «Жабық»;

volatile bool stateChanged = false;

// Егер бірнеше сағат ұйықтайтын болсаңыз, интервалды сағ * 60 минут * 60 секунд * 1000 миллисекундқа орнатыңыз

const ұзақ аралығы = 1,0 * 60 * 60 * 1000; // 1 сағат белгісіз ұзақ алдыңғыMillis = 0 - (2 * интервал);

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

Serial.begin (115200); attachInterrupt (digitalPinToInterrupt (DOORPIN), eventTriggered, CHANGE); pinMode (DOORPIN, INPUT); // Есік датчигі dht.begin (); WiFi.begin (ssid, құпия сөз);

Serial.print («\ nБайланыс..»);

while (WiFi.status ()! = WL_CONNECTED) {кешігу (1000); Serial.print («.»); } Serial.print («\ n»); }

void eventTriggered () {

stateChanged = true; Serial.println («Есікті тексеру!»); if (digitalRead (DOORPIN) == HIGH) // Есіктің ашық екенін тексеріңіз {Serial.println («Есік жабық!»); doorStatus = «Жабық»; } else {Serial.println («Есік ашық!»); doorStatus = «Ашылды»; }}

жарамсыз тексеруStatus () {

if (WiFi.status () == WL_CONNECTED) {// WiFi қосылымының күйін тексеру // Оқу температурасы немесе ылғалдылығы шамамен 250 миллисекунд алады! // Сенсордың көрсеткіштері 2 секундқа дейін болуы мүмкін (оның сенсоры өте баяу) float h = dht.readHumidity (); // Оқу температурасы Цельсий ретінде (әдепкі) өзгермелі t = dht.readTemperature (); // Fahrenheit (isFahrenheit = true) өзгермелі ретінде температураны оқу f = dht.readTemperature (true); // Кез келген оқу сәтсіз болғанын тексеріп, ерте шығыңыз (қайталап көру үшін). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println («DHT сенсорынан оқу мүмкін болмады!»); //Serial.print («.»); // DHT сенсорынан оқу мүмкін болмады! қайтару; } // Фаренгейт бойынша жылу индексін есептеңіз (әдепкі) float hif = dht.computeHeatIndex (f, h); // Цельсий бойынша жылу индексін есептеңіз (isFahreheit = false) float hic = dht.computeHeatIndex (t, h, false);

Serial.print («\ n»);

Serial.print («Температура:»); Serial.print (f); Serial.print (« *F (»); Serial.print (t); Serial.print (« *C)»); Serial.print («\ t»); Serial.print («Жылу индексі:»); Serial.print (hif); Serial.print (« *F (»); Serial.print (hic); Serial.print (« *C)%»)); Serial.print («\ t»); Serial.print («Ылғалдылық:»); Serial.println (h);

if (digitalRead (DOORPIN) == HIGH) // Есіктің ашық екенін тексеріңіз

{Serial.println («Есік жабық!»); doorStatus = «Жабық»; } else {Serial.println («Есік ашық!»); doorStatus = «Ашылды»; } Жол jsonObject = Жол («{» мән1 / «: \» «) + f +»*F (« + t +»*C) / « + hif +»*F (« + hic +»*C) « +» / «, \» мән2 / «: \» « + ч +» / «, \» мәні3 / «: \» « + есік жағдайы +» / «}»; HTTPClient http; CompleteUrl жолы = «https://maker.ifttt.com/trigger/bme280_readings/with/key/cZFasEvy5_3JlrUSVAxQK9»; http.begin (completeUrl); // http.begin (сервер); http.addHeader («Content-Type», «application/json»); http. POST (jsonObject); http.writeToStream (& сериялық); http.end (); // Байланысты жабу

stateChanged = жалған;

int sleepTimeInMinutes = интервал / 1000/60; Serial.print («\ n / nҰйықтауға»); Serial.print (sleepTimeInMinutes); Serial.println («минут (тар)…»); }}

void loop () {

белгісіз ұзақ токMillis = millis (); кешіктіру (4000); // Егер біз өткен уақыттан асып кетсек, есік пен температураны тексеруге мәжбүр етіңіз. if (currentMillis - previousMillis> = интервал) {stateChanged = true; алдыңғыMillis = currentMillis; Serial.print (санау ++); Serial.println («) Уақыт өткеніне байланысты тексеру!»); } else if (stateChanged) {Serial.print (count ++); Serial.println («) күйдің өзгеруіне байланысты тексеру!»); }

// Егер күй өзгерсе, есік пен температураны тексеріңіз.

if (stateChanged) {checkStatus (); }

кешігу (ұйқы уақыты);

}

20 -қадам: Нәтижелер

Нәтижелер
Нәтижелер

Алдыңғы қадамда бастапқы кодты жүктегеннен кейін сіз жоғарыда көрсетілген мысал сияқты нәтижелерге ие болуыңыз керек.

21 -қадам: Несие

Мен кездейсоқ оқулықтардан көптеген пайдалы кеңестер мен кеңестер таптым және оларға барлық көмектері үшін алғыс айтқым келеді. Бұл нұсқаулықтың негізгі бөліктері негізделген ESP32 ESP8266 датчиктерінің оқуларын Google парақтарында жариялаудың тамаша оқулығы.

Сонымен қатар, TheCircuit ұсынған DHT11 Instructable маған өте арзан, бірақ қызықты сенсорды қалай пайдалану керектігін түсінуге көмектесті.

Сонымен қатар, сіздің есіктеріңізді бақылауға арналған көптеген оқулықтар бар, мысалы, Garage Door Monitor және Random Nerd Оқулықтарынан. Мен қамыс қосқышты қалай дұрыс жұмыс істеу керектігін түсінуге көмектесу үшін олардың бөлшектерін қолдандым.

Ақырында, осы ақпаратпен және Интернеттен тапқан басқа мәліметтермен мен өз қажеттіліктерімді қанағаттандыратын жүйе құра алдым. Сізге бұл нұсқаулық пайдалы деп ойлаймын және өзіңіздің жеке нұсқаңызды құрасыз.

Ұсынылған: