Оглавление:

Постино: Почтальон что-нибудь доставил?: 6 шагов (с картинками)
Постино: Почтальон что-нибудь доставил?: 6 шагов (с картинками)

Видео: Постино: Почтальон что-нибудь доставил?: 6 шагов (с картинками)

Видео: Постино: Почтальон что-нибудь доставил?: 6 шагов (с картинками)
Видео: НАРУТО ВНУК МАДАРЫ И ХАШИРАМЫ! Все части. Живая озвучка. 2024, Ноябрь
Anonim
Постино: Почтальон что-нибудь доставил?
Постино: Почтальон что-нибудь доставил?

Это не моя идея: однажды друг спросил меня, как удаленно проверить, не попадает ли в его почтовый ящик какое-либо сообщение. Почтовый ящик находится не на пути к его двери, поэтому, поскольку он ленивый мальчик, он задавался вопросом, сможет ли технологический гаджет предупреждать его о любом письме в почтовый ящик. Я посмотрел на рынок и не смог найти ни одного готового устройства, подходящего для его нужд, поэтому я поставил перед собой задачу: почему бы не спроектировать и не построить его?

Ограничения были:

  • с батарейным питанием с разумным сроком службы между заменами батарей;
  • Wi-Fi связь;
  • проверяйте хотя бы раз в день, была ли почта;

Главный вопрос: какой датчик подходит под мои требования? Датчик приближения не мог работать, так как проверка должна была выполняться только раз в день, а не в режиме реального времени; датчик веса тоже, так как это добавило бы проблем сложности и чувствительности (лист бумаги мог бы быть очень легким). Мой выбор остановился на датчике времени полета (микролазер). После калибровки под размер почтового ящика все, что лежит посередине, сработало бы датчик! Учитывая 3 ограничения, я решил использовать ESP8266 (запуск программного обеспечения и подключение к Wi-Fi), датчик времени пролета VL6180 для измерения и часы реального времени DS3231, чтобы запускать все схемы один раз в день: вот как Родился Постино!

Шаг 1: Детали и компоненты

  • ESP8266-01 (или ESP-12E NodeMCU)
  • VL6108 Датчик времени пролета
  • DS3231 Часы реального времени
  • IRLZ44 N-канальный MosFET
  • BC547 Транзистор
  • Резисторы
  • CR123 Батарея

Шаг 2: датчик

Датчик
Датчик

Сердце системы - датчик VL6180. Это новаторская технология, позволяющая измерять абсолютное расстояние независимо от отражательной способности цели. Вместо оценки расстояния путем измерения количества света, отраженного от объекта (на которое в значительной степени влияют цвет и поверхность), VL6180X точно измеряет время, необходимое свету, чтобы добраться до ближайшего объекта и отразиться обратно на датчик (Время -флайт). Комбинируя ИК-излучатель, датчик дальности и датчик внешней освещенности в готовом к использованию оплавляемом корпусе «три в одном», VL6180X легко интегрируется и избавляет производителя конечного продукта от долгой и дорогостоящей оптимизации оптической и механической конструкции.

Модуль разработан для работы с низким энергопотреблением. Я использовал коммутационную плату Pololu, на которой есть регуляторы напряжения, которые позволяют ей работать в диапазоне входного напряжения от 2,7 В до 5,5 В.

Датчик допускает 3 действительных масштабных коэффициента, которые устанавливают максимальный диапазон измерения от 20 до 60 см с различной чувствительностью. Путем настройки коэффициента масштабирования диапазона потенциальный максимальный диапазон датчика может быть увеличен за счет более низкого разрешения. Установка коэффициента масштабирования на 2 обеспечивает диапазон до 40 см с разрешением 2 мм, а коэффициент масштабирования 3 обеспечивает диапазон до 60 см с разрешением 3 мм. Вы должны протестировать 3 шкалы с размерами вашего почтового ящика. Поскольку мой был 25 см (H), я использовал масштабный коэффициент = 1.

Шаг 3. Настройка часов реального времени

Для RTC я использовал коммутационную плату DS3231, которая включает в себя EEPROM (бесполезный для моих целей) и батарею размером с монету. Поскольку я решил запитать RTC от основной батареи устройства (CR123 3 В), я удалил батарейку типа «таблетка»; Для экономии энергии я также удалил EEPROM (осторожно отрезав контакты) и бортовой светодиод.

Монетная батарейка мне не пригодилась, потому что мне не нужно было хранить дату / час / минуту / секунду в реальном времени, но RTC нужно было только отсчитывать 24 часа, а затем запускать будильник для включения устройства.

Шаг 4: Другое на борту

Другое на борту
Другое на борту
Другое на борту
Другое на борту

Включение устройства осуществляется транзистором и схемой MosFET, запускаемой сигнализацией RTC. После сброса сигнала тревоги схема отключает питание устройства еще на 24 часа. При достижении аварийного сигнала DS3231 переключает вывод с высокого на низкий: в нормальных условиях транзистор насыщается и замыкается на заземление затвора MosFET. Как только сигнал тревоги заземляет базу транзистора, он открывается и позволяет MosFET замкнуть цепь и подать питание на остальные компоненты.

Дополнительно добавил перемычку «тест-1М». Назначение этого переключателя - если он активирован - изменить цикл с одного раза в день на один раз в минуту, чтобы запускать тесты развертывания. Чтобы изменить интервал с одного дня на одну минуту, сначала необходимо замкнуть перемычку «Test-C» примерно на 15 секунд, чтобы обойти период срабатывания будильника и включить прибор. Когда тесты будут выполнены, разомкните перемычки и перезагрузите устройство (выключите и снова включите питание).

Шаг 5: Схема

Схема
Схема

Шаг 6: Программное обеспечение и логика

Во время тестов я использовал (из практических соображений) контроллер NodeMCU, поэтому программное обеспечение позаботится об этом, установив для параметра CHIP значение «NodeMCU» или «esp8266».

В скетче реализована библиотека WiFiManager, позволяющая устройству подключаться к действующей точке доступа WiFi во время самого первого запуска. В таком случае устройство переходит в режим точки доступа, что позволяет вам подключиться к нему и выбрать правильную сеть Wi-Fi для подключения. После этого конфигурация сети сохраняется в EPROM для последующих циклов.

Переменная REST_MSG содержит http-сообщение для отправки, когда датчик обнаруживает объект в почтовом ящике. В моем случае он отправляет сообщение на домотический сервер REST, но вы можете изменить его по своему усмотрению: сообщение Telegram BOT, событие IFTTT WebHook и т. Д.

Остальная часть скетча находится в функции setup (), так как цикл никогда не достигается. После настройки, необходимой для нескольких библиотек, программное обеспечение устанавливает время часов на 00:00:01 и будильник на один раз в день (или один раз в минуту, если перемычка «test-1M» активирована). Затем он производит измерение, отправляет уведомление (если в почтовом ящике обнаружен какой-либо объект) и сбрасывает пин-код сигнала тревоги, выключая устройство. В конце цикла включается только RTC, считая за 24 часа. Перемычка Test-1M подключается к контакту RX ESP8266, используемому как GPIO-3, с помощью настройки: setMode (PIN, FUNCTION_3). Из-за этого вы не можете использовать последовательный монитор во время работы ESP8266: строка «#define DEBUG» (которая разрешает все серийные отпечатки в скетче) используется только тогда, когда NodeMCU установлен вместо ESP8266.

ESP8266 обрабатывает связь I2C с часами реального времени и датчиком через свои контакты GPIO-0 и GPIO-2, инициализированные в библиотеке Wire.

Полный код можно скачать по этой ссылке.

Конкурс вспомогательных технологий
Конкурс вспомогательных технологий
Конкурс вспомогательных технологий
Конкурс вспомогательных технологий

Финалист конкурса Assistive Tech Contest

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