Мазмуну:
- 1 -кадам: Жоопкерчиликтен баш тартуу
- 2 -кадам: Free IFTTT эсебин орнотуу
- 3 -кадам: IFTTT апплетин түзүңүз
- 4 -кадам: Апплетиңиздин "бул" бөлүгүн конфигурациялаңыз
- 5 -кадам: WebHooks кызматын Апплетиңизге кошуңуз
- 6 -кадам: Желе суроо -триггерин алууну орнотуңуз
- 7 -кадам: Окуянын атын бериңиз
- 8 -кадам: Апплетиңиздин "ошол" бөлүгүн конфигурациялаңыз
- 9 -кадам: Аракет кызматын орнотуу
- 10 -кадам: Google Барактарга туташыңыз
- 11 -кадам: Аракетти тандаңыз
- 12 -кадам: Аракетти орнотуу
- 13 -кадам: Апплетиңизди карап чыгып, аягына чыгарыңыз
- 14 -кадам: Кийинчерээк керектүү конфигурация маалыматын алыңыз
- 15 -кадам: API ачкычы үчүн Webhooks документтерине өтүңүз
- 16 -кадам: API ачкычын сактаңыз
- 17 -кадам: Компоненттерди чогултуу
- 18 -кадам: Компоненттерди чогултуу
- 19 -кадам: Arduino кодун жазыңыз
- 20 -кадам: Жыйынтыктар
- 21 -кадам: Кредиттер
Video: Эшик жана температура статусун каттоочу долбоор: 21 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
Бул Instructable сизге ESP8266 NodeMCU, DHT11 температура жана нымдуулук сенсорун, эшик/терезе камышын алмаштыргычты, 10K Ом резисторун жана кээ бир туташтыруучу зымдарды колдонуп, 10.00 долларга чейин жөнөкөй эшикти жана температуранын статусун каттоону кантип көрсөтөт.
Бул долбоордун генезиси Arduino тактасы менен көбүрөөк үйдү автоматташтыруу каалоомдон келип чыккан, анткени мен Arduino менен шайкеш EPS8266 NodeMCU жөнүндө көп окуп жүргөндүктөн, мен бул такта эксперимент жасоо үчүн эң арзан баадагы такта болот деп чечтим. ESP8266 такталарын колдонуп, үйдү автоматташтыруу долбоорлорун Интернеттен издегенден кийин, мен биринчи аракетим үчүн температура менен эшиктин статусун каттоону бириктирүүнү чечтим. Акыр -аягы, бул долбоор менин чоң атам 50 жыл мурун иштелип чыккан жана курулган кичинекей жашыл үйдү автоматташтыруу үчүн сервоприводдор, нымдуулук сенсорлору жана башка электроника менен айкалышат. Температура сенсору жылытуу тутумун иштетүү же ажыратуу керектигин аныктоо үчүн колдонулат, ошондой эле керек болгондо желдетүү системасын ачуу жана жабуу үчүн серволорго сигнал берет. Желдетүү системасынын абалы магниттик камыш өчүргүчтөрдүн жардамы менен көзөмөлдөнөт. Акырында, ным сенсорлору сугат системасын автоматташтыруу үчүн колдонулат.
1 -кадам: Жоопкерчиликтен баш тартуу
Бул нускаманы аткаруунун натыйжасында болуп жаткан нерселер үчүн эч кандай жоопкерчилик тартпай тургандыгыбызды билдирүү үчүн тез эле баш тартуу. Эч нерсе курбоодо өндүрүүчүлөрдүн көрсөтмөлөрүн жана коопсуздук баракчаларын ээрчүү эң жакшы, андыктан өзүңүз куруу үчүн колдонгон тетиктери менен шаймандары үчүн бул документтерге кайрылыңыз. Биз жөн гана өзүбүздүн кадамдарыбыз жөнүндө маалымат берип жатабыз. Биз профессионал эмеспиз. Чындыгында, бул курулушка катышкан инсандардын 3төн 2си балдар.
2 -кадам: Free IFTTT эсебин орнотуу
Эгер сизде буга чейин жок болсо, анда алардын башкы бетине өтүп, IFTTT акысыз эсебин орнотууга убакыт келип жетти.. IFTTT эгер бул анда болсо жана бул интернетке негизделген кызматтарды жаңы жолдор менен туташтырууга мүмкүндүк берген бекер платформа. бул кызматтарды жаңы жолдор менен колдонууга мүмкүнчүлүк берет. Бул долбоор үчүн биз ESP8266га Google Sheets документиндеги DHT11 сенсору аркылуу камыштын ачкычы жана температурасы менен нымдуулугу аркылуу эшиктин статусун каттоого уруксат берүү үчүн IFTTT колдонобуз.
3 -кадам: IFTTT апплетин түзүңүз
IFTTTде дагы эле "Менин апплетим" бөлүмүнө өтүңүз жана "Жаңы апплет" баскычын чыкылдатып, жаңы апплет түзүңүз.
4 -кадам: Апплетиңиздин "бул" бөлүгүн конфигурациялаңыз
Жогорудагы сүрөттө белгиленгендей, көк түстөгү "бул" сөздү чыкылдатыңыз.
5 -кадам: WebHooks кызматын Апплетиңизге кошуңуз
Издөө тилкесинен "Webhooks" кызматын издеп, Webhooks сөлөкөтүн тандаңыз.
"Webhooks" кызматын тапкандан кийин, аны басыңыз.
6 -кадам: Желе суроо -триггерин алууну орнотуңуз
"Желе өтүнүчүн алуу" триггерин тандаңыз.
7 -кадам: Окуянын атын бериңиз
Текст кутучасына жаңы апплетиңизди окуя аты менен камсыздаңыз. Мен "Data Logger" тандадым, бирок сиз каалаган нерсеңизди тандай аласыз.
8 -кадам: Апплетиңиздин "ошол" бөлүгүн конфигурациялаңыз
Жогорудагы сүрөттө белгиленгендей, көк түстөгү "тигил" сөздү чыкылдатыңыз.
9 -кадам: Аракет кызматын орнотуу
Издөө кутучасынан "Google Барактар" кызматын издеп, Google Барактар сүрөтчөсүн чыкылдатыңыз.
10 -кадам: Google Барактарга туташыңыз
Эгер андай кыла элек болсоңуз, анда IFTTT каттоо эсебиңизди Google Барактарга туташтырышыңыз керек болот. Жогоруда көрсөтүлгөн Туташуу баскычын басыңыз жана экрандын көрсөтмөлөрүн аткарыңыз.
11 -кадам: Аракетти тандаңыз
"Электрондук жадыбалга катар кошуу" дегенди басыңыз.
12 -кадам: Аракетти орнотуу
"Электрондук жадыбалдын аты" текст кутучасына ат коюңуз. Мен ырааттуулук үчүн "Data_Logger" колдонууну чечтим. Жөндөөнүн калганын жалгыз калтырыңыз (сиз каалаган убакта бул параметр менен эксперимент жасай аласыз) жана экрандын ылдый жагындагы "Аракет түзүү" баскычын басыңыз.
13 -кадам: Апплетиңизди карап чыгып, аягына чыгарыңыз
Апплет конфигурацияңызга канааттангандан кийин "Аяктоо" баскычын басыңыз.
14 -кадам: Кийинчерээк керектүү конфигурация маалыматын алыңыз
"Webhooks" баскычын чыкылдатыңыз жогоруда.
15 -кадам: API ачкычы үчүн Webhooks документтерине өтүңүз
Бул таң калычтуу көрүнүшү мүмкүн, бирок уникалдуу API ачкычыңыз баракка өтүү үчүн оң жактагы Документтер шилтемесин басыңыз.
16 -кадам: API ачкычын сактаңыз
Документтер экраны биринчи сапта сиздин уникалдуу API ачкычыңызды көрсөтөт. Бул ачкычты кийинчерээк колдонуу үчүн көчүрүү жана сактоо.
Бул жерде апплетти сынап көрүү да жакшы идея. {Event} ды Data_Logger деп өзгөртүүнү унутпаңыз же өзүңүздүн окуяга кандай ат койсоңуз да, 3 бош мааниге кээ бир маалыматтарды кошуп, беттин ылдый жагындагы "Сыноо" баскычын басыңыз. Сиз "Окуя башталды" деген жашыл билдирүүнү көрүшүңүз керек. Андай болсо, Google Docsко өтүңүз жана тест баракчасына киргизилген маалыматтар Google Sheets документинде көрсөтүлгөнүн ырастаңыз.
17 -кадам: Компоненттерди чогултуу
Сизге бир нече бөлүк гана керек болот.
1) ESP8266 NodeMcu өнүктүрүү кеңеши
2) DHT11 Температура/Нымдуулук Сенсору
3) Door/Window Reed Switch
4) 10k Ом резистору
5) Hookup Wire
18 -кадам: Компоненттерди чогултуу
1) ESP8266дагы 3v3 пиндин бирин DHT11деги vcc пинине туташтырыңыз.
2) ESP8266дагы жерге төөнөгүчтөрдүн бирин DHT11деги жерге төөнөгүчкө туташтырыңыз.
3) ESP8266дагы D4 пинди (IDEдеги 2 -пин) DHT11деги маалымат пинине туташтырыңыз.
4) ESP8266дагы башка 3v3 төөнөгүчтү эшиктин/терезенин камышынын бир жагына туташтырыңыз.
5) ESP8266дагы D5 пинди (IDEдеги 14 -пин) эшиктин/терезе камышынын которгучунун башка жагына туташтырыңыз жана аны 10к Ом резисторунун бир жагына туташтырыңыз.
6) 10k ом каршылыгынын экинчи тарабын ESP8266дагы башка жерге туташтыргычка туташтырыңыз.
ESP8266 пин тандоо үчүн бул пайдалуу диаграммага же абдан пайдалуу видеого кайрылыңыз.
19 -кадам: Arduino кодун жазыңыз
Төмөндөгү кодду көчүрүп, Arduino IDEге коюңуз.
#кошуу #кошуу #кошуу "DHT.h"
#Define DHTPIN 2 // биз кандай санариптик пинге туташып турабыз
#deofine DOORPIN 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;
// Жаратуучу Webhooks IFTTT
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); // Door Sensor 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 сенсорунан окуу ишке ашкан жок! кайтуу; } // Фаренгейт боюнча жылуулук индексин эсептөө (демейки) калкыма 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 = Сап ("{" value1 / ": \" ") + f +"*F (" + t +"*C) / " + hif +"*F (" + hic +"*C) " +" / ", \" value2 / ": \" " + h +" / ", \" value3 / ": \" " + doorStatus +" / "}"; HTTPClient http; String 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 (& Serial); http.end (); // Байланышты жабуу
stateChanged = false;
int sleepTimeInMinutes = интервал / 1000/60; Serial.print ("\ n / nУктоого өт"); Serial.print (sleepTimeInMinutes); Serial.println ("мүнөт (тер)…"); }}
void loop () {
белгисиз узак currentMillis = millis (); кечигүү (4000); // Эгерде биз өткөн убакыттан ашып кетсек, анда эшикти жана температураны текшерүүгө мажбур кылыңыз. if (currentMillis - previousMillis> = interval) {stateChanged = true; previousMillis = currentMillis; Serial.print (count ++); Serial.println (") Өткөн убакытка байланыштуу текшерилүүдө!"); } else if (stateChanged) {Serial.print (count ++); Serial.println (") Мамлекет өзгөргөндүктөн текшерилүүдө!"); }
// Эгерде абал өзгөрсө, анда эшикти жана температураны текшериңиз.
if (stateChanged) {checkStatus (); }
кечигүү (sleepTime);
}
20 -кадам: Жыйынтыктар
Мурунку кадамда баштапкы кодду жүктөгөндөн кийин, жогоруда көрсөтүлгөн мисал сыяктуу жыйынтыктар болушу керек.
21 -кадам: Кредиттер
Мен Random Nerd Tutorialsден көптөгөн пайдалуу кеңештерди жана кеңештерди таптым жана аларга бардык жардамы үчүн рахмат айткым келет. Айрыкча, алардын эң сонун үйрөткүчү ESP32 ESP8266 сенсордук окуусун Google Барактарына жарыялоо, бул инструкциянын негизги бөлүктөрү негизделген.
Андан тышкары, TheCircuitтен DHT11 Instructable мага бул абдан арзан, бирок кызыктуу кичинекей сенсорду кантип колдонууну түшүнүүгө жардам берди.
Мындан тышкары, Garaj Door Monitor жана Random Nerd Tutorials сыяктуу башка эшиктериңизди көзөмөлдөө менен алектенген көптөгөн окуу куралдары бар. Мен камыш которгучумдун кантип туура иштешин түшүнүүгө жардам берүү үчүн булардын бөлүктөрүн колдондум.
Акыр -аягы, Интернеттен тапкан бул маалымат жана башка деталдар менен мен муктаждыктарыма жооп берген системаны түзө алдым. Бул Нускаманы сизге пайдалуу деп таап, өзүңүздүн жеке куруңуз деп үмүттөнөм.
Сунушталууда:
Ардуино UNO жана SD-Card менен нымдуулукту жана температураны реалдуу убакытта кантип жаздыруу керек - DHT11 Proteusтагы маалыматтарды каттоочу симуляциясы: 5 кадам
Ардуино UNO жана SD-Card менен нымдуулукту жана температураны реалдуу убакытта кантип жаздыруу керек | DHT11 Data Logger Simulation in Proteus: Киришүү: салам, бул Liono Maker, бул жерде YouTube шилтемеси. Биз Arduino менен креативдүү долбоор түзүп, камтылган системаларда иштейбиз. Дата-Логгер: Маалыматты жазуучу (ошондой эле маалыматтарды жазуучу же маалымат жазгыч)-бул убакыттын өтүшү менен маалыматтарды жазуучу электрондук түзүлүш
IFTTT менен зымдуу эшик коңгуроосун акылдуу эшик коңгуроосуна айлантыңыз: 8 кадам
IFTTT менен зымдуу эшик коңгуроосун акылдуу эшик коңгуроосуна айлантыңыз: WiFi эшик коңгуроосу учурдагы зымдуу коңгуроону акылдуу коңгуроого айлантат. https://www.fireflyelectronix.com/product/wifidoor
Үйдүн жардамчысы менен зымдуу эшик коңгуроосун акылдуу эшик коңгуроосуна айлантыңыз: 6 кадам
Үйдүн жардамчысы менен зымдуу эшикти акылдуу эшик коңгуроосуна айлантыңыз: Учурдагы зымдуу коңгуроону акылдуу коңгуроого айлантыңыз. Кимдир бирөө сиздин коңгурооңузду чалганда сүрөт же видео эскертүүсүн алуу үчүн телефонуңузга же учурдагы алдыңкы эшик камераңыз менен жупка билдирүү алыңыз
Эшик жана Эшик Мониторинги менен Туташкан Автоматтык Жарыктар .: 5 кадам
Автоматтык жарыктар эшик жана эшикти көзөмөлдөө менен туташкан .: Караңгыда коммутатордун тактасын табуу абдан кыйын окшойт, бирок бул проект бул маселени чечүүдө абдан пайдалуу. Мунун чечимин билүү үчүн төмөнкү кадамдарды аткарыңыз
Температура жана нымдуулукту көрсөтүү жана маалыматтарды чогултуу Arduino жана иштетүү менен: 13 кадам (сүрөттөр менен)
Температура жана нымдуулукту көрсөтүү жана маалыматтарды чогултуу Arduino жана иштетүү менен: Киришүү: Бул Ардуино тактасын, Sensor (DHT11), Windows компьютери жана Processing (бекер жүктөлүүчү) программасын колдонуп, Температураны, Нымдуулукту санариптик жана тилке графасынын формасы, убакытты жана күндү көрсөтүү жана эсептөө убактысын иштетүү