Съдържание:

Postino: Пощальонът достави ли нещо?: 6 стъпки (със снимки)
Postino: Пощальонът достави ли нещо?: 6 стъпки (със снимки)

Видео: Postino: Пощальонът достави ли нещо?: 6 стъпки (със снимки)

Видео: Postino: Пощальонът достави ли нещо?: 6 стъпки (със снимки)
Видео: НАЙ-ОПАСНОТО Дете в ЦЯЛАТА Човешка ИСТОРИЯ 2024, Юли
Anonim
Postino: Пощальонът достави ли нещо?
Postino: Пощальонът достави ли нещо?

Това не е моя идея: един ден един приятел ме помоли за начин да проверя дистанционно дали някаква пощенска кутия е положена в пощенската му кутия. Пощенската кутия не е на пешеходната пътека до вратата му, тъй като той е мързеливо момче, той се чудеше дали технологична притурка трябва да може да го предупреди за всяко писмо в пощенската кутия. Разгледах пазара и не можах да намеря нито едно готово устройство, подходящо за неговите нужди, затова повдигнах предизвикателство към себе си: защо да не го проектирам и изградя?

Ограниченията бяха:

  • захранвани от батерии с разумен живот между смените на батерията;
  • WiFi комуникация;
  • проверявайте само веднъж на ден дали е имало поща или не;

Основният въпрос беше: какъв тип сензор може да отговаря на моите изисквания? Сензор за близост не можеше да работи, тъй като проверката трябваше да се прави само веднъж на ден, а не в реално време; нито сензор за тегло, тъй като това би добавило сложност и проблеми с чувствителността (лист хартия може да е много лек). Моят избор се приземи на сензор за време на полет (микро лазер). След като го калибрирате за размера на пощенската кутия, всичко, което се намира в средата, би задействало сензора! Като се има предвид трите ограничения, реших да използвам ESP8266 (стартиране на софтуера и свързване към WiFi), сензор за време на полет VL6180 за измерване и часовник DS3231 в реално време за задействане на всички схеми веднъж на ден: това беше как Постино се роди!

Стъпка 1: Части и компоненти

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

Стъпка 2: Сензорът

Сензорът
Сензорът

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

Модулът е предназначен за работа с ниска мощност. Използвах пробивната платка Pololu, която има регулатори на напрежението на борда, които й позволяват да работи в диапазон на входното напрежение от 2,7 V до 5,5 V.

Сензорът позволява 3 валидни коефициента на мащабиране, които задават максималния диапазон на измерване от 20 до 60 cm, с различна чувствителност. Чрез конфигуриране на коефициент на мащабиране на обхвата, потенциалният максимален обхват на сензора може да се увеличи с цената на по -ниска разделителна способност. Задаването на коефициента на мащабиране на 2 осигурява обхват до 40 см с разделителна способност 2 мм, докато коефициент на мащабиране 3 осигурява обхват до 60 см с разделителна способност 3 мм. Трябва да тествате 3 -те скали с размерите на вашата пощенска кутия. Тъй като моята беше 25 cm (H), използвах скален коефициент = 1.

Стъпка 3: Персонализиране на часовника в реално време

За RTC използвах пробивна платка DS3231, която включва EEPROM (безполезен за моята цел) и батерия с размер на монета. Тъй като реших да захранвам RTC чрез батерията на основното устройство (3v CR123), извадих монетната батерия; за да спестя енергия също премахнах EEPROM (като внимателно отрязах щифтовете му) и бордовия светодиод.

Монетната батерия не беше полезна за мен, защото не трябваше да запазвам дата/час/минута/секунда в реално време, но RTC трябваше да брои само 24 часа и след това да задейства алармата, за да включи устройството.

Стъпка 4: Други разни неща на борда

Други разни неща на борда
Други разни неща на борда
Други разни неща на борда
Други разни неща на борда

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

Освен това добавих джъмпер „test-1M“. Целта на този превключвател е - ако е активиран - да променя цикъла от веднъж на ден до веднъж в минута, за да изпълнява тестове за внедряване. За да промените интервала от един ден на една минута, първо трябва да затворите джъмпера „Test-C“за около 15 секунди, да заобиколите периода на активиране на алармата на часовника и да включите устройството. Когато тестовете са направени, отворете джъмперите и нулирайте устройството (цикъл на захранване).

Стъпка 5: Схеми

Схематично
Схематично

Стъпка 6: Софтуер и логика

По време на тестовете използвах (по практически причини) контролер NodeMCU, така че софтуерът се грижи за това, като зададе променливата CHIP на „NodeMCU“или „esp8266“.

Скицата реализира библиотеката WiFiManager, за да позволи на устройството да се свърже с валидна WiFi точка на достъп по време на първото стартиране. В такъв случай устройството преминава в режим на достъп, което ви позволява да се свържете с него и да изберете правилната WiFi мрежа, към която да се присъедините. След това мрежовата конфигурация се записва в EPROM за следващи цикли.

Променливата REST_MSG съдържа http съобщението за изпращане, когато сензорът намери обект в пощенската кутия. В моя случай той изпраща съобщение до домотичен REST сървър, но можете да го промените, както предпочитате: BOT съобщение на Telegram, събитие 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 комуникацията с RTC и сензора чрез своите пинове GPIO-0 и GPIO-2, инициализирани в библиотеката Wire.

Пълният код може да бъде изтеглен от тази връзка.

Състезание за помощни технологии
Състезание за помощни технологии
Състезание за помощни технологии
Състезание за помощни технологии

Вицешампион в конкурса за помощни технологии

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