Главная » Arduino
Призовой фонд
на декабрь 2018 г.
1. 1500 руб
Сайт Паяльник
2. Осциллограф DSO138
Сайт Паяльник
3. 200 руб.
От пользователей

Климатический монитор Смотрителя Убежища в стилe Fallout на ESP8266

Смотритель, однажды твоё Убежище откроет бронированную дверь, и жители выйдут наружу, чтобы добывать припасы и заселять истерзанную радиацией пустошь. А знаешь ли ты, что происходит снаружи, выдавать ли поисковым партиям силовую броню и гаусс-пушки, или в ближайшие 3 дня будет достаточно кожаной брони и ржавых дробовиков? Сколько им выдать антирадина с изрядно опустевшего склада? Какая будет погода? Какой уровень радиации? Какая сейчас температура, влажность и давление? Нет ли утечки реактора внутри убежища? Не страдают ли твои жители от избыточной температуры или влажности?
На эти, и многие другие вопросы тебе поможет ответить Климатический Монитор от компании Vault-Tec!

Подай заявку сейчас, и получи шанс укомплектовать им своё Убежище!
(Шутка, конечно, навеянная серией игр Fallout, но, подумалось, почему бы и не сделать такую полезную игрушку/прибор).

Предупреждение: Для нормальной работы конструкции необходима wi-fi сеть с доступом в Интернет.(хотя, думаю, по нынешним временам это не проблема ни для кого)

Функционал:

  • Точное время/дата (периодическая синхронизация c NTP серверами)
  • Погода на сегодня +3 дня вперед
  • Отображение данных внешнего датчика находящегося на улице:
  1.    Радиационный фон на улице
  2.    Атмосферное давление (в скетче можно выбрать, что больше нравится мм.рт.ст или гектопаскали)
  3.    Влажность
  4.    Температура
  • Внешний датчик сделан на "младшей" модели esp8266 esp-07, связывается и передает данные настольному модулю посредством своей wi-fi сети, UDP пакетами данных в формате json, требует только питание.
  • Отображение данных с датчиков в помещении:
  1.    Радиационный фон внутри помещения
  2.    Влажность
  3.    Температура
  • Настройка основных параметров (сеть, к которой подключаться, пароль, часовой пояс, местоположение для прогноза погоды вашего региона) не требует перепрошивки.

   
Главный экран выглядит так:

2 прогресс-бара визуально показывают время до следующего запроса погоды или времени из интернета.

Таймер уличного модуля считает время от 0 до минуты, полоса удлиняясь становится при этом из зеленой - желтой, затем красной, при поступлении данных счётчик сбрасывается в 0. Таким образом можно судить об актуальности поступивших с внешнего модуля данных и его работоспособности.

Остальное, думаю, понятно из подписей на иллюстрации.

Схемы соответственно будет две. Разберём по-порядку.

Настольный модуль с экраном.

Использован esp8266 ESP-12-E nodemcu lua v3, в модуле 4М флеша. Температуру и влажность получаем с DHT-22. Радиацию измеряем датчиком СБМ-20, в принципе можно подключить любой датчик с рабочим напряжением 400в и поменять в скетче время счёта на соответствующее вашему датчику, схема классическая - блокинг-генератор, умножитель, и катодное "считывание" импульсов на 1 транзисторе, проще некуда.

Схема:

Стадии сборки:

Обычный корпус из пластика тут явно испортит весь стиль, поэтому принято решение делать свой, в стиле "простой тесла-панк", не используя "презренного пластика", только труЪ латунь и дерево. Если будут вопросы как именно сделано что-то конкретное - постараюсь ответить, вкратце всё просто: фрезеровка, шлифовка, полировка, травление рисунков и надписей, немного патины в парах аммиака.

Готовый прибор:

Выносной модуль

Поскольку здесь уже не нужно ни много ног, ни много места под красивости, применен esp8266 ESP-07 с 1М флеша.
Влажность получаем с DHT-22. Температуру и давление с BMP-180. Радиацию измеряем датчиком СБМ-20М(применен из соображений компактности), датчик также может быть любой. Все эти данные передаются на настольный модуль раз в 5 секунд.

На схеме/плате 3 светодиода:

  •  Питание - просто показывает, что модуль включен(у меня он зеленый).
  •  Статус - не горит, если все нормально, горит, если по любым причинам модуль не может связаться и передать данные (у меня он красный).
  •  "RAD", импульс датчика радиации - вспыхивает, когда счётчиком Гейгера регистрируется частица(у меня он синий).

Схема:

Плата в несколько слоёв покрыта лаком Plastik для защиты от окисления и влажности:

Корпус из разветкоробки, без украшательств, чтобы не привлекать ненужного внимания соседей/прохожих. Ну висит серая коробочка, и пусть висит. ;)

Трансформаторы блокинг-генератора в обоих случаях использовал от радиометров "Мастер-1" просто потому что были в наличии, однако и намотать их совсем не сложно.
Трансформатор делается на ферритовой гантельке (их можно как купить, так и выпаять из энергосберегаек и компьютерных БП), мотается быстро и просто, желательно покрывать каждые 50-100 витков лаком во избежание межвитковых пробоев. Обязательно соблюдать направление намотки и правильно подключать начала/концы обмоток, иначе блокинг не запустится.

Программная часть:

Код написан в среде Arduino IDE с использованием библиотеки Arduino core for ESP8266 WiFi chip - https://github.com/esp8266/Arduino , для работы с датчиками использованы библиотеки Adafruit, для дисплея этот порт библиотеки на esp8266 - https://github.com/gnulabis/UTFT-ESP8266 , кроме того для сборки понадобится Arduino Json Parser, Time, OneWire. Рекомендую использовать Arduino 1.6.8, не старше, поскольку могут быть неявные ошибки при сборке, Arduino core for ESP8266 WiFi писалась именно под 1.6.8.

В начале каждого скетча есть несколько #define которыми вы можете настроить ряд параметров, там всё откомментрировано, и, думаю, будет понятно.

Настольный модуль работает одновременно и как клиент домашней сети, через которую от берет из интернета время и прогноз погоды, и как точка доступа для внешнего датчика.
Модуль внешнего датчика работает только как клиент, он постоянно держит связь с настольным, и в случае пропадания сети перегружается и пробует снова и снова. Каждые 5 секунд передает UDP пакетом данные со своих датчиков.

Прошивка модуля делается прямо из Ардуино. esp8266 ESP-12-E nodemcu v3 уже имеет все необходимое на борту, просто соединить кабелем с компьютером, и можно шить. Для прошивки же esp8266 ESP-07 я использовал usb-uart адаптер ch340, вот такой:

на плате под него предусмотрен разъем. Для прошивки надо выключить модуль, замкнуть джампер JP1 и прошить, для дальнейшей работы программы прошивки джампер нужно разомкнуть.
Затрудняюсь решить, что ещё нужно написать о коде, безусловно там есть нюансы, но какие не очевидны, пока непонятно, просто если будут вопросы - постараюсь ответить.

Теперь о прогнозе погоды. Он берётся с сервера wunderground.com. Удобный сервис, бесплатно для некоммерческого использования, во многих городах есть много "погодных станций" на основе которых делается прогноз, а значит можно выбрать поближе к дому и прогноз будет точнее. Кроме того сервис умеет отдавать данные в удобном для автоматизированного парсинга формате json.
Подключиться там очень просто.
Нужно зарегистрироваться и получить API Key здесь https://www.wunderground.com. Регистрируемся или входим, если уже зарегистрированы, идем в раздел "API" и просим ключ. Нам понадобится ключ "Developer", он бесплатный https://www.wunderground.com/weather/api/d/pricing.html.
Найти свой город и подходящую вам погодную станцию (просто ищем их сервисом свой город, выбираем наиболее подходящую нам станцию, и смотрим нужную нам кодировку локации, например Москва):

После чего заходим в настройки настольного модуля (удерживаем кнопку setup при включении, он напишет, что запустился в режиме настройки:

Далее цепляемся к появившейся точке доступа "Overseer_101", заходим браузером на 192.168.10.1) вводим там ключ, локацию, сеть, к которой подключаться для доступа к интернету, часовой пояс:

Перед названием выбранной "именной" погодной станции в вашем регионе обязательно писать pws: , например IBALASHI24 вводить в настройках как pws:IBALASHI24.

Жмём "отправить запрос", и перегружаем настольный модуль.

Важное замечание: все модули esp8266 ОЧЕНЬ чувствительны к питанию, должны быть стабильные 3.3 вольта, желательно не менее 1А, без "проседаний" напряжения и пульсаций, в противном случае возможны зависания и самопроизвольные перезагрузки. Кстати, это относится и к такой, казалось бы, мелочи как кабель от usb адаптера до устройства - многие китайские производители экономят на проводах и качестве в дешевых кабелях, и напряжение на другом конце может проседать.

Напоследок немного личных впечатлений с точки зрения того, кто привык работать с "голыми" МК (не-ардуинами), возможно будет интересно тому, кто надумает что-то делать на этих модулях. Во-первых очень дешево, 4 мегабайта флеша при 80МГц за 2-3$ или 1 мегабайт за $1 считаю вполне приемлемым на фоне любых других МК. Есть библиотека, позволяющая писать код не ограничиваясь рамками узкоспециализированых фреймворков. Есть аппаратные i2c, SPI, внутренние таймеры и поддержка внешних прерываний. Это были плюсы, а теперь минусы: про питание уже написал - любой всплеск или проседание напряжения и оно зависнет или перегрузится 50/50. Следующий минус - порты, смотришь на их количество, и кажется - на всё хватит и еще останется, однако это не так, часть из них уже зарезервирована для подтяжки к питанию или земле и под загрузку прошивки, и подтянуть их надо обязательно, иначе модуль не будет корректно работать, некоторые уже подключены к led самого модуля и тоже не могут быть использованы. Это решение разработчиков Espressif вызывает как минимум недоумение. К примеру, в этом проекте, в настольном модуле использованы все порты, которые вообще в принципе можно использовать, не нарушая работу платы, даже кнопку пришлось подключать уже на adc. Почти аналогичная ситуация и с esp-07.

Ну и, раз уж стиль конструкции обязывает, ещё одно важное напоминание: "Не кормите Яо-Гаев!" :)

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
Настольный модуль
U1 Wi-Fi MCU ModuleESP8266 ESP-12-E nodemcu v31 Поиск в Utsource В блокнот
Q1, Q2 Биполярный транзистор
BC847
2 Поиск в Utsource В блокнот
D1, D2 Светодиод3мм цвет по вкусу2 Поиск в Utsource В блокнот
D3, D4 Выпрямительный диод
US1M
2 Поиск в Utsource В блокнот
R1 Резистор
1 кОм
1 Поиск в Utsource В блокнот
R3, R4, R9 Резистор
10 кОм
3 Поиск в Utsource В блокнот
R2 Резистор100R1 Поиск в Utsource В блокнот
R10 Резистор
100 кОм
1 Поиск в Utsource В блокнот
R5, R6, R7 Резистор1M3 Поиск в Utsource В блокнот
R8 Резистор2M1 Поиск в Utsource В блокнот
C1, C2 Конденсатор4.7-100nF 600v2 Поиск в Utsource В блокнот
C3 Конденсатор100-150 нФ1 Поиск в Utsource В блокнот
C4 Конденсатор4.7 нФ1 Поиск в Utsource В блокнот
LCD1 LCD-дисплейILI93411 Без тачскрина, с SPIПоиск в Utsource В блокнот
U2 Датчик влажности и температурыDHT-221 Поиск в Utsource В блокнот
Газоразрядный счетчик ГейгераСБМ-201 СБМ-20М, или любой на 400вПоиск в Utsource В блокнот
Уличный датчик
U1 Wi-Fi MCU ModuleESP8266 ESP-071 Поиск в Utsource В блокнот
Q1, Q2 Биполярный транзистор
BC847
2 Поиск в Utsource В блокнот
D1, D2, D3 Светодиод3мм цвет по вкусу3 Поиск в Utsource В блокнот
D4, D5 Выпрямительный диод
US1M
2 Поиск в Utsource В блокнот
R1, R8, R6 Резистор
1 кОм
3 Поиск в Utsource В блокнот
R2, R3, R4, R5, R9 Резистор
10 кОм
5 Поиск в Utsource В блокнот
R7 Резистор100R1 Поиск в Utsource В блокнот
R14 Резистор
100 кОм
1 Поиск в Utsource В блокнот
R10, R11, R12 Резистор1M3 Поиск в Utsource В блокнот
R13 Резистор2M1 Поиск в Utsource В блокнот
C1, C2 Конденсатор4.7-100nF 600v2 Поиск в Utsource В блокнот
C3 Конденсатор100-150nF1 Поиск в Utsource В блокнот
C4 Конденсатор4.7 нФ1 Поиск в Utsource В блокнот
C5 Конденсатор100 нФ1 Поиск в Utsource В блокнот
C6, C7 Электролитический конденсатор100uF2 Поиск в Utsource В блокнот
U3 Датчик влажности и температурыDHT-221 Поиск в Utsource В блокнот
U2 Датчик атм.давления и температурыBMP-1801 Поиск в Utsource В блокнот
U4 LDOLM1117-3.31 Поиск в Utsource В блокнот
JP1 Перемычка1 Поиск в Utsource В блокнот
Газоразрядный счетчик ГейгераСБМ-201 СБМ-20М, или любой на 400вПоиск в Utsource В блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: Изменена: 13.11.2017 0 11
Я собрал 3 Участие в конкурсе 10
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 5 Проголосовало: 10 чел.

Комментарии (133) | Я собрал (0) | Подписаться

0
dina #
У меня в Башкортостане Уфа не осталось ни одной точки. Со старой которой нет на карте, сайт даёт один запрос в сутки, то есть прогноз отображается на 30 мин до следующего запроса. Беру прогноз из Челябинска за 500км пока работает. Жаль что проект так закончился.
Ответить
0
velant77 #
Прогноз издох, может и показывает раз в сутки, но я этого не вижу. Сайт я так понял прекращает поддержку API https://apicommunity.wunderground.com/weatherapi/topics/end-of-service-for-the-weather-underground-api
Купить api я так понял тоже нельзя. Кто нибудь возьмется переписать на другой сервер погоды? А то как то жаль потраченных средств и времени, чтоб смотреть на вопросики вместо прогноза.
Ответить
0
yucan #
Не пробовали менять сервер погоды в скетче? Например на openweather.org
Ответить
0
Sasha #
Подвернулись датчики СБМ, думаю собрать! Что сейчас с прогнозом погоды (читал в комментах что с ним проблемы) и работоспособностью прибора в целом? Сам не программист ни капли
Ответить
0
Андрей #
Свердловская обл. Полёт нормальный. Точек поубавилось, но штук восемь осталось
Год отработал стабильно
Ответить
«12
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется напряжение?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Модуль измерения тока на ACS712 (30А)
Модуль измерения тока на ACS712 (30А)
Радиореле 220В Солнечная панель 10Вт 12В поликристаллическая
вверх