Съдържание:
- Стъпка 1: Отказ от отговорност
- Стъпка 2: Настройка на безплатен IFTTT акаунт
- Стъпка 3: Създайте IFTTT аплет
- Стъпка 4: Конфигурирайте „тази“част от вашия аплет
- Стъпка 5: Добавете услугата WebHooks към вашия аплет
- Стъпка 6: Настройте тригера за получаване на уеб заявка
- Стъпка 7: Дайте име на събитие
- Стъпка 8: Конфигурирайте "онази" част от вашия аплет
- Стъпка 9: Настройте услуга за действие
- Стъпка 10: Свържете се с Google Таблици
- Стъпка 11: Изберете действие
- Стъпка 12: Настройте действието
- Стъпка 13: Прегледайте и завършете вашия аплет
- Стъпка 14: Извличане на информация за конфигурацията, необходима по -късно
- Стъпка 15: Преминете към документацията на Webhooks за API ключа
- Стъпка 16: Запазете API ключа
- Стъпка 17: Съберете компонентите
- Стъпка 18: Сглобете компонентите
- Стъпка 19: Напишете кода на Arduino
- Стъпка 20: Резултати
- Стъпка 21: Кредити
Видео: Проект за регистрация на състоянието на вратата и температурата: 21 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
Този Instructable ще ви покаже как да направите прост регистратор на състоянието на вратата и температурата за по -малко от $ 10.00, като използвате ESP8266 NodeMCU, сензор за температура и влажност на DHT11, превключвател за врата/прозорец, резистор от 10K ома и малко свързващ проводник.
Генезисът на този проект дойде от желанието ми да направя повече домашна автоматизация с дъската Arduino. Тъй като бях чел много за съвместимата с Arduino EPS8266 NodeMCU, реших, че тази дъска ще бъде идеалната нискотарифна платка, с която да експериментирам. След като потърсих в Интернет проекти за домашна автоматизация, използвайки платките ESP8266, се спрях да комбинирам регистратор на температура и състояние на вратата за първия си опит. В крайна сметка този проект ще бъде комбиниран със серво, сензори за влага и друга електроника, за да автоматизира малка зелена къща, проектирана и построена от дядо ми преди 50 години. Температурният сензор ще се използва за определяне дали отоплителната система трябва да бъде включена или изключена, както и да сигнализира сервомоторите да отворят и затворят вентилационната система, когато е необходимо. Състоянието на вентилационната система ще се следи чрез използването на магнитни тръстикови превключватели. И накрая, сензорите за влага ще бъдат използвани за автоматизиране на поливната система.
Стъпка 1: Отказ от отговорност
Само бързо отказване от отговорност, за да заявим, че НЕ поемаме НИКАКАВА отговорност за всичко, което се случи в резултат на спазването на тази инструкция. Винаги е най -добре да следвате инструкциите на производителите и листовете за безопасност, когато изграждате каквото и да било, така че, моля, консултирайте се с тези документи за всяка от частите и инструментите, които използвате, за да изградите свои собствени. Ние просто предоставяме информация за стъпките, които използвахме, за да създадем нашите. Ние не сме професионалисти. Всъщност 2 от 3 лица, участвали в това изграждане, са деца.
Стъпка 2: Настройка на безплатен IFTTT акаунт
Ако все още нямате такъв, сега е моментът да настроите безплатен IFTTT акаунт, като отидете на началната им страница. IFTTT означава Ако това е след това и е безплатна платформа, която ви позволява да свържете интернет базирани услуги по нови начини за ще ви позволи да използвате тези услуги по нови начини. За този проект ще използваме IFTTT, за да позволим на ESP8266 да регистрира състоянието на вратата чрез тръстиков превключвател и температурата и влажността чрез сензора DHT11 в документ на Google Sheets.
Стъпка 3: Създайте IFTTT аплет
Докато сте все още в IFTTT, преминете към раздела „Моите аплети“и създайте нов аплет, като щракнете върху бутона „Нов аплет“.
Стъпка 4: Конфигурирайте „тази“част от вашия аплет
Кликнете върху думата „този“, която е в син цвят - както е подчертано на фигурата по -горе.
Стъпка 5: Добавете услугата WebHooks към вашия аплет
В лентата за търсене потърсете услугата „Webhooks“и изберете иконата Webhooks.
След като намерите услугата „Webhooks“, щракнете върху нея.
Стъпка 6: Настройте тригера за получаване на уеб заявка
Изберете тригера „Получаване на уеб заявка“.
Стъпка 7: Дайте име на събитие
В текстовото поле предоставете на новия си аплет име на събитие. Избрах "Data Logger", но вие можете да изберете каквото искате.
Стъпка 8: Конфигурирайте "онази" част от вашия аплет
Кликнете върху „онази“дума, която е в син цвят - както е подчертано на фигурата по -горе.
Стъпка 9: Настройте услуга за действие
В полето за търсене потърсете услугата „Google Sheets“и щракнете върху иконата на Google Sheets.
Стъпка 10: Свържете се с Google Таблици
Ако все още не сте го направили, ще трябва да свържете вашия IFTTT акаунт с Google Sheets. Натиснете бутона за свързване, показан по-горе, и следвайте инструкциите на екрана.
Стъпка 11: Изберете действие
Кликнете върху „Добавяне на ред в електронна таблица“.
Стъпка 12: Настройте действието
Посочете име в текстовото поле „Име на електронна таблица“. Избирам да използвам "Data_Logger" за последователност. Оставете останалата част от настройката на мира (можете да експериментирате с тези настройки по друго време) и след това натиснете бутона „Създаване на действие“в долната част на екрана.
Стъпка 13: Прегледайте и завършете вашия аплет
След като сте доволни от конфигурацията на аплета, натиснете бутона „Край“.
Стъпка 14: Извличане на информация за конфигурацията, необходима по -късно
Кликнете върху „Webhooks“, както е подчертано по -горе.
Стъпка 15: Преминете към документацията на Webhooks за API ключа
Може да изглежда странно, но кликнете върху връзката Документация в горния десен ъгъл, за да продължите към страницата с вашия уникален API ключ.
Стъпка 16: Запазете API ключа
Първият ред на екрана с документация показва вашия уникален API ключ. Копирайте и запазете този ключ за използване по -късно.
Също така е добра идея да тествате аплета тук. Не забравяйте да промените {събитието} на Data_Logger или каквото и да е името на вашето събитие и да добавите някои данни към трите празни стойности, след което щракнете върху бутона „Тествай го“в долната част на страницата. Трябва да видите зелено съобщение „Събитието е задействано“. Ако е така, преминете към Google Документи и потвърдете, че данните, които сте въвели на тестовата страница, са се появили в документа на Google Таблици.
Стъпка 17: Съберете компонентите
Ще ви трябват само няколко части.
1) ESP8266 Съвет за развитие на NodeMcu
2) DHT11 сензор за температура/влажност
3) Врата за превключване на врати/прозорци
4) 10k Ohm резистор
5) Свързващ проводник
Стъпка 18: Сглобете компонентите
1) Свържете един от 3v3 щифта на ESP8266 към vcc щифта на DHT11.
2) Свържете един от заземяващите щифтове на ESP8266 към заземяващия щифт на DHT11.
3) Свържете щифт D4 (известен още като пин 2 в IDE) на ESP8266 към щифта за данни на DHT11.
4) Свържете друг щифт 3v3 на ESP8266 към едната страна на превключвателя за врата/прозорец.
5) Свържете щифт D5 (известен още като щифт 14 в IDE) на ESP8266 към другата страна на превключвателя на вратата/прозореца и също го свържете към едната страна на резистора 10k ohm.
6) Свържете другата страна на 10k омовия резистор към друг заземен щифт на ESP8266.
За избор на щифтове ESP8266, моля, вижте тази полезна диаграма или много полезното видео.
Стъпка 19: Напишете кода на Arduino
Копирайте и поставете кода по -долу във вашата Arduino IDE.
#include #include #include "DHT.h"
#define DHTPIN 2 // към кой цифров пин сме свързани
#define DOORPIN 14 // на кой цифров щифт е включен превключвателят на вратата.
#дефинирайте DHTTYPE DHT11 // DHT 11
DHT dht (DHTPIN, DHTTYPE);
int брой = 1;
const char* ssid = "some_ssid"; // променете това, за да използвате вашия ssid const char* password = "some_password"; // променете това, за да използвате паролата си int sleepTime = 100;
// Създател на уеб куки IFTTT
const char* server = "maker.ifttt.com";
// URL ресурс на IFTTT
const char* resource = "/trigger/SOME_SERVICE_NAME/with/key/SOME_API_KEY"; // Уверете се, че използвате името на услугата си и своя api ключ.
String doorStatus = "Затворен";
летливи bool stateChanged = false;
// Ако спите с часове, задайте интервал от hr * 60 минути * 60 секунди * 1000 милисекунди
const дълъг интервал = 1,0 * 60 * 60 * 1000; // 1 час без подпис дълъг предишенMillis = 0 - (2 * интервал);
void setup () {
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 = "Отворено"; }}
void checkStatus () {
if (WiFi.status () == WL_CONNECTED) {// Проверете състоянието на WiFi връзката // Температурата или влажността на четене отнемат около 250 милисекунди! // Показанията на сензора също могат да бъдат до 2 секунди „стари“(това е много бавен сензор) float h = dht.readHumidity (); // Четене на температурата като Целзий (по подразбиране) float t = dht.readTemperature (); // Четене на температурата като Фаренхайт (isFahrenheit = true) float 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 = "Отворено"; } String jsonObject = String ("{" value1 / ": \" ") + f +"*F (" + t +"*C) / " + hif +"*F (" + hic +"*C) " +" / ", \" value2 / ": \" " + h +" / ", \" value3 / ": \" " + doorStatus +" / "}"; HTTPClient http; Низ completeUrl = "https://maker.ifttt.com/trigger/bme280_readings/with/key/cZFasEvy5_3JlrUSVAxQK9"; http.begin (completeUrl); // http.begin (сървър); http.addHeader ("Тип съдържание", "приложение/json"); http. POST (jsonObject); http.writeToStream (& Serial); http.end (); // Затваряне на връзката
stateChanged = false;
int sleepTimeInMinutes = интервал / 1000 /60; Serial.print ("\ n / nОтидете да спите за"); Serial.print (sleepTimeInMinutes); Serial.println ("минути (и) …"); }}
void loop () {
беззнаков дълъг токMillis = millis (); забавяне (4000); // Ако сме надхвърлили изминалото време, принудително проверете вратата и темп. if (currentMillis - previousMillis> = интервал) {stateChanged = true; previousMillis = currentMillis; Serial.print (брой ++); Serial.println (") Проверка поради изминалото време!"); } else if (stateChanged) {Serial.print (count ++); Serial.println (") Проверка поради промяна на състоянието!"); }
// Ако състоянието се промени, проверете вратата и темп.
if (stateChanged) {checkStatus (); }
забавяне (sleepTime);
}
Стъпка 20: Резултати
След като качите изходния код в предишната стъпка, трябва да имате резултати като примера, показан по -горе.
Стъпка 21: Кредити
Открих много полезни съвети и съвети от уроци по случайни глупаци и бих искал да им благодаря за цялата им помощ. Особено техният отличен урок за ESP32 ESP8266 Публикуване на сензори за сензори в Google Sheets, на които се основават основните части на тази инструкция.
Освен това, DHT11 Instructable от TheCircuit ми помогна да разбера как да използвам този много евтин, но интересен малък сензор.
Освен това има много уроци, които се занимават с наблюдение на вашите врати, като монитора на гаражните врати и още един от уроците за случайни глупаци. Използвах парченца от тях, за да ми помогне да разбера как да накарам моя тръстиков превключвател да работи правилно.
И накрая, с тази информация, както и с други подробности, които открих в Интернет, успях да създам система, която да отговаря на моите нужди. Надявам се да намерите този Instructable полезен и да създадете свой собствен.
Препоръчано:
Индикатор за състоянието на семейството / колегата: 6 стъпки (със снимки)
Индикатор за състоянието на семейството / колегата: Първият ми инструктаж, много проекти ми помогнаха през годините, надявам се, че това ще помогне на някой друг. Кратката история … Имахме нужда от начин да си покажем състоянието, вместо да прекъсваме обажданията, или да стоим настрана, когато приемем, че друг
LED дисплей за състоянието на качеството на въздуха PurpleAir: 4 стъпки
LED дисплей за състоянието на качеството на въздуха PurpleAir: С последните пожари в Калифорния качеството на въздуха в Сан Франциско е силно засегнато. Озовахме се да проверяваме картата PurpleAir отново и отново на нашите телефони или лаптопи, опитвайки се да видим кога въздухът е достатъчно безопасен, за да отвори победата
Индикатор за състоянието на работа от дома: 5 стъпки
Индикатор за състоянието „Работа от вкъщи“: При сегашната ситуация на работа от вкъщи съм изправен пред някои предизвикателства, тъй като децата ми също учат от вкъщи. Понякога работата и семейният живот могат да бъдат малко замъглени. Така че трябва да мога да установя някои основни правила с децата си, за да
Хакване на светлината за състоянието на гаражните врати: 3 стъпки
Светкавица за състоянието на гаражните врати: Живея в къща, където не е лесно да се види дали гаражната врата е отворена или затворена. Имаме бутон в къщата, но вратата не се вижда. Мисълта за проектиране на някакъв вид превключвател и захранване беше нежелателна поради високата цена
Кой е на вратата ми? Проект на PIR сензор за движение/сензор за обхват: 5 стъпки
Кой е на вратата ми? Проект за PIR сензор за движение/сензор за обхват: Нашият проект има за цел да усети движението чрез PIR и сензори за разстояние. Кодът на Arduino ще извежда визуален и аудио сигнал, за да каже на потребителя, че някой е близо. Кодът MATLAB ще изпрати имейл сигнал, за да предупреди потребителя, че някой е наблизо. Това устройство