Мазмуну:

Эшик жана температура статусун каттоочу долбоор: 21 кадам
Эшик жана температура статусун каттоочу долбоор: 21 кадам

Video: Эшик жана температура статусун каттоочу долбоор: 21 кадам

Video: Эшик жана температура статусун каттоочу долбоор: 21 кадам
Video: Мына сага фигура. Айгерим Расул кызы🍑🍑🍑🔥🔥🔥🍆🍆🍆 #bulbul #кыргызчаырлар #бишкек #кыргызстан #хит 2024, Июль
Anonim
Эшик жана температура статусун каттоочу долбоор
Эшик жана температура статусун каттоочу долбоор

Бул Instructable сизге ESP8266 NodeMCU, DHT11 температура жана нымдуулук сенсорун, эшик/терезе камышын алмаштыргычты, 10K Ом резисторун жана кээ бир туташтыруучу зымдарды колдонуп, 10.00 долларга чейин жөнөкөй эшикти жана температуранын статусун каттоону кантип көрсөтөт.

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

1 -кадам: Жоопкерчиликтен баш тартуу

Бул нускаманы аткаруунун натыйжасында болуп жаткан нерселер үчүн эч кандай жоопкерчилик тартпай тургандыгыбызды билдирүү үчүн тез эле баш тартуу. Эч нерсе курбоодо өндүрүүчүлөрдүн көрсөтмөлөрүн жана коопсуздук баракчаларын ээрчүү эң жакшы, андыктан өзүңүз куруу үчүн колдонгон тетиктери менен шаймандары үчүн бул документтерге кайрылыңыз. Биз жөн гана өзүбүздүн кадамдарыбыз жөнүндө маалымат берип жатабыз. Биз профессионал эмеспиз. Чындыгында, бул курулушка катышкан инсандардын 3төн 2си балдар.

2 -кадам: Free 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 -кадам: Окуянын атын бериңиз

Иш -чаранын атын бериңиз
Иш -чаранын атын бериңиз

Текст кутучасына жаңы апплетиңизди окуя аты менен камсыздаңыз. Мен "Data Logger" тандадым, бирок сиз каалаган нерсеңизди тандай аласыз.

8 -кадам: Апплетиңиздин "ошол" бөлүгүн конфигурациялаңыз

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

Жогорудагы сүрөттө белгиленгендей, көк түстөгү "тигил" сөздү чыкылдатыңыз.

9 -кадам: Аракет кызматын орнотуу

Аракет кызматын орнотуу
Аракет кызматын орнотуу

Издөө кутучасынан "Google Барактар" кызматын издеп, Google Барактар сүрөтчөсүн чыкылдатыңыз.

10 -кадам: Google Барактарга туташыңыз

Google Барактарга туташуу
Google Барактарга туташуу

Эгер андай кыла элек болсоңуз, анда IFTTT каттоо эсебиңизди Google Барактарга туташтырышыңыз керек болот. Жогоруда көрсөтүлгөн Туташуу баскычын басыңыз жана экрандын көрсөтмөлөрүн аткарыңыз.

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) 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 кодун жазыңыз
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 сыяктуу башка эшиктериңизди көзөмөлдөө менен алектенген көптөгөн окуу куралдары бар. Мен камыш которгучумдун кантип туура иштешин түшүнүүгө жардам берүү үчүн булардын бөлүктөрүн колдондум.

Акыр -аягы, Интернеттен тапкан бул маалымат жана башка деталдар менен мен муктаждыктарыма жооп берген системаны түзө алдым. Бул Нускаманы сизге пайдалуу деп таап, өзүңүздүн жеке куруңуз деп үмүттөнөм.

Сунушталууда: