Оглавление:

IoT Outdoor Pet Door: 6 шагов (с изображениями)
IoT Outdoor Pet Door: 6 шагов (с изображениями)

Видео: IoT Outdoor Pet Door: 6 шагов (с изображениями)

Видео: IoT Outdoor Pet Door: 6 шагов (с изображениями)
Видео: 6 СУПЕР-ГАДЖЕТОВ ДЛЯ КОТОВ 2024, Июль
Anonim
IoT Наружная дверь для домашних животных
IoT Наружная дверь для домашних животных
IoT Наружная дверь для домашних животных
IoT Наружная дверь для домашних животных
IoT Наружная дверь для домашних животных
IoT Наружная дверь для домашних животных
IoT Наружная дверь для домашних животных
IoT Наружная дверь для домашних животных

Эта инструкция вдохновила меня на создание автоматической двери курятника. Я не только хотел, чтобы дверь курятника была с таймером, но я также хотел подключить дверь к Интернету, чтобы я мог управлять им с помощью телефона или компьютера. Эта дверь была построена для моего курятника, однако ее можно было легко применить к другим типам жилья для самых разных домашних животных. Вы также можете использовать различные типы двигателей на 12 В, помимо двигателя старой автомобильной антенны, который я использовал.

После настройки и подключения Adafruit IO и IFTTT к моему ESP8266 дверью моего курятника можно будет управлять онлайн. Дверь можно открывать или закрывать:

1) В точное время, когда я захожу на adafruit.io

2) Нажав кнопку на моем телефоне

3) Отправив текстовое сообщение на определенный номер

4) Нажав кнопку на adafruit.io

5) Нажатием физической кнопки

Помимо этих функций, дверь курятника может отправлять push-уведомления на мой телефон через приложение IFTTT о любых проблемах с дверью, таких как дверь, которая не открывается или закрывается.

Поскольку мой курятник находится примерно в 500 футах от моего WiFi-роутера, я использовал передатчик и приемник RFM69HCW 433 МГц в паре с ESP8266 для выполнения этого проекта. Есть черный внутренний блок передатчика с оборудованием, подключенным к Интернету, и серый наружный блок приемника, который управляет двигателем.

Это руководство проведет вас через процесс создания оборудования, необходимого для управления двигателем 12 В, который открывает или закрывает дверь моего курятника.

Я использовал следующие детали:

Adafruit 32u4 с 433 МГц RFM69HCW - 25 долларов

ИС расширителя портов ввода / вывода Adafruit MCP23017 I2C 16 - $ 2,95

Adafruit Feather HUZZAH с ESP8266 WiFi - 16,95 долларов

Adafruit Radio FeatherWing 433 МГц RFM69HCW - 10 долларов

Разъем Adafruit SMA для печатных плат толщиной 1,6 мм - 2,50 доллара США

Антенный разъем Adafruit uFL SMA - 0,75 доллара США.

Кнопка Adafruit RGB - 10,95 доллара США

Блок питания 12В - 7 $

Блок питания 5В USB - 7 долларов

Кабель Micro USB - 5 долларов

4-канальная релейная плата (можно использовать 2 канала) - 7 долларов США

Понижающий преобразователь постоянного тока в постоянный (использовался только один, но поставляется в комплекте из 5 штук) - 20 долларов США.

Геркон (датчик магнитного дверного выключателя) - 9 $

2 всенаправленных антенны 433 МГц - 6 долларов США

Переходник кабеля uFL на SMA (используется только один, но поставляется в комплекте из 2 шт.) - 5 долларов США.

Водонепроницаемая наружная проектная коробка из АБС-пластика - 11 долларов США.

Коробка проекта черного АБС - 10 $

ЖК-дисплей с синими символами 20x4 - 10 долларов

Автомобильный антенный двигатель 12 В - ~ 25 долларов на ebay

Провода и резисторы

Шаг 1. Внешний приемник

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

Наружный приемник состоит из Adafruit 32u4 с 433 МГц RFM69HCW, подключенного к нескольким реле, которые включают или выключают питание двигателя 12 В. Эти модули, а также преобразователь постоянного тока с 12 В на 5 В находятся внутри водонепроницаемой серой проектной коробки. Наконец, есть датчик дверного переключателя, подключенный к одному из контактов микроконтроллера 32u4 Arduino, который определяет, правильно ли открыта или закрыта дверь, когда это должно было быть.

Каждые 15 секунд комнатный передатчик будет отправлять «Открыть» или «Закрыть». В зависимости от полученной команды Arduino 32u4 включает или выключает реле. Для двигателя, который я выбрал, который представляет собой двигатель старой автомобильной антенны, мне пришлось включить или выключить два реле из-за того, как двигатель подключен. По сути, было реле для включения питания, а затем еще одно реле, которое контролировало, выдвигается или втягивается двигатель.

После получения сообщения об открытии или закрытии наружный приемник отвечает сообщением «sensorOpen» или «sensorClosed», чтобы указать состояние датчика дверного переключателя. В идеале команда «открыть» должна возвращать ответ «sensorOpen», однако, если дверь застревает или двигатель заклинивает, они не будут совпадать. Если они не совпадают, комнатный передатчик отобразит эту информацию, и на ваш телефон будет отправлено push-уведомление.

Шаг 2: Подключение оборудования внешнего приемника

Подключение оборудования внешнего приемника
Подключение оборудования внешнего приемника
Подключение оборудования внешнего приемника
Подключение оборудования внешнего приемника
Подключение оборудования внешнего приемника
Подключение оборудования внешнего приемника

Аппаратное обеспечение внешнего приемника не так уж сложно подключить. Я включил схему фритзинга ниже, чтобы можно было легко увидеть контакты, которые я использовал.

Как я уже говорил выше, для двигателя, который я использовал, требовалось два реле. Включил картинку распиновки. Как только вы подключите 12 В к красному проводу, двигатель втянется, если он вытянулся. Если вы подключите 12 В к красному проводу и зеленому проводу одновременно, двигатель выдвинется.

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

Вам нужно будет прикрепить антенну к Adafruit 32u4. Пожалуйста, ознакомьтесь с действительно хорошо объясненным руководством Adafruit на этом этапе. Я решил использовать внешнюю антенну вместо куска провода, чтобы увеличить дальность действия.

Шаг 3: Комнатный передатчик

Внутренний передатчик
Внутренний передатчик
Внутренний передатчик
Внутренний передатчик
Внутренний передатчик
Внутренний передатчик

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

На дисплее есть синхронизированные часы NTC, мощность RSSI в дБ (измеряет мощность радиосигналов), время, когда дверь курятника откроется, время, когда дверь курятника закроется, и текущее состояние двери. Кнопка красная, когда дверь закрыта, и зеленая, когда дверь открыта.

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

Шаг 4: Подключение оборудования внутреннего передатчика

Подключение оборудования внутреннего передатчика
Подключение оборудования внутреннего передатчика
Подключение оборудования внутреннего передатчика
Подключение оборудования внутреннего передатчика

После установки Adafruit Radio FeatherWing 433MHz RFM69HCW поверх Adafruit Feather HUZZAH с ESP8266 WiFi, остались только 2 контакта, которые не заняты, I2C контакты SDA и SCL. Вот почему я выбрал интегральную схему (ИС) MCP23017. Это действительно крутая ИС, которая подключает до 16 дополнительных входных / выходных контактов к любому микроконтроллеру через I2C. Кроме того, есть предварительно написанная библиотека под названием Adafruit-RGB-LCD-Shield, в которой используется эта ИС с символьным дисплеем, технически написанная для этого продукта Adafruit, однако она отлично работает для этого проекта.

Идея использовать MCP23017 с символьным дисплеем исходит из этого очень хорошо написанного руководства. Пожалуйста, проверьте это!

Я взял это руководство и вместо того, чтобы подключать к ИС несколько кнопок и дисплей RGB, я подключил к ИС только одну кнопку со светодиодом RGB внутри и монохромный дисплей. Это позволило мне определить PIN 1 IC (обычно используемый для синей подсветки дисплея RGB) в качестве подсветки для моего монохромного дисплея, PIN 28 (обычно используемый для зеленой подсветки дисплея RGB) как красный светодиод внутри кнопку и PIN 27 (обычно используемый для красной подсветки дисплея RGB) в качестве зеленого светодиода внутри кнопки. PIN 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" Это для переключателя "открыто / закрыто".

2) «Таймер куриного переворота» Это для таймера открытия.

3) "Chicken Coup Timer 2" Это для таймера закрытия.

4) «Сообщение об ошибке Chicken Coup» Это для сообщений об ошибках.

Затем создайте приборную панель под названием 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 и ключ ввода-вывода, следуя этой странице руководства, и введите его на вкладке config.h.

Если вы изменили имена каналов ввода-вывода Adafruit, вам нужно будет отредактировать код на главной вкладке Indoor_Transmitter. Отредактируйте следующее:

AdafruitIO_Feed * toggleSwitch = io.feed («Куриный переворот»);

AdafruitIO_Feed * timer = io.feed («Таймер куриного переворота»);

AdafruitIO_Feed * timer2 = io.feed («Таймер куриного переворота 2»);

AdafruitIO_Feed * error = io.feed («Сообщение об ошибке Chicken Coup»);

Это должно быть все, что вам нужно сделать! Если вы хотите понять, как работают эти два скетча, я прокомментировал код. Пожалуйста, дай мне знать, если возникнут какие-либо вопросы. Удачи!

Рекомендуемые: