Доработка скетча Ардуино
17 PLNОборудование: 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
-
Здравствуйте.
Напишите мне в личку - обсудим. -
Для этого нужно предложить Вам проект? Я не вижу Отправить сообщение у вас на профайле.
-
Aktualne zlecenia dla freelancerów w kategorii C i C++
Rewersowe inżynieria konsolowych narzędzi do ankietowania kontrolerów SSD (Flash ID)1. Cel pracy Wydzielenie interfejsu programowania aplikacji (API) do interakcji z kontrolerami SSD/NVMe z dostarczonego zestawu narzędzi konsolowych (Phison, Silicon Motion, Realtek, Maxiotek, Marvell, JMicron itd.). Wynikiem ma być działający kod w języku C/C++ lub dokładna… C i C++, Aplikacje desktopowe ∙ 4 dni 1 godzina temu ∙ 5 ofert |
Opracowanie mapy nasion Minecraft Java / przeglądarki nasion dla strony internetowejOpracowanie mapy nasion Minecraft Java / Podgląd nasion dla strony internetowejOpis projektu Potrzebne jest opracowanie narzędzia opartego na przeglądarce Mapa nasion Minecraft Java / Podgląd nasion, które będzie działać na naszej stronie i pozwoli użytkownikowi wprowadzić… C i C++, Układ HTML i CSS ∙ 4 dni 8 godzin temu ∙ 14 ofert |
Porównawcza analiza efektywności oprogramowania dostosowanego (v2.2-field) i oprogramowania referencyjnego (Meshtastic v2.x)
83 PLN
Porównawcza analiza efektywności oprogramowania dostosowanego (v2.2-field) i oprogramowania referencyjnego (Meshtastic v2.x) na identycznej platformie sprzętowej (ESP32 + SX1268, 2W) według kryteriów zasięgu, przepustowości, stabilności łącza i zużycia energii. Przeprowadzić… C i C++, C# ∙ 8 dni 15 godzin temu ∙ 2 oferty |
Konsultacja i audyt bieżącego projektu na Odoo 19 Community EditionSzukamy programisty Odoo — samodzielnego dewelopera z doświadczeniem w pracy z Odoo 19 Community Edition, w tym z wykorzystaniem Claude Code. Potrzebujemy specjalisty, który ma zrealizowane projekty w Odoo oraz praktyczne doświadczenie w programowaniu z użyciem Claude Code.… C i C++, Javascript & Typescript ∙ 11 dni 16 godzin temu ∙ 8 ofert |
Rozwój oprogramowania dla Arduino (moduły RF 3–7,5 GHz, automatyczne skanowanie częstotliwości)Należy opracować system na Arduino do automatycznego wyszukiwania aktywnego analogowego sygnału wideo oraz automatycznego dostosowywania nadajnika do wykrytej częstotliwości.Planowane jest wykorzystanie trzech oddzielnych modułów odbiorczo-nadajnych: 3000–4200 MHz; 4900–6000… C i C++, Systemy wbudowane i mikrokontrolery ∙ 12 dni 17 godzin temu ∙ 5 ofert |