Доработка скетча Ардуино
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++, Десктопні додатки ∙ 7 днів 2 години тому ∙ 6 ставок |
Розробка Minecraft Java Seed Map / Seed Viewer для сайтуРозробка Minecraft Java Seed Map / Seed Viewer для сайтуОпис проєкту Потрібно розробити browser-based інструментMinecraft Java Seed Map / Seed Viewer, який буде працювати на нашому сайті та дозволятиме користувачу ввести seed Minecraft Java Edition і переглянути інтерактивну… C та C++, HTML та CSS верстання ∙ 7 днів 9 годин тому ∙ 15 ставок |
Порівняльний аналіз ефективності кастомного ПЗ (v2.2-field) та еталонного ПЗ (Meshtastic v2.x)
1000 UAH
Порівняльний аналіз ефективності кастомного ПЗ (v2.2-field) та еталонного ПЗ (Meshtastic v2.x) на ідентичній апаратній платформі (ESP32 + SX1268, 2W) за критеріями дальності, пропускної спроможності, стабільності лінка та енергоспоживання. Провести тести з вимірюваннями з… C та C++, C# ∙ 11 днів 16 годин тому ∙ 2 ставки |