Доработка скетча Ардуино
200 UAHОборудование: Node mcu, BME20, датчик CO2 MH Z9B, пару кнопок, RGB светодиод, mp3 плеер DFPLAYER, динамик 3 Ом, китайский счетчик гейгера.
Node mcu получает данные со всех датчиков и отправляет на mqtt сервер (интервал 1 мин). Включается световая или звуковая сигнализация при привышении радиации или уровня CO2.
Данные уже приходят и отправляются на сервер.
Проблемы, которые нужно исправить:
- данные отправляются с разным интервалом. Данные с счетчика Гейгера отправляются в 2 раза реже чем все остальные.
- При срабатывании сигнализации (привышение определенной дозы радиации) блокируется основной поток и данные не отправляются на mqtt сервер.
- Исправить мелкие недочеты в коде, если такие имеются. Добиться стабильной работы программы.
Пишите свои предложения
-
454 6 0 Готов проанализировать Ваш код и исправить ошибки. Жду исходник и Ваших предложений по цене и срокам выполнения.
-
Какой у вас счетчик, с какой чувствительностью? Если чувствительность низкая (по видимому - Ваш случай), то для того что бы получить приемлемую точность при измерении им мощности дозы как раз и приходится увеличивать время счета ... Так что по этому пункту проблема скорее всего не в скетче ... Наоборот, тот кто его вам писал, видя такое дело специально увеличил вдвое время счета относительно других счетчиков...
Так что если нужно считать мощность дозы быстро и точно (взаимоисключающие вещи) - первое попавшееся "изделие" из поднебесной вряд ли ваш выбор ... Ну или снижать темп опроса остальных датчиков, подстраиваясь под ваш гейгер.
Второй вопрос - блокирующий mqtt вообще говоря решается довольно просто. Надо смотреть, что там у Вас ...
Можете сбросить мне ваш скетч в личку? Я бы мог посмотреть... -
Здравствуйте,
Вы мне писали по поводу проекта.
Вот решил написать вам после праздников.
Я делаю проект метеостанции на Node Mcu. Станция состоит из Node mcu модуля, BME20, счетчик CO2 - MH Z19B, счетчика Гейгера с трубкой СБМ-20, DFPlayer, динамик, RGB светодиод, кнопка.
Суть работы: данные должны отправлятся на mqtt сервер один раз в 1-2 минуты.
Исходя из уровня CO2, светодиод должен гореть либо зеленым, оранжевым или красным.
Если идет повышение уровня радиации, светодиод должен мигать красно синим и звучать сигнал. Световую и звуковую сигнализацию нужно отключать кнопкой.
Что происхлдит сейчас. Какие проблемы:
1. Node mcu ресетится каждую минуту или две. Иногда чаще. Вот с такой ошибкой.
00:47:08.114 -> ets Jan 8 2013,rst cause:4, boot mode:(3,2)
00:47:08.114 ->
00:47:08.114 -> wdt reset
00:47:08.114 -> load 0x4010f000, len 3584, room 16
00:47:08.114 -> tail 0
00:47:08.114 -> chksum 0xb0
00:47:08.114 -> csum 0xb0
00:47:08.114 -> v2843a5ac
2. Данные уходят на сервер раз в минуту, но если врабатывает сигнализация (при увеличении радиации)
то данные перестают уходить на сервер. Грубо говоря, поток блочится и нужно ждать пока пройдет
цикл звуковой и светодиодной сигнализации.
Изначально я делал проект вот по этому коду: http://patriot-geek.blogspot.com/2017/11/publishing-sensor-data-to-mqtt.html
Поток не блочился, но я не мог правильно настроить интервал отправки.
Но потом я нашел другое решение (код ниже). Теперь с интервалом отправки более менее нормально, но вот теперь проблема с заблокированным потоком.
3. Если светодиод хоть как то реагирует на изменение радиации, то он никак не реагирует на уровень CO2.
4. Также нужно проверить правильно ли считается радиация.
5. Исправить мелкие недочеты в коде, если такие имеются. Добиться стабильной работы программы.
Вот сам код:
https://pastebin.com/7ZJAEYUV
-
Здравствуйте.
Напишите мне в личку - обсудим. -
Для этого нужно предложить Вам проект? Я не вижу Отправить сообщение у вас на профайле.
-
Актуальные фриланс-проекты в категории C и C++
Реверс-инжиниринг консольных утилит для опроса контроллеров SSD (Flash ID)1. Цель работы Выделение программного интерфейса (API) взаимодействия с контроллерами SSD/NVMe из предоставленного набора консольных утилит (Phison, Silicon Motion, Realtek, Maxiotek, Marvell, JMicron и др.). Результатом должно стать рабочий код на языке C/C++ или точная… C и C++, Десктопные приложения ∙ 2 дня 19 часов назад ∙ 5 ставок |
Разработка карты семян Minecraft Java / просмотрщика семян для сайтаРазработка карты семян Minecraft Java / Seed Viewer для сайтаОписание проекта Необходимо разработать браузерный инструмент Minecraft Java Seed Map / Seed Viewer, который будет работать на нашем сайте и позволит пользователю ввести семя Minecraft Java Edition и просмотреть… C и C++, HTML и CSS верстка ∙ 3 дня 1 час назад ∙ 14 ставок |
Сравнительный анализ эффективности кастомного ПО (v2.2-field) и эталонного ПО (Meshtastic v2.x)
1000 UAH
Сравнительный анализ эффективности кастомного ПО (v2.2-field) и эталонного ПО (Meshtastic v2.x) на идентичной аппаратной платформе (ESP32 + SX1268, 2W) по критериям дальности, пропускной способности, стабильности линка и энергопотребления. Провести тесты с замерами с учетом… C и C++, C# ∙ 7 дней 9 часов назад ∙ 2 ставки |
Консультация и аудит текущего проекта на Odoo 19 Community EditionИщем Odoo разработчика — соло-разработчика с опытом разработки на Odoo 19 Community Edition, в том числе с использованием Claude Code. Нам нужен специалист, который успешно реализовал проекты в Odoo и имеет практический опыт разработки с использованием Claude Code. Важно:… C и C++, Javascript и Typescript ∙ 10 дней 10 часов назад ∙ 8 ставок |
Разработка ПО для Arduino (RF-модули 3–7.5 ГГц, автоматическое сканирование частот)Необходимо разработать систему на Arduino для автоматического поиска активного аналогового видеосигнала и автоматической настройки передатчика на обнаруженную частоту.Планируется использование трех отдельных приемно-передающих модулей: 3000–4200 МГц; 4900–6000 МГц; 6100–7500… C и C++, Встраиваемые системы и микроконтроллеры ∙ 11 дней 10 часов назад ∙ 5 ставок |