IOT / Esp32 / FreeRTOS / Arduino / stm32
799 subscribers
747 photos
133 videos
29 files
199 links
Копилка материалов по работе с микроконтроллером esp32 / stm32
Download Telegram
2) У меня не хватает некоторых решений для создания конечного потребительского устройства которое можно получить по почте, и начать пользоваться настроив с телефона. В первую очередь это каптив портал для настройки вайфайя. Ну и есть ещё ряд полезных фич которые нужны. Я их описал для себя в ТЗ, постепенно про все задумки расскажу.

Решение понятное. Сделать фриртос-компонент, который будет давать мне всю необходимую обвязку для проекта.

И я даже начал это делать. И как часто получается - как только ты начинаешь думать в какую-то сторону - сразу находится проект в котором уже есть готовая реализация) осталось только скомпоновать всё в кучу.

За проект традиционно спасибо Руслану (UncleRus) который пишет максимально прекрасный в моём представлении код https://github.com/UncleRus/EvLamp
👍2
Media is too big
VIEW IN TELEGRAM
Вместо тысячи слов ТЗ - рафаэлло видос.

У компонентов классная система конфигурирования которая встраивает необходимые настройки в общие настройки SDK от експрессив.

Там даже можно делать зависимости между отмеченными галочками и выпадающие списки.

На неделе за вечер набросал конфигурацию - думаю она демонстрирует задумку сильно лучше чем текстовое описание.
Конфигурировалка пинов через гуй сильно упрощает понимание и вспоминание а где же у меня в этом девайсе i2c прицеплено и где сидит енкодер. А есть ли на этом пине АЦП? а стоит ли мне эту кнопку посадить на этот пин или он мне ещё пригодится.

Открыл всё в общем списке и увидел, мне нравится!

Теперь буду меньше пользоваться этой картинкой.
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Первое что я уже сделал - это использование пинов как кнопочек с помощью библиотеки:
https://github.com/UncleRus/esp-idf-lib/tree/master/components/button

- обычные бытовые кнопочки
- кнопочка (RESET) с событиями

В качестве кнопочки ресета использую кнопку енкодера) и сделаны пара событий:
— нажатие 3 секунды (планирую включать веб)
— нажатие 10 секунд (сбрасываем всю конфигурацию)

Инициализацию работы с NVC тоже уже сделал.

Далее - включение девайса в режиме captive portal
🔥2👍1
Доковырялся с отправкой сообщений в телегу.
И вроде даже память не утекает 😎

Полезная фича для пользовательских девайсов чтобы не заморачиваться с mqtt.

Собрал на основе примера
https://github.com/espressif/esp-idf/tree/master/examples/protocols/esp_http_client
🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Написал большинство инициализации на основе Kconfig с описанием того что происходит в консоль.
- NVS(key-value store) и settings
- DIO
- ADC
- i2c
- wifi
- mqtt (только подключение)

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

На видосе видно как LED сигнализирует о статусе подключения:
- сначала выкл
- горим если старт wifi
- 3 раза моргаем и гаснем если подключились к вайфай
- горим если старт mqtt
- гаснем если подключились.

Хочу ещё на каждую входящую команду моргать.
🔥3🤩1
Не понимаю как писать сюда что-либо про разработку.
Мне кажется это достаточно специфичная информация и она мало кому будет интересна.

Тем более большинство действий которые я сейчас делаю скорее про рефакторинг и перекладывание кода из одного места в другое. Скукотищааа)

Предыдущую "обвязку" вокруг MQTT делал когда моё понимание C/C++ и архитектуры фриртоса было совсем никаким.
Сейчас переписываю тот-же самое только с чуть-большим пониманием.

Вроде я допёр в каком случае нужно метить переменные внутри функций как static =) и это уже достижение которое позволяет избежать кучи внезапных багов.
🤔3👍2
ESP-ха уже подписывается на нужные топики.
Отправляет регулярно информацию о доступности: availability и ip
Переподключается с задержкой к WiFi и Mqtt если отрубилось.
Это делается с помощью фриртос-таймеров.

Кроме этого при первом подключении отправляет информацию о количестве рестартов.
Сейчас у меня 301 рестарт - столько раз я перепрошил процессор с момента реализации этой фишки.
Информация о количестве рестартов храниться в энергонезависимой памяти (NVS) там-же где хранится конфигурация.
Очень прикольная фишка)
👍1🔥1
Хозяйке на заметку.

Вывод из ящика нужно делать сбоку, а не из крышки, тогда это не будет мешать обслуживанию ёмкости.
👍1🤣1
Датчик EC можно втыкать в любую дырку тройника
This media is not supported in your browser
VIEW IN TELEGRAM
Гидропонная установка готова :)
Пока помотается в холостую.

С помощью такой релюхи думаю для начала запускать периодически.

Сейчас не нравится шум воды которая вливается. Блок питания я выкрутил на минималку (10v) но всё равно слишком мощно.
В закрытом виде
Вундервафля
👍1
Что стало с датчиком температуры EC за сезон
28byj-48 🫥
Примеряю к перисталическому насосу формат поменьше
🔥3
Как-то так
🔥4
Хозяйке на заметку: как определить щель зазор между роликами и прижималкой? нужно сжать трубку штангенциркулем (подсмотрел в каком-то ютуб-канале)

Для моей силиконовой трубки неизвестного размера зазор должен быть 2мм.
Диаметр крутящегося диска у меня 32мм, значит прижимающая дуга будет с диаметром 36мм.

Заказал несколько разных силиконовых трубок на алике ещё в декабре. Все посылки приехали а эта ещё в пути. Надеюсь скоро приедет и прижималку чуть-что можно будет переделать под более подходящий размер.

У меня ещё есть целая россыпь трубок от капельницы, для них зазор должен быть 0.9мм. Их для такого насоса лучше не использовать

https://aliexpress.ru/item/4000556484740.html
🤩1