Доработка скетча Ардуино
4 USDОборудование: 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
-
Здравствуйте.
Напишите мне в личку - обсудим. -
Для этого нужно предложить Вам проект? Я не вижу Отправить сообщение у вас на профайле.
-
Current freelance projects in the category C & C++
Reverse engineering of console utilities for querying SSD controllers (Flash ID)1. Purpose of the work Extraction of the application programming interface (API) for interaction with SSD/NVMe controllers from the provided set of console utilities (Phison, Silicon Motion, Realtek, Maxiotek, Marvell, JMicron, etc.). The result should be working code in C/C++… C & C++, Desktop Apps ∙ 6 days 14 hours back ∙ 6 proposals |
Development of a Minecraft Java Seed Map / Seed Viewer for the websiteDevelopment of Minecraft Java Seed Map / Seed Viewer for the websiteProject Description A browser-based tool Minecraft Java Seed Map / Seed Viewer needs to be developed, which will work on our website and allow the user to enter a seed from Minecraft Java Edition and view an… C & C++, HTML & CSS ∙ 6 days 21 hours back ∙ 15 proposals |
Comparative analysis of the effectiveness of custom software (v2.2-field) and reference software (Meshtastic v2.x)
22 USD
Comparative analysis of the effectiveness of custom software (v2.2-field) and reference software (Meshtastic v2.x) on the identical hardware platform (ESP32 + SX1268, 2W) based on the criteria of range, throughput, link stability, and power consumption. Conduct tests with… C & C++, C# ∙ 11 days 4 hours back ∙ 2 proposals |