Рисёрчи. Необходимо немного поиграться с датчиками и прошивками МК. Поскольку я фанат Питончика, да и еспишки что у меня в наличии (Спасибо Диман), могут в micropython. Буду делать на нём.
ESP + micropython
Оказалось всё очень даже просто, на еспишку грузим интерпретатор отсюда почти как загрузка обычной программы на МК только с помощью утилитки uPyCraft. Особо расписывать смысла нет. Много ресурсов в сети есть. Например тут всё доступно изложено как прошить микропитон. Выбираем микропитон бинарий здесь качаем и заливаем, с помощью uPyCraft.
У меня такой мк
Прошивка( ну если быть точнее то интерпретатор) подошла эта. Причём у меня МК завёлся "нерабочий" но оказалось просто при прошивке надо зажать кнопку flash, он переходит в спец режим и всё завелось. Но! При попытке поморгать встроеным led был косяк. Светодиод после блинка не гас. Оказалось что при Led.On() - это низкий сигнал на лапе, а led.Off() - высокий. Пока не разобрался почему.
Из того что не удобно при работе с micropython и uPyCraft - не всегда апдейтится код на памяти МК. Соответственно - приходится хард ресетить МК (RST кнопка). А вот что понравилось, так это интерпретатор микропитона на мк через сом порт. Например можно подключиться через привычный putty. Ну а в uPyCraft есть по умолчанию.
Архитектура (прототип)
Точнее микроархитектура, ну уж если микроконтроллер. Опрашиваем датчики, выводим на экран. Код на гите будет чуть позже. Код на симуляторе v01, v02. Основной цикл - опрашиваем датчики, сохраняем данные показываем. На экран. В конце цикла - скролим экран - чтоб красиво было!
Во второй версии подпилил архитектуру, чтоб гибче, добавил каналы уведомлений (экран, баззер), и скелет для определения алертов и базовый алерт при превышении значений температуры(DHT11).
Датчики
Датчик влажности и температуры DTH11
Вайринг сенсор температуры и влажности DHT22 (распиновка)
Термистр
У меня в наличие оказазался термистр от 3д принтера
Подключение:
Я не знаю что что за характеристики термистора - похоже что 100 kOm. Пишуть что надо такойже резистр ставить но можно и другого номинала, у меня 10kOm. Пробовал разные способы вычисления температуры. В итоге взял тот что попроще. Немного закостылил код. Поправил значение beta=3590, у меня показания отрицательные были, сдвинул на 50.4 и более менее стало точно. Можно ещё поковыряться в формуле, но пока это прототип - важнее всё вместе собрать. MVP жеж! В целом пооказания с термистора похожи на правду. Код работы с термистором брал отсюда.
Я тестировал 2 замера температру кмнаты и пальцев. Изменение температуры ~8 градусов цельсия, 25 и ~31. В формуле добавил сдвиг константу и завелось. Надобы ещё протестировать температуру льда и кипятка, чтоб откалибровать константы.
LSD дисплей
На алике. Код работы с экраном завёлся с Wokwi. Из минусов пакет микропитона питона для этого экрана ущербный очень урезаный. И умеет рисовать пикселы текст, (достаточно крупный шрифт). Одна строчка текста - полтора слова. Если для ардуинки adafult_gfx библиотека, она норм. Возможно есть для микропитона пока детальнее не ковырял. Пример работы с экраном тут.
Итог
Проект на Wokwi v01, v02 Там же можно и симуляцию включить.
Что дальше
- Ждём все датчики, подключаем тестим.
- Система алертов + подключение. противно писчащего, динамика.
- Оборачиваем всё в сервер + приложение на андройд или феб сервер. Пока не решил. Главное чтоб алерты были громкие и мониторинг был постоянный.
- Также опрос датчиков сделать по таймеру например. А остальное а основном цикле. Но это уже бантики.
Ссылки
- Основная статья
- Термистр туториал
- Термистр 2 туториал
Благодарности
Спасибо за внимание. Подписывайте на канал!