В библиотеках Arduino IDE 1.8.5 появилась ссылка на библиотеку чтения датчиков https://github.com/Mickaelh51/Arduino-Oregon-Library . ну помимо этого накопал еще несколько библиотек трансмитеров.. буду тестить.
Еще вопрос, кто чинил сам орегоновский датчик, иногда перестает передавать.. или киньтесь их схемкой
По результатам возни с осциллографом подправил свою библиотеку (https://github.com/invandy/Oregon_NR). В моём случае датчики стали слышны устойчивее и заметно дальше.
Спасибо вам за библиотеку, она принимает гораздо лучше чем рекомендуемая на других ресурсах бибилиотека от jeelabs.net
Использую датчики на дачном участке в теплице, ловит с 40 метров. Приемник в деревянном доме.
Библиотека норм работает как на Pro Mini так и на ESP8266.
ДЛя отслальных могу сказать, если плохо принимает. Экспериментируйте с приемниками. Я заказал с али 4 версии различных. Одни например норм работают только на 5В, а на 3.3в при формально заявленной возможности не ловят вообще ничего, другие имеют низкую избирательность и прием только в 1м получается.
Самые хорошие результаты на получились на RX470B-V02 от qiachip
Так как у меня есть датчики oregon версий v2 и v3 например анемометр, мне пришлось собрать монстра с двумя антенами, esp8266 ловит v2 а Mini Pro v3 общаются по UART и esp8266 передает показания на thingspeak
Вы не дадите комментарии по использованию в вашей библиотеке чтения датчиков газа и дыма ?
Да всё просто. Поскольку библиотека неплохо справляется с приёмом пакетов определённой длины, завернуть в этот пакет можно много чего другого. Вот и напридумывал своих типов датчиков и свои поля. В доме теперь на в этом формате передают датчики загазованности, тока и напряжения, пожарная и охранная сигнализация. Даже емкостной датчик осадков со двора вещает.
Поинтересовался, что теперь выпускает Орегон. Новые трёхканальные погодные станции комплектуются теперь не 132-ыми датчиками. Теперь у них в комплекте идёт THGR511, который тоже трёхканальный, бъёт только на 30 метров, но при этом протокол V3.0. Кто-нибудь уже их копал?
Понадобилось сделать автономный имитатор орегонвского датчика. Судя по тому, что здесь пишут - даже в спящем режиме ардуино сжирает емкость литиевых аккумуляторов за несколько недель. А хочется по взрослому - от 2ух-3ех пальчиков и сезон, как минимум. Накопал разработанный специально для этих целей таймер TPL5110:
Ток потребления в режиме ожидания - около 35na. ИНтервал запуска - до 7200с.
Схему вижу вот так:
Работать должно даже от 2-ух "пальчиков". Но проблема такова - точность внутреннего генератора таймера - 1%. Даже при использовании прецизионных резисторов будет постепенный уход от требуемого интервала передачи. Если при использовании приёмника на это, мягко говоря, плевать, то орегоновская погодная станция может отнестись к такому отклонению очень скептически и просто вычеркнуть датчик из списка принимаемых.
Вкратце техническое задание можно сформулировать так:
- Cымитировать на ардуино датчик Oregon THGN132, но работающий от "пальчиковых" батареек. Работающий долго.
- Батарейки должны выжиматься до полного разряда.
- Сенсор BME280
- Возможность передачи данных также и об атмосферном давлении и напряжении батареи.
- сделать по возможности легко повторяемую модульную конструкцию.
От усыпления ардуино отказался. Во-первых, помимо ардуино надо усыплять и сенсор с передатчиком. Хотя, это вопрос, конечно легко решаемый коммутации цепи питания полевым транзистором.
Во-вторых, при падении напряжения упадёт и мощность передатчика.
Во-третьих, ардуино не выжмет батарейки до последнего, а отрубится на 2.7В
В итоге решил экономить электричество с помощью таймер TPL5110. Тут тоже не всё гладко. Готовые недешевые модули выпускает только Adafruit, китайских клонов нет. Кроме того точность времени срабатывания таймера около 10%. Не факт, что оригинальная погодная станция захочет принимать пакеты при такой точности соблюдении интервала между ними.
Схему собранного устройства, его фото, а также фото самосборной платы таймера прилагаю.
Измерил ток, потребляемый устойством в режиме передачи и время работы устройства. ПРи прошивке через USB получилось очень долго. Около 1.5с загрузчик стоит и ждёт неизвестно чего. Но ток при этом устройство потребляется исправно. При прошивке Arduino через ISP голого HEX без загрузчика - время работы сократилось до 600мс. Из них 200мс - старт и опрос датчика, и 400мс - передача пакета в эфир.
На прилагаемой осциллограмме показан ток, потребляемый от источника напряжением 2В. Клетка по горизонтали 100мс, по вертикали - 50мА.
Итого потребляемая мощность в рабочем режиме около 0.15 Вт. ПРи цикле передачи 36с имеем среднюю потребляемую мощность 2.5мВт. Щелочная батарейка АА имеет емкость около 2.25Втч. Трёх батареек должно хватить на 2700 часов работы - не менее трёх месяцев. Хотелось бы в это верить...
После исследований на осциллографе пришёл к выводу, что ошибался. Повышающий DC/DC имеет слишком низкий КПД на малых токах потребления, при этом и стабилизатор из него получается весьма скверный. Без него стабильность напряжения на передатчике даже выше, а потребляемый устройством ток - меньше. Схема в итоге получила следующий вид:
При падении напряжения батареи до 2.7В, напряжение на передатчике падает до предельных 2В. Так что наверное и фьюзы перешивать не надо на 1.8В. Но я на всякий случай перешил и проверил. Передатчик перестёт работать при напряжении батареи 2.5В. Стоит ли эти 0.2В возни с перешивкой фьюзов? Не знаю даже...
Резистор R3 ограничивает ток от батарейки и обеспечивает стабильную работу таймера. Без него таймер может не давать схеме запуститься вообще. Возможно можно использовать резистор и меньшего номинала, но у меня другого не было.
Измерение напряжения батареи работет от внутреннего опорного источника 1.1В и даёт какие-то странные результаты.
Значения с АЦП, в зависимости от напряжения батареи приходят следующие:
2.5В - 3FFh
2.7В - 3C0h
3.0В - 380h
3.5В - 300h
4.0В - 2C5h
4.5В - 2D7h
Экстремум этой функции искать не стал. В принципе и так можно оценить состояние батареи и выставить соответсвующий бит в орегоновском пакете данных.
Скетч передатчика прилагаю. Проверено на приёме на на погодных станциях BAR208 и BAR206. Точность настройки таймера, чтобы станция не теряла датчки должна быть +-1сек.
Кстати, обратил внимание, что WGR800 имеет очень несимметричную диаграмму направленности излучающей антенны. Дальность приёма в зависимости от ориентации севера на датчике меняется в разы!
Нельзя-ли уточнить, если ваша библиотека будет работать совместно с rc-switch на разных прерываниях,будут-ли они конфликтовать ?? Не пробовали подобные варианты с двумя прерываниями??
Ну.. теоретически, если в обычной Ардуино подключить мою библиотеку на порт 2, а RCswitch на порт 3 (или наоборот), то почему бы и нет. Если хватит производительности, чтобы точно измерить времена прихода фронтов, то должно работать корректно. Я, честно скажу, не пробовал. Но интересно...
это к чему, идеально, что-б библиотека пропускала и чужой сигнал, для его сторонней обработки другой библиотекой. а пока вот попробую совместить.. на esp, посомтрим, что выйдет.
А зачем таймер - не лучше модуль DS3231? Любой интервал, полное отключение схемы питания через SQW... из минусов батарейка часов - но если хорошую постаяить думаю лет на 5 хватит. У меня дешевые по 2 -3 года выхаживают.
Видно, что к концу записи вместо "00 70 00" имеем "04 40 00". Что это значит? Это значит, что к окнцу записи 127 тактов синхронизация сьезжает на 4 цикла записи т.е. на 4 * 30 = 120мкс. Т.е. датчик и ардуино имеют разные чатоты передачи данных. Почему - мне неизвестно. Вероятнее всего это кварц датчика. На моих датчиках и устройствах такого расхождения я не встречал.
Вылечить можно так:
Находим в библиотеке следующее место:
if (bt2 == 7)
{
pre_marker += 4;
bt2 = 0;
}
и меняем цифру 4 на 3 или меньше. Должно помочь. Но вообще это не дело. Постараюсь вывести этот параметр в настройку библиотеки или поменять метод расшифровки. Спасибо, что помогли найти проблемное место.
А как часто датчик шлет информацию? по какому алгоритму?
И еще, на 5V, 16МГц Nano почему то работает стабильнее чем на 3,3V 8МГц ProMini (кварц внешний). Питание приемника в обоих случаях 3,3V. Не хватает производительности 8МГц Pro Mini?
Спасибо, я так и понял. Просто в промежутках между 15 сек вижу какой то мусор ... Скорее всего приемник видит какие-то соседские датчики.
Теперь мне нужно "прикрутить" Вашу библиотеку к MySensors. Вы не пробовали?
Правильно ли понимаю, что мне нужно синхронизировать основной цикл таким образом, чтобы через каждые 15 сек от первого пакета выделялось время не менее 400ms для прием и декодирование информации с датчика. Понятно, что все работает на прерываниях, но радиомодуль MySensors тоже использует прерывания и тут нужно как-то синхронизировать ассинхронную обработку :)
Можно попробовать так как вы предлагаете - выделять таймслот под каждый датчик и обрабатывать соответсвующим декодером. Но если будет утеряно большое количество пакетов, можно потерять синхронизацию
Обновил свою библиотеку (http://github.com/invandy/Oregon_NR). Попытался немного улучшить приём, Добавил примеры с приёмником, передатчиками и ретранслятором.
Посмотрев схемы, реанимировал сперва 132-ой погодный датчик, а затем и саму погодную станцию. Оказалась одна и та же неисправность - кварц 32768Гц. В датчике он единственный, а вот в станции - пришлось искать методом перебора.
Никаких особенностей нет. Приём в версии протокола 3.0 немного похуже - меньше избыточность кода, иногда восстанавливать данные просто не из чего... Ну и флюгер у него бестолковый - порывами ветра разворачивает в произвольном направлении. Пытаюсь как-то усреднять данные за период времени, но толку от этого немного.
Нет. Суммирую все вектора примерно за полчаса. Изначально за модуль вектора принимал силу ветра, но позже пршёл к выводу, что все вектора должны быть с одинаковым модулем.
Попробуйте перекачать библиотеку. Я обновлял её несколько дней назад. Если не поможет - скиньте сюда осциллограф по этому датчику... Разберёмся. Но похоже на рассинхронизацию.Настораживает, что это не единичный случай, но у себя я ни на одном устройстве не наблюдаю ничего подобного...
Могу предположить, что проблема в организации программы. В процессе прослушивания приемника ничем другим заниматься не получится. Просто не хватит времени. Приёмник постоянно выдаёт шум, который надо анализировать.
Вот, включил осцилографф и прочее отобажение, все кажет... выключаешь нет ничего. Точнее комментил осцил и вывод в сериал служебной инфо. И по чувствительности, по сравнению с предыдущей версией заметно хуже.
BEFORE II OO II OO II OO II OO II OO II OO II OO II OO II OO II OO II OI OO IO II OI OO IO II OI OO IO II OO II OO II OI OO II OO IO II OO II OI OO II OO IO II OI OO II OO II OO II OO II OO IO II OI OO II OO II OO II OO IO II OI OO IO II OO II OI OO IO II OO II OI OO IO II OI OO II OO IO II OO II OO II OI OO II OO IO II OI OO II OO II OO IO II OI OO II OO II OO II OO __ OO II OO IO II OO __ OI OO II OO II OO II OO IO II OI OO __ OO __ OO IO __ OI OO __ OO __ OO IO __ OI OO IO OO OO
AFTER II OO II OO II OO II OO II OO II OO II OO II OO II OO II OO II OI OO IO II OI OO IO II OI OO IO II OO II OO II OI OO II OO IO II OO II OI OO II OO IO II OI OO II OO II OO II OO II OO IO II OI OO II OO II OO II OO IO II OI OO IO II OO II OI OO IO II OO II OI OO IO II OI OO II OO IO II OO II OO II OI OO II OO IO II OI OO II OO II OO IO II OI OO II OO II OO II OO II OO II OO IO II OO II OI OO II OO II OO II OO IO II OI OO II OO II OO IO II OI OO II OO II OO IO II OI OO IO II OO
RESULT I I I I I I I I I I I O I O I O I I I O O I I O O I O O O O O I O O O O I O I I O I I O I O O I I I O O I O O O I O O O O O O I I O O O O I O O O I O O O I O I i OSV:2 SYN:11 TIME:6
6s dp EC401AD272203444... 302ms TYPE: THN132N CHNL: 1 TMP: 22.7C BAT: F ID: AD
BEFORE OI OI OI OI OI OI OI OI OI OI OI OI OI OI OO II OO II OI OO IO IO II OO IO II OO IO IO II OO IO II OO IO IO IO IO IO IO II OI OO IO II OI OO IO IO IO IO IO II OI OO IO IO IO IO IO II OI OO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO II OI OO IO IO II OO II OI OO IO IO II OO IO IO OO
AFTER OI OI OI OI OI OI OI OI OI OI OI OI OI OI OO II OO II OI OO IO IO II OO IO II OO IO IO II OO IO II OO IO IO IO IO IO IO II OI OO IO II OI OO IO IO IO IO IO II OI OO IO IO IO IO IO II OI OO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO II OI OO IO IO II OO II OI OO IO IO II OO IO IO __
RESULT I I I I I I I I I I I I I I I O I O I I O O O I O O I O O O I O O I O O O O O O O I I O O I I O O O O O O I I O O O O O O I I O O O O O O O O O O O O O O O O O O O O O O O O O I I O O O I O I I O O O I O O O . OSV:3 SYN:15 TIME:14
14s3 19840CC0C0C00000064 210ms TYPE: WGR800 AVG WS: 0.0m/s MAX WS: 0.0m/s WDIR: 12 BAT: F ID: CC
Дело в том, что я не менял в библиотеке ничего, что касается версии 2. Но на основе "осциллографа" увидел ещё одну особенность в передаче данных. Попробуйте перекачать библиотеку, Если станет лучше, значит надо будет ещё подправить :)
В библиотеках Arduino IDE 1.8.5 появилась ссылка на библиотеку чтения датчиков https://github.com/Mickaelh51/Arduino-Oregon-Library . ну помимо этого накопал еще несколько библиотек трансмитеров.. буду тестить.
Еще вопрос, кто чинил сам орегоновский датчик, иногда перестает передавать.. или киньтесь их схемкой
По результатам возни с осциллографом подправил свою библиотеку (https://github.com/invandy/Oregon_NR). В моём случае датчики стали слышны устойчивее и заметно дальше.
Вы не дадите комментарии по использованию в вашей библиотеке чтения датчиков газа и дыма ?
porosenok
Спасибо вам за библиотеку, она принимает гораздо лучше чем рекомендуемая на других ресурсах бибилиотека от jeelabs.net
Использую датчики на дачном участке в теплице, ловит с 40 метров. Приемник в деревянном доме.
Библиотека норм работает как на Pro Mini так и на ESP8266.
ДЛя отслальных могу сказать, если плохо принимает. Экспериментируйте с приемниками. Я заказал с али 4 версии различных. Одни например норм работают только на 5В, а на 3.3в при формально заявленной возможности не ловят вообще ничего, другие имеют низкую избирательность и прием только в 1м получается.
Самые хорошие результаты на получились на RX470B-V02 от qiachip
Так как у меня есть датчики oregon версий v2 и v3 например анемометр, мне пришлось собрать монстра с двумя антенами, esp8266 ловит v2 а Mini Pro v3 общаются по UART и esp8266 передает показания на thingspeak
Вы не дадите комментарии по использованию в вашей библиотеке чтения датчиков газа и дыма ?
Да всё просто. Поскольку библиотека неплохо справляется с приёмом пакетов определённой длины, завернуть в этот пакет можно много чего другого. Вот и напридумывал своих типов датчиков и свои поля. В доме теперь на в этом формате передают датчики загазованности, тока и напряжения, пожарная и охранная сигнализация. Даже емкостной датчик осадков со двора вещает.
Поинтересовался, что теперь выпускает Орегон. Новые трёхканальные погодные станции комплектуются теперь не 132-ыми датчиками. Теперь у них в комплекте идёт THGR511, который тоже трёхканальный, бъёт только на 30 метров, но при этом протокол V3.0. Кто-нибудь уже их копал?
Понадобилось сделать автономный имитатор орегонвского датчика. Судя по тому, что здесь пишут - даже в спящем режиме ардуино сжирает емкость литиевых аккумуляторов за несколько недель. А хочется по взрослому - от 2ух-3ех пальчиков и сезон, как минимум. Накопал разработанный специально для этих целей таймер TPL5110:
https://www.ti.com/lit/ds/symlink/tpl5110.pdf
Ток потребления в режиме ожидания - около 35na. ИНтервал запуска - до 7200с.
Схему вижу вот так:
Работать должно даже от 2-ух "пальчиков". Но проблема такова - точность внутреннего генератора таймера - 1%. Даже при использовании прецизионных резисторов будет постепенный уход от требуемого интервала передачи. Если при использовании приёмника на это, мягко говоря, плевать, то орегоновская погодная станция может отнестись к такому отклонению очень скептически и просто вычеркнуть датчик из списка принимаемых.
В общем экспериментальный датчик я собрал.
Вкратце техническое задание можно сформулировать так:
- Cымитировать на ардуино датчик Oregon THGN132, но работающий от "пальчиковых" батареек. Работающий долго.
- Батарейки должны выжиматься до полного разряда.
- Сенсор BME280
- Возможность передачи данных также и об атмосферном давлении и напряжении батареи.
- сделать по возможности легко повторяемую модульную конструкцию.
От усыпления ардуино отказался. Во-первых, помимо ардуино надо усыплять и сенсор с передатчиком. Хотя, это вопрос, конечно легко решаемый коммутации цепи питания полевым транзистором.
Во-вторых, при падении напряжения упадёт и мощность передатчика.
Во-третьих, ардуино не выжмет батарейки до последнего, а отрубится на 2.7В
В итоге решил экономить электричество с помощью таймер TPL5110. Тут тоже не всё гладко. Готовые недешевые модули выпускает только Adafruit, китайских клонов нет. Кроме того точность времени срабатывания таймера около 10%. Не факт, что оригинальная погодная станция захочет принимать пакеты при такой точности соблюдении интервала между ними.
Схему собранного устройства, его фото, а также фото самосборной платы таймера прилагаю.
Ссылки на компоненты:
DC/DC
https://ru.aliexpress.com/item/1-DC-DC/32843722601.html
BME280
https://ru.aliexpress.com/item/BME280/32672210336.html
AO3401
https://ru.aliexpress.com/item/free-shipping-20PCS-AO3401-SOT-23-P-Chann...
TPL5110
https://ru.aliexpress.com/item/2-TPL5110DDCR-TPL5110DDCT-TPL5110-ZALX-IC...
BSS138 выпаял с левелшифтера.
https://ru.aliexpress.com/item/IIC-I2C-Logic-Level-Converter-Bi-Directio...
Макетка для таймера
https://ru.aliexpress.com/item/FREE-SHIPPING-20PCS-SOT23-SOP10-MSOP10-UM...
Передатчик из комплекта
https://ru.aliexpress.com/item/1pair-2pcs-433mhz-rf-transmitter-and-rece...
Измерил ток, потребляемый устойством в режиме передачи и время работы устройства. ПРи прошивке через USB получилось очень долго. Около 1.5с загрузчик стоит и ждёт неизвестно чего. Но ток при этом устройство потребляется исправно. При прошивке Arduino через ISP голого HEX без загрузчика - время работы сократилось до 600мс. Из них 200мс - старт и опрос датчика, и 400мс - передача пакета в эфир.
На прилагаемой осциллограмме показан ток, потребляемый от источника напряжением 2В. Клетка по горизонтали 100мс, по вертикали - 50мА.
Итого потребляемая мощность в рабочем режиме около 0.15 Вт. ПРи цикле передачи 36с имеем среднюю потребляемую мощность 2.5мВт. Щелочная батарейка АА имеет емкость около 2.25Втч. Трёх батареек должно хватить на 2700 часов работы - не менее трёх месяцев. Хотелось бы в это верить...
После исследований на осциллографе пришёл к выводу, что ошибался. Повышающий DC/DC имеет слишком низкий КПД на малых токах потребления, при этом и стабилизатор из него получается весьма скверный. Без него стабильность напряжения на передатчике даже выше, а потребляемый устройством ток - меньше. Схема в итоге получила следующий вид:
При падении напряжения батареи до 2.7В, напряжение на передатчике падает до предельных 2В. Так что наверное и фьюзы перешивать не надо на 1.8В. Но я на всякий случай перешил и проверил. Передатчик перестёт работать при напряжении батареи 2.5В. Стоит ли эти 0.2В возни с перешивкой фьюзов? Не знаю даже...
Резистор R3 ограничивает ток от батарейки и обеспечивает стабильную работу таймера. Без него таймер может не давать схеме запуститься вообще. Возможно можно использовать резистор и меньшего номинала, но у меня другого не было.
Измерение напряжения батареи работет от внутреннего опорного источника 1.1В и даёт какие-то странные результаты.
Значения с АЦП, в зависимости от напряжения батареи приходят следующие:
2.5В - 3FFh
2.7В - 3C0h
3.0В - 380h
3.5В - 300h
4.0В - 2C5h
4.5В - 2D7h
Экстремум этой функции искать не стал. В принципе и так можно оценить состояние батареи и выставить соответсвующий бит в орегоновском пакете данных.
Скетч передатчика прилагаю. Проверено на приёме на на погодных станциях BAR208 и BAR206. Точность настройки таймера, чтобы станция не теряла датчки должна быть +-1сек.
Библиотека Oregon_NR с поддержкой датчика THP.
https://github.com/invandy/Orgeon_NR_THP
Обновил библиотеку https://github.com/invandy/Orgeon_NR
Из нового:
- Добавлена поддержка протокола v3
- Добавлено распознавание датчиков RTGN318, THGR810, WGR800, UVN800
- Улучшены функции восстановления кода
- Добавлена возможность экономии памяти (с некоторым ухудшением качества приёма, естествено)
Убедительная просьба - проверить библиотеку и отписаться, как оно работает. Вживую проверял только на датчиках THGN132, THN132 и WGR800.
Обновил библиотеку https://github.com/invandy/Orgeon_NR
Убедительная просьба - проверить библиотеку и отписаться, как оно работает. Вживую проверял только на датчиках THGN132, THN132 и WGR800.
Добрый день!
Скачал последнюю версию библиотеки, тестирую на Nano+ датчик WGR800
декодирование нестабильное (причем теряются в среднем 1-2 последних байта сообщения)
лог:
⸮Start!!!3s 3 p 198405B020C000000.. 314ms
На всякий случай расширенные логи с 1 успешным декодированием, может это поможет:
1) IIIIIIIIIIIIIIIIIIIIIIOIOIIOOOIOOIOOOIOOIOOOOOIOIOIIOIOOOOIIOIOOOOOOIIOOOOOOOOOOOOOIIOOOOOOOOOIIOOOO..... OSV:3 SYN:22 TIME:3
Неплохо бы запустить "осциллограф" строкой
oregon.receiver_dump = 1;
и прислать расширенный лог хотя с нескольких пакетов с утерянной концовкой. Много не надо :)
Кстати, обратил внимание, что WGR800 имеет очень несимметричную диаграмму направленности излучающей антенны. Дальность приёма в зависимости от ориентации севера на датчике меняется в разы!
Добрый день!
Вечером сниму логи и пришлю.
А куда направлена диаграмма антенны относительно метки "север" на датчике?
Я так понял что на восток провал в диаграмме. Возможно из-за батареек, они как рефлектор работают.
Ок, спасибо! Буду иметь ввиду :)
Нельзя-ли уточнить, если ваша библиотека будет работать совместно с rc-switch на разных прерываниях,будут-ли они конфликтовать ?? Не пробовали подобные варианты с двумя прерываниями??
Ну.. теоретически, если в обычной Ардуино подключить мою библиотеку на порт 2, а RCswitch на порт 3 (или наоборот), то почему бы и нет. Если хватит производительности, чтобы точно измерить времена прихода фронтов, то должно работать корректно. Я, честно скажу, не пробовал. Но интересно...
это к чему, идеально, что-б библиотека пропускала и чужой сигнал, для его сторонней обработки другой библиотекой. а пока вот попробую совместить.. на esp, посомтрим, что выйдет.
А зачем таймер - не лучше модуль DS3231? Любой интервал, полное отключение схемы питания через SQW... из минусов батарейка часов - но если хорошую постаяить думаю лет на 5 хватит. У меня дешевые по 2 -3 года выхаживают.
Я об этом не подумал - может и лучше...
Добрый вечер!
Лог:
1) III.............................................................. OSV:3 SYN:NO TIME:29
Немного отформатировал и выбрал 3 пакета с успешным декодированием и 2 с ошибками
Нормальное декодирование
Берём запись с канала
и меняем цифру 4 на 3 или меньше. Должно помочь. Но вообще это не дело. Постараюсь вывести этот параметр в настройку библиотеки или поменять метод расшифровки. Спасибо, что помогли найти проблемное место.
Спасибо за помошь!
При pre_marker += 3; - практически разницы нет
При pre_marker += 2; - стало значительно стабильнее. (примерно 50/50), до этого декодировался 1 пакет из 5-6
лог при pre_marker += 2. Имеет смысл уменьшить до 1?
Попробуйте. Если не хватит, можно и 7-ку заменить на что-нибудь поболее. Или вообе убрать эту конструкцию
pre_marker += 1, стало стабильнее (проходит 80% пакетов)
лог:
Нормальное декодирование
Скорее всего 8Мгц маловато. WGR800 выдаёт раз в 15 секунд одиночный пакет
Спасибо, я так и понял. Просто в промежутках между 15 сек вижу какой то мусор ... Скорее всего приемник видит какие-то соседские датчики.
Теперь мне нужно "прикрутить" Вашу библиотеку к MySensors. Вы не пробовали?
Правильно ли понимаю, что мне нужно синхронизировать основной цикл таким образом, чтобы через каждые 15 сек от первого пакета выделялось время не менее 400ms для прием и декодирование информации с датчика. Понятно, что все работает на прерываниях, но радиомодуль MySensors тоже использует прерывания и тут нужно как-то синхронизировать ассинхронную обработку :)
Можно попробовать так как вы предлагаете - выделять таймслот под каждый датчик и обрабатывать соответсвующим декодером. Но если будет утеряно большое количество пакетов, можно потерять синхронизацию
Если есть возможность, посмотрите пож. логи с ProMini 8Mgz.
Успешных пакетов нет совсем, в лучшем случае 1-2 первых цифры.
Работает только Ваш код из примера (аналогичный тому, что я запускал на Nano 16Mgz)
ProMini 8Mgz
Без вариантов - не хватает 8Мгц
Большое спасибо!
Собрал датчик на коде от уважаемого Porosenok, станция Oregon 206 его видит, все ок.
Возможно кому-то пригодится. Список орегоновских датчиков с фотографиями внутренностей, принципиальными схемами осциллограммами сигналов и прочим.
https://fccid.io/NMT
вау!!!! схемы.. премного благодарен!!!
Обновил свою библиотеку (http://github.com/invandy/Oregon_NR). Попытался немного улучшить приём, Добавил примеры с приёмником, передатчиками и ретранслятором.
Посмотрев схемы, реанимировал сперва 132-ой погодный датчик, а затем и саму погодную станцию. Оказалась одна и та же неисправность - кварц 32768Гц. В датчике он единственный, а вот в станции - пришлось искать методом перебора.
Не подскажите, с орегоновским анемометром есть особенности ??
Никаких особенностей нет. Приём в версии протокола 3.0 немного похуже - меньше избыточность кода, иногда восстанавливать данные просто не из чего... Ну и флюгер у него бестолковый - порывами ветра разворачивает в произвольном направлении. Пытаюсь как-то усреднять данные за период времени, но толку от этого немного.
медианным фильтром?
Нет. Суммирую все вектора примерно за полчаса. Изначально за модуль вектора принимал силу ветра, но позже пршёл к выводу, что все вектора должны быть с одинаковым модулем.
ясно.. подскажите, тестирую на wrg800-01, все принимает а датчики thgn132N не слышит.. на строй библе слышал..
2 v EC401.D0.0201C.F..1 189ms
Попробуйте перекачать библиотеку. Я обновлял её несколько дней назад. Если не поможет - скиньте сюда осциллограф по этому датчику... Разберёмся. Но похоже на рассинхронизацию.Настораживает, что это не единичный случай, но у себя я ни на одном устройстве не наблюдаю ничего подобного...
Могу предположить, что проблема в организации программы. В процессе прослушивания приемника ничем другим заниматься не получится. Просто не хватит времени. Приёмник постоянно выдаёт шум, который надо анализировать.
вечером выложу. а так-то это ваш тестовый пример. он просто слушает
Вот, включил осцилографф и прочее отобажение, все кажет... выключаешь нет ничего. Точнее комментил осцил и вывод в сериал служебной инфо. И по чувствительности, по сравнению с предыдущей версией заметно хуже.
Дело в том, что я не менял в библиотеке ничего, что касается версии 2. Но на основе "осциллографа" увидел ещё одну особенность в передаче данных. Попробуйте перекачать библиотеку, Если станет лучше, значит надо будет ещё подправить :)