Съдържание:

IoT Външна врата за домашни любимци: 6 стъпки (със снимки)
IoT Външна врата за домашни любимци: 6 стъпки (със снимки)

Видео: IoT Външна врата за домашни любимци: 6 стъпки (със снимки)

Видео: IoT Външна врата за домашни любимци: 6 стъпки (със снимки)
Видео: ТОП 10 НАЙ - ТЕЖКИТЕ ХОРА ЖИВЕЛИ НЯКОГА НА ЗЕМЯТА 2024, Ноември
Anonim
IoT Външна врата за домашни любимци
IoT Външна врата за домашни любимци
IoT Външна врата за домашни любимци
IoT Външна врата за домашни любимци
IoT Външна врата за домашни любимци
IoT Външна врата за домашни любимци
IoT Външна врата за домашни любимци
IoT Външна врата за домашни любимци

Бях вдъхновен от тази инструкция да създам автоматична врата за кокошарник. Не само, че исках вратата на кокошарника на таймер, но също така исках да свържа вратата към интернет, за да мога да я контролирам с телефона или компютъра си. Тази врата е построена за моя кокошарник, но може лесно да се приложи към други видове жилища за различни домашни любимци. Можете също така да използвате различни видове 12V двигатели, освен стария антенен двигател за кола, който използвах.

След настройка и свързване на Adafruit IO и IFTTT към моя ESP8266, вратата на кокошарника ми може да се управлява онлайн. Вратата може да се отваря или затваря:

1) В определени моменти, в които влизам на adafruit.io

2) Чрез натискане на бутон на телефона ми

3) Като изпратите текстово съобщение на определен номер

4) Като щракнете върху бутон на adafruit.io

5) Чрез натискане на физически бутон

Освен тези функции, вратата на кокошарника може да изпраща push известия до телефона ми чрез приложението IFTTT за всякакви проблеми с вратата, като например, че вратата не се отваря или затваря.

Тъй като моят кокошарник е извън около 500 фута от моя WiFi рутер, използвах 433MHz RFM69HCW предавател и приемник, сдвоен с ESP8266, за да осъществя този проект. Има черна вътрешна предавателна кутия с хардуер, който е свързан към интернет и сива външна приемна кутия, която управлява двигателя.

Тази инструкция ще ви преведе през процеса на създаване на хардуера, необходим за управление на 12V мотор, който отваря или затваря вратата на кокошарника ми.

Използвах следните части:

Adafruit 32u4 с 433MHz RFM69HCW - 25 долара

Adapruit MCP23017 I2C 16 разширител на вход/изход IC порт - 2,95 долара

Adafruit Feather HUZZAH с ESP8266 WiFi - $ 16.95

Adafruit Radio FeatherWing 433MHz RFM69HCW - $ 10

Adafruit SMA конектор за печатни платки с дебелина 1,6 мм - $ 2,50

Adafruit uFL SMA антенен конектор - 0,75 долара

Бутон Adafruit RGB - $ 10.95

12V захранване - $ 7

5V USB захранване - $ 7

Micro USB кабел - $ 5

4-канална релейна платка (може да използва 2-канална)- $ 7

DC -DC Buck Converter (използва се само един, но идва като пакет от 5) - 20 долара

Reed Switch (магнитен сензор за превключвател на вратата) - $ 9

2x 433MHz многопосочна антена - $ 6

uFL към SMA кабелен адаптер (използван е само един, но идва като пакет от 2) - $ 5

Водоустойчива външна кутия за проектиране на ABS - $ 11

Черна кутия за проектиране на ABS - $ 10

20x4 LCD дисплей със сини знаци - $ 10

12V автомобилен антен мотор - ~ 25 долара в ebay

Тел и резистори

Стъпка 1: Външен приемник

Външен приемник
Външен приемник
Външен приемник
Външен приемник

Външният приемник се състои от Adafruit 32u4 с 433MHz RFM69HCW, свързан към няколко релета, които включват или изключват захранването за 12V мотор. Тези модули, както и 12V към 5V DC-DC преобразувател са вътре във водоустойчива сива кутия за проектиране. И накрая, има сензор за превключвател на вратата, свързан към един от щифтовете на микроконтролера 32u4 Arduino, който усеща дали вратата е правилно отворена или затворена, когато трябва.

На всеки 15 секунди вътрешният предавател ще изпраща "Open" или "Close". Въз основа на получената команда, Arduino 32u4 ще включи или изключи реле. За избрания от мен двигател, който е стар двигател за антена на автомобил, трябваше да включа или изключа две релета поради начина, по който моторът е свързан. По принцип имаше реле за включване на захранването и след това друго реле, което контролираше дали моторът е удължен или прибран.

След като се получи предаване за отваряне или затваряне, външният приемник отговаря с „sensorOpen“или „sensorClosed“, за да покаже състоянието на сензора за превключване на вратата. В идеалния случай командата "open" би върнала отговор "sensorOpen", но ако вратата се забие или двигателят задръсти, те няма да съвпадат. Когато те не съвпадат, вътрешният предавател ще покаже тази информация и push известие ще бъде изпратено до вашия телефон.

Стъпка 2: Свързване на хардуер за външен приемник

Свързване на хардуер на външен приемник
Свързване на хардуер на външен приемник
Свързване на хардуер за външен приемник
Свързване на хардуер за външен приемник
Свързване на хардуер на външен приемник
Свързване на хардуер на външен приемник

Хардуерът за външния приемник не е твърде труден за свързване. Включих схема за фризиране по -долу, така че щифтовете, които използвах, да могат лесно да се разглеждат.

Както казах по -горе, използваният от мен двигател изискваше две релета. Включих снимка на разпечатката. Когато включите 12V към червения проводник, двигателят ще се прибере, ако бъде удължен. Ако свържете 12V към червения проводник и зеления проводник едновременно, двигателят ще се удължи.

Тръстичковият превключвател, който свързах по -горе, трябва да бъде свързан като нормално затворен ключ. Разликата между нормално отворен и нормално затворен е обяснена на снимката, която прикачих по -горе. Използвайки софтуер, към входния щифт на 32u4 е прикрепен вътрешен резистор, така че всичко, което трябва да направите, е да свържете превключвателя на вратата към входния щифт, а също и към земята.

Ще трябва да прикрепите антена към Adafruit 32u4. Моля, вижте наистина добре обяснения урок на Adafruit за тази стъпка. Избрах да използвам външна антена вместо парче тел, за да получа по -добър обхват.

Стъпка 3: Вътрешен предавател

Вътрешен предавател
Вътрешен предавател
Вътрешен предавател
Вътрешен предавател
Вътрешен предавател
Вътрешен предавател

Вътрешният предавател се състои от Adafruit Radio FeatherWing 433MHz RFM69HCW, подредени върху Adafruit Feather HUZZAH с ESP8266 WiFi. Тези модули са свързани към 20x4 символен дисплей и RGB сребърен бутон вътре в черна кутия за проекти.

Дисплеят има синхронизиран часовник NTC, силата на RSSI в dB (измерва силата на радиосигналите), времето, когато вратата на кокошарника ще се отвори, времето, когато вратата на кокошарника ще се затвори, и текущото състояние на вратата. Бутонът е червен, когато вратата е затворена, и зелен, когато вратата е отворена.

Ако външният приемник загуби захранване или ако 433MHz сигнал не може да бъде изпратен по някаква причина, дисплеят и бутонът RGB ще преминат в първия от двата възможни режима на грешка. В първия режим на грешка на дисплея ще се изпише "ГРЕШКА! Опитайте да рестартирате външния приемник." и бутонът няма да има цвят. Ако сензорът на превключвателя на вратата открие, че вратата не се затваря или отваря правилно, дисплеят и бутонът RGB ще преминат във втория от двата режима на грешка. Във втория режим на грешка на дисплея ще се изпише "ГРЕШКА! Проблем със сензора на вратата или превключвателя." и бутонът няма да има цвят. Когато проблемът се реши сам, дисплеят и бутонът RGB ще се върнат към нормалното. Можете да получавате push известия на телефона си, ако възникне някой от тези режими на грешка (ще разгледам тази настройка в по -късна стъпка).

Стъпка 4: Свързване на хардуер за вътрешен предавател

Свързване на хардуер за вътрешен предавател
Свързване на хардуер за вътрешен предавател
Свързване на хардуер за вътрешен предавател
Свързване на хардуер за вътрешен предавател

След подреждане на Adafruit Radio FeatherWing 433MHz RFM69HCW върху Adafruit Feather HUZZAH с ESP8266 WiFi, остават само 2 пина, които не са взети, I2C щифтовете SDA и SCL. Ето защо отидох с интегралната схема (IC) на MCP23017. Това е наистина страхотна интегрална схема, която свързва до 16 допълнителни входни/изходни пина към всеки микроконтролер през I2C. Освен това има предварително написана библиотека, наречена Adafruit-RGB-LCD-Shield, която използва тази интегрална схема с дисплей със символи, който е технически написан за този продукт Adafruit, но работи перфектно за този проект.

Идеята да се използва MCP23017 с дисплей с символи идва от тази много добре написана инструкция. Моля, проверете го!

Взех тази инструкция и вместо да свързвам множество бутони и RGB дисплей към IC, свързах само един бутон, който имаше RGB LED вътре в него и монохромен дисплей към IC. Това ми позволи да дефинирам PIN 1 на IC (обикновено се използва за синята подсветка на RGB дисплей) като подсветка за моя монохромен дисплей, PIN 28 (обикновено се използва за зелената подсветка на RGB дисплей) като червен светодиод вътре в бутон и PIN 27 (обикновено се използва за червената подсветка на RGB дисплей) като зелен светодиод вътре в бутона. ПИН 24 е свързан към едната страна на бутона, а другата страна към земята. Можете да видите разтоварването на бутона на снимката, приложена по -горе (оставих синия катод изключен).

Освен че използвах тази инструкция, която свързах, за да помогна за свързването на дисплея, аз включих схема за фриттинг, която ще ви помогне да свържете всичко.

Ще трябва да скъсите три пина в горната част на FeatherWing 433MHz RFM69HCW, както е обяснено в този урок Adafruit. Също така ще трябва да свържете антена към FeatherWing 433MHz RFM69HCW. Моля, вижте наистина добре обяснения урок на Adafruit за тази стъпка. Избрах да използвам външна антена със странично монтиран SMA конектор вместо парче тел, за да получа по -добър обхват.

Стъпка 5: Свързване към Adafruit. IO и IFTTT

Свързване към Adafruit. IO и IFTTT
Свързване към Adafruit. IO и IFTTT
Свързване към Adafruit. IO и IFTTT
Свързване към Adafruit. IO и IFTTT

Adafruit IO:

Моля, следвайте инструкциите в този урок за Adafruit, за да се регистрирате за Adafruit. IO, ако нямате акаунт. Трябва също да прочетете какво е емисия и табло за управление.

С прости думи, таблото за управление е нещо като графичния потребителски интерфейс, докато емисиите са това, към което изпращате данни, за да можете да ги съхранявате в интернет. Ще трябва да създадете 1 табло за управление и 4 емисии. Нарекох моя, преди да разбера как да изписвам правилно кокошарника, така че моля да извините неправилния правопис. Ако не искате да преименувате имената на емисиите в кода на arduino, просто използвайте същото име, което аз направих.

Първо създайте четирите емисии:

1) "Chicken Coup" Това е за превключвателя Open/Closed

2) "Chicken Coup Timer" Това е за отворения таймер

3) "Chicken Coup Timer 2" Това е за таймера за затваряне

4) "Съобщение за грешка при пилешки преврат" Това е за съобщенията за грешки

След това създайте табло за управление, наречено Chicken Coup и добавете 4 блока с помощта на синия бутон +. Моля, вижте горната снимка за типовете блокове, които трябва да поставите, както и имената на блоковете. Не забравяйте да назовете състоянията на превключвателя точно „Отворено“и „Затворено“

IFTTT:

Частта IFTTT на този проект добавя възможността да натиснете бутон на телефона си и да изпратите текст за отваряне или затваряне на вратата на кокошарника. Той също така позволява на приложението IFTTT да ви изпраща push известия, ако нещо е публикувано в емисията на съобщението за грешка на Chicken Coup. Ако не искате тези възможности, можете да пропуснете този раздел.

Първо, създайте IFTTT акаунт, ако все още нямате такъв. Ако искате да използвате предварително създадените аплети, които създадох, просто отидете в моя акаунт и включете аплети, които искате. В противен случай ще трябва да създадете свой собствен и да се абонирате или публикувате в емисията adafruit, която сте създали по -горе.

Стъпка 6: Качване на код и редактиране на SSID и парола за WiFi

Ще трябва да преминете през тази страница от урока Adafruit, за да можете да качите код на вътрешния предавател.

Ще трябва да преминете през тази страница от урока Adafruit, за да можете да качите код на външния приемник.

Ще трябва да инсталирате библиотеката RFM69, библиотеката Adafruit_RGBLCDShield, библиотеката с часовници NTC, наречена simpleDSTadjust, и библиотеката с тикери. Можете да намерите урок за това как да направите това тук.

Отворете Arduino IDE и качете кода „Outdoor_Receiver.ino“на външния Arduino 32u4 през USB кабел.

След това отворете „Indoor_Transmitter.ino“, отворете раздела config.h и въведете вашето WiFi име (SSID) и парола вътре в кавичките. След това вземете потребителското си име Adafruit. IO и IO ключа, като следвате тази страница с уроци и го въведете в раздела config.h.

Ако сте променили имената на емисиите на Adafruit IO, ще трябва да редактирате кода в главния раздел Indoor_Transmitter. Редактирайте следното:

AdafruitIO_Feed *toggleSwitch = io.feed ("Пилешки преврат");

AdafruitIO_Feed *timer = io.feed ("Таймер за пилешки преврат");

AdafruitIO_Feed *timer2 = io.feed ("Chicken Coup Timer 2");

AdafruitIO_Feed *грешка = io.feed ("Съобщение за грешка при пилешки преврат");

Това трябва да е всичко, което трябва да направите! Ако искате да разберете допълнително как работят двете скици, коментирах кода. Моля, уведомете ме, ако имате въпроси. Късмет!

Препоръчано: