Найти в Дзене
Практика

Монитор помощник. Прототип

Оглавление

Рисёрчи. Необходимо немного поиграться с датчиками и прошивками МК. Поскольку я фанат Питончика, да и еспишки что у меня в наличии (Спасибо Диман), могут в micropython. Буду делать на нём.

ESP + micropython

Оказалось всё очень даже просто, на еспишку грузим интерпретатор отсюда почти как загрузка обычной программы на МК только с помощью утилитки uPyCraft. Особо расписывать смысла нет. Много ресурсов в сети есть. Например тут всё доступно изложено как прошить микропитон. Выбираем микропитон бинарий здесь качаем и заливаем, с помощью uPyCraft.

У меня такой мк

NodeMcu (esp8266)
NodeMcu (esp8266)

Прошивка( ну если быть точнее то интерпретатор) подошла эта. Причём у меня МК завёлся "нерабочий" но оказалось просто при прошивке надо зажать кнопку flash, он переходит в спец режим и всё завелось. Но! При попытке поморгать встроеным led был косяк. Светодиод после блинка не гас. Оказалось что при Led.On() - это низкий сигнал на лапе, а led.Off() - высокий. Пока не разобрался почему.

Из того что не удобно при работе с micropython и uPyCraft - не всегда апдейтится код на памяти МК. Соответственно - приходится хард ресетить МК (RST кнопка). А вот что понравилось, так это интерпретатор микропитона на мк через сом порт. Например можно подключиться через привычный putty. Ну а в uPyCraft есть по умолчанию.

Архитектура (прототип)

Точнее микроархитектура, ну уж если микроконтроллер. Опрашиваем датчики, выводим на экран. Код на гите будет чуть позже. Код на симуляторе v01, v02. Основной цикл - опрашиваем датчики, сохраняем данные показываем. На экран. В конце цикла - скролим экран - чтоб красиво было!

Во второй версии подпилил архитектуру, чтоб гибче, добавил каналы уведомлений (экран, баззер), и скелет для определения алертов и базовый алерт при превышении значений температуры(DHT11).

Датчики

Датчик влажности и температуры DTH11

Датчик влажности и температуры  DTH11
Датчик влажности и температуры DTH11

Вайринг сенсор температуры и влажности DHT22 (распиновка)

-3

Термистр

У меня в наличие оказазался термистр от 3д принтера

Термистор для 3в принтера 100kOm
Термистор для 3в принтера 100kOm

Подключение:

Источник https://www.electronicwings.com/nodemcu/thermistor-interfacing-with-nodemcu
Источник https://www.electronicwings.com/nodemcu/thermistor-interfacing-with-nodemcu

Я не знаю что что за характеристики термистора - похоже что 100 kOm. Пишуть что надо такойже резистр ставить но можно и другого номинала, у меня 10kOm. Пробовал разные способы вычисления температуры. В итоге взял тот что попроще. Немного закостылил код. Поправил значение beta=3590, у меня показания отрицательные были, сдвинул на 50.4 и более менее стало точно. Можно ещё поковыряться в формуле, но пока это прототип - важнее всё вместе собрать. MVP жеж! В целом пооказания с термистора похожи на правду. Код работы с термистором брал отсюда.

Я тестировал 2 замера температру кмнаты и пальцев. Изменение температуры ~8 градусов цельсия, 25 и ~31. В формуле добавил сдвиг константу и завелось. Надобы ещё протестировать температуру льда и кипятка, чтоб откалибровать константы.

-6

-7

LSD дисплей

Последовательный белый oled-модуль IIC 0,96 дюйма, 128X64 I2C SSD1306 12864 стандарта,
Последовательный белый oled-модуль IIC 0,96 дюйма, 128X64 I2C SSD1306 12864 стандарта,

На алике. Код работы с экраном завёлся с Wokwi. Из минусов пакет микропитона питона для этого экрана ущербный очень урезаный. И умеет рисовать пикселы текст, (достаточно крупный шрифт). Одна строчка текста - полтора слова. Если для ардуинки adafult_gfx библиотека, она норм. Возможно есть для микропитона пока детальнее не ковырял. Пример работы с экраном тут.

Итог

Проект на Wokwi v01, v02 Там же можно и симуляцию включить.

Что дальше

  1. Ждём все датчики, подключаем тестим.
  2. Система алертов + подключение. противно писчащего, динамика.
  3. Оборачиваем всё в сервер + приложение на андройд или феб сервер. Пока не решил. Главное чтоб алерты были громкие и мониторинг был постоянный.
  4. Также опрос датчиков сделать по таймеру например. А остальное а основном цикле. Но это уже бантики.

Ссылки

  1. Основная статья
  2. Термистр туториал
  3. Термистр 2 туториал

Благодарности

Спасибо за внимание. Подписывайте на канал!