Умный дом по радиоканалу

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
wanvo
Сообщения: 164
Зарегистрирован: 30 сен 2013, 09:45
Откуда: Russia, Rostov-on-Don

Re: Умный дом по радиоканалу

Сообщение wanvo » 14 дек 2016, 01:32

x13dev писал(а): Строка в JSON начинается и заканчивается двойной кавычкой.
Вроде отправляю с двойной кавычкой.

Код: Выделить всё

      client.publish("/var/esp8266/hello", "hello world");
Собственно код взят из примера библиотеки, добавлен только логин и пароль.

Решилось четверными кавычками

Код: Выделить всё

client.publish("/var/esp8266/hello", "/"hello world/"");

Urbas81
Сообщения: 313
Зарегистрирован: 28 авг 2012, 14:22

Re: Умный дом по радиоканалу

Сообщение Urbas81 » 22 дек 2016, 15:58

Добрый день! Такой вопрос: нет ли возможности встроить в проект чтение регистров ModBus по TCP, с ESP8266 по mqtt передаю данные в X13, но хотелось бы еще и в сети RS485 эти данные иметь, но не получается скрестить ESP8266-RS485 и mqtt.

wanvo
Сообщения: 164
Зарегистрирован: 30 сен 2013, 09:45
Откуда: Russia, Rostov-on-Don

Re: Умный дом по радиоканалу

Сообщение wanvo » 22 дек 2016, 21:06

Добрый день.
У меня есть несколько вопросов.
Пытаюсь запустить связку гейт - нода на модулях ардуино мини и сс1101. Частота 433Мгц.
Гейт в системе определяется, причем как с модулем сс1101 так и без него.
Модули ардуино предварительно проверил по методике "A1Sn10"(у меня там кварцы на 16МГц)
Сигналы осциллографом наблюдаются на выводах CSN, MISO,MOSI, SCK модуля сс1101 как гейта так и ноды.
Но вот живы сами модули или нет не могу понять.
Как-нибудь вообще можно протестировать модуль СС1101 подключенный к гейту?
Регистры какие-нибудь почитать, пописать или еще как?
Возможно базовую частоту надо поменять? Вроде нашел где задается буду пробовать.

Поменял константу #define RF_BASE_FREQ 433400000UL
в файле A1xxxx/Common/PHY/CC1101/cc11_phy.h
откомпиллировал две конфигурации A1Cn10 и A1SC10 и прошил ими соответственно ноду и гейт.
Ничего не поменялось. Гейт определяется, нода не появляется.
Непонятно куда копать.

comparator
Сообщения: 516
Зарегистрирован: 20 окт 2012, 12:40
Откуда: Мюнхен

Re: Умный дом по радиоканалу

Сообщение comparator » 23 дек 2016, 13:57

Urbas81 писал(а):Добрый день! Такой вопрос: нет ли возможности встроить в проект чтение регистров ModBus по TCP, с ESP8266 по mqtt передаю данные в X13, но хотелось бы еще и в сети RS485 эти данные иметь, но не получается скрестить ESP8266-RS485 и mqtt.
Мы патылись по началу скрестить ежа с ужом - добавить в ноды возможность работы с ModBus, но конфигурация получается совсем головоломной. В общем пока отказались.
Возможно будет модуль для сервера, но пока его нет даже в планах

А нескромный вопрос, что за устройства у вас висят на ModBus ?
Кроме счетчиков мне ничего более-менее доступного не попадалось, да и там не ModBus, а какие-то вариации.
wanvo писал(а):Как-нибудь вообще можно протестировать модуль СС1101 подключенный к гейту?
в файле cc11_phy.c в процедуре CC11_Init найти следущий код

Код: Выделить всё

    // verify that SPI is working and the correct radio is installed

    uint8_t pn = 0xFF, vers = 0xFF;
    uint16_t cnt = 0;
    
    while((pn != 0) && (vers < 3))
    {
        if((cnt & 0xFF00) == 0)
        {
            pn = cc11_readReg(CC11_PARTNUM | CC11_STATUS_REGISTER);
            vers = cc11_readReg(CC11_VERSION | CC11_STATUS_REGISTER);
        }
        cnt++;
    }
И закомментировать строчку cnt++, если после этого гейт запуститься(опознается на сервере), значит радиомодуль подключен правильно.
Вторая проблема, китайцы ставят на платы кварцы серии ПИК - Первый Из Кучи. Мне попадалось - ожидаемая частота 868,3 - реальная 868,45. Что дает разброс больше 150ppm.
У меня ограничена полоса приемника в 100 КГц, и полоса АПЧ в 67,5 КГц. Соответственно устройства просто не слышат друг друга.

Проверить так это или нет, довольно просто. Необходим USB DVB-T донгл на RTL2832U и программа SDRSharp.
Необходимо поверить частоту при помощи например FM станций.
После вводим свою частоту и по водопаду смотрим излучают ли ноды и где. Если разброс больще 60 КГц, необходимо в ноду забить скорректированную частоту.

Например у меня все ноды с кварцами на 30ppm, работают с разбросом не более 15КГц
SDR.png
SDR.png (80.09 КБ) 4498 просмотров
картинка с стресс-теста.


P.S. кстати сделано небольшое обновление сервера и исходников develop ветки.

Urbas81
Сообщения: 313
Зарегистрирован: 28 авг 2012, 14:22

Re: Умный дом по радиоканалу

Сообщение Urbas81 » 23 дек 2016, 14:42

comparator писал(а):
Urbas81 писал(а):Добрый день! Такой вопрос: нет ли возможности встроить в проект чтение регистров ModBus по TCP, с ESP8266 по mqtt передаю данные в X13, но хотелось бы еще и в сети RS485 эти данные иметь, но не получается скрестить ESP8266-RS485 и mqtt.
Мы патылись по началу скрестить ежа с ужом - добавить в ноды возможность работы с ModBus, но конфигурация получается совсем головоломной. В общем пока отказались.
Возможно будет модуль для сервера, но пока его нет даже в планах

А нескромный вопрос, что за устройства у вас висят на ModBus ?
Кроме счетчиков мне ничего более-менее доступного не попадалось, да и там не ModBus, а какие-то вариации.
У меня есть мысли применить программируемое реле ПР200 и к нему модули по ModBus если понадобиться, к примеру для управления RGB лентами, и один из интерфейсов RS хочу сделать WI-FI. Я почти нашел путь как завести значения с датчиков DS18b20 в плату wi-fi, получилось через get запросы, т.е одна ESP с mqtt отправляет посылки и в X13 и в ESP-RS485. В X13 по этим данным строятся графики, а через ESP-RS485 можно температуру завести в логику реле и там если нужно обрабатывать, плюс там же web интерфейс.

wanvo
Сообщения: 164
Зарегистрирован: 30 сен 2013, 09:45
Откуда: Russia, Rostov-on-Don

Re: Умный дом по радиоканалу

Сообщение wanvo » 23 дек 2016, 17:13

Печально то, что и с закомментированной строчкой совсем без радиомодуля гейт находится.
Конечно я его удаляю перед перезапуском Х13.
И палки на 433МГц не появляется при включении.
Может я что-то не то в эклипсе делаю?
Молотком пересобираю, нех новый появляется.
Чудеса!
Причем с каждой перепрошивкой номер в имени гейта возрастает.
LED от клока отрезал. HEX файл обновляется.
Пытался найти простенький пример для ардуино, чтобы проверить модули, но как-то простенького не нашел.

Прошивал так-же файлом из этого сообщения
Все три прошивки: оригинальная, тестовая с 66 страницы и моя с закомментированным cnt++ и исправленной частотой дают одинаковые результаты. А именно:

- Гейт в системе Х13 определяется как с модулем так и без него
- Светодиод на ножке SCLK с момента включения тускло горит постоянно никак не меняя своего состояния
как с модулем так и без него
- SDRSharp не видит сигнал ни на 433 ни на 868 Мгц. Антеннку подносил прямо к чипу СС1101.
- Сигналы на ножках CS, SCLK, MOSI, MISO присутствуют.

Попробовал четыре модуля. Правда все четыре были куплены у одного продавца году так в 2013 но не проверялись.
Возможно дохлые модули. Но смущает наличие сигнала MISO - чип что-то пытается отвечать.Без модуля этого сигнала нет.
И еще смущает определение гейта с выключенным cnt++ и выдернутым из разъема модулем СС1101.
Может дело в том, что модуль ардуино на 16МГц? И где-то что-то нужно подкрутить еще под эту тактовую.

wanvo
Сообщения: 164
Зарегистрирован: 30 сен 2013, 09:45
Откуда: Russia, Rostov-on-Don

Re: Умный дом по радиоканалу

Сообщение wanvo » 24 дек 2016, 01:02

Подключил Logic-U на SPI и вот какие странные картинки он выдал:
Вложения
SPI1.png
SPI1.png (121.2 КБ) 4472 просмотра
SPI.png
SPI.png (108.5 КБ) 4472 просмотра

wanvo
Сообщения: 164
Зарегистрирован: 30 сен 2013, 09:45
Откуда: Russia, Rostov-on-Don

Re: Умный дом по радиоканалу

Сообщение wanvo » 24 дек 2016, 01:05

А это с отключенным модулем СС1101
Вложения
spi4.png
spi4.png (100.27 КБ) 4472 просмотра
SPI2.png
SPI2.png (121.28 КБ) 4472 просмотра

wanvo
Сообщения: 164
Зарегистрирован: 30 сен 2013, 09:45
Откуда: Russia, Rostov-on-Don

Re: Умный дом по радиоканалу

Сообщение wanvo » 24 дек 2016, 11:17

Проверил работоспособность логического анализатора.
Картинка чтения флэш процессора программатором через тот-же SPI
Вложения
read.png
read.png (114.98 КБ) 4469 просмотров

wanvo
Сообщения: 164
Зарегистрирован: 30 сен 2013, 09:45
Откуда: Russia, Rostov-on-Don

Re: Умный дом по радиоканалу

Сообщение wanvo » 24 дек 2016, 12:35

Загрузил оригинальные фузы и прошивальщик ардуино а так-же пример обмена с каким-то датчиком по SPI. Картинка SPI нормальная, не буду ее тут вешать, нет смысла. Прошил снова прошивкой A1SC10 с 66 страницы - SPI вообще молчит. Фузы правда другие FD-DA-FF Ext-Hi-Low. Правда молчит он с подключенным ЛА, и кстати перестал определяться X13 с подключенным ЛА. С отключенным ЛА по прежнему определеятся. И таки да, поменял питание на 5В думал дело в том, что на 3.3В и 16МГц глючит. Однако при включении с отключенным модулем СС1101 и подключенным ЛА в SPI ничего не выводится. И сегодня мне не удалось получить с SPI странные сигналы, он просто молчит.
Все это очень странно.

comparator
Сообщения: 516
Зарегистрирован: 20 окт 2012, 12:40
Откуда: Мюнхен

Re: Умный дом по радиоканалу

Сообщение comparator » 26 дек 2016, 17:58

Что то все чудесатее и чудесатее. Взял вот ардуину, с 16М кварцем, включал как на 3,3в так и на 5.
Работает зараза, прошивка A1SC10.hex из ветки develop.

Давайте тогда по порядку, фьюзы, вот что мне говорит AVRDude

Код: Выделить всё

c:\Work\AVRDude>avrdude -p m328p -c avrisp2
avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: safemode: Fuses OK (E:FE, H:DF, L:CF)
Посмотреть что это значит можно здесь http://www.engbedded.com/fusecalc/

Вот что на шине:
Idle.png
Idle.png (152.67 КБ) 4402 просмотра
согласование по уровням, на MOSI/SCK/SS впоследовательно резисторы на 3,3к.
частота клока 4МГц.

comparator
Сообщения: 516
Зарегистрирован: 20 окт 2012, 12:40
Откуда: Мюнхен

Re: Умный дом по радиоканалу

Сообщение comparator » 26 дек 2016, 18:30

Обновите исходники, небольшой BugFix в develop ветке, HEX'ы не обновлялись.
у CC1101 не проверялся PartNum & Version.
На нормальную работу никак не влияет, только проверяет правильность подключения.

Файл cc11_phy.c, строчка 321
Было: uint8_t pn = 0xFF, vers = 0xFF;
Нужно: uint8_t pn = 0xFF, vers = 0x00;

Теперь при старте на SPI должно быть следующее.
StartUP.png
StartUP.png (173.31 КБ) 4396 просмотров

wanvo
Сообщения: 164
Зарегистрирован: 30 сен 2013, 09:45
Откуда: Russia, Rostov-on-Don

Re: Умный дом по радиоканалу

Сообщение wanvo » 26 дек 2016, 22:07

У меня хорошие новости.
С новой прошивкой и другими фузами на SPI появился правильный сигнал.
Сейчас буду пробовать свою частоту зашить.

Ситуация такова:
После изменения частоты и пересборки что гейта что ноды эклипс первый раз ругается и пишет 2 ошибки. Вторая попытка сборки проходит.
Но.
Мои последовательности немного отличаются
5 байт у вас 00 14 у меня 00 04
6 байт у вас 02 0E у меня 02 0F
затем у вас недекодированный байт а у меня 2E 0F

Дальше до конца картинки все совпадает.

Но радиомодули так и не начали излучать, и гейт не видит ноду.
Завтра продолжу, может прийдут какие идеи утром.

comparator
Сообщения: 516
Зарегистрирован: 20 окт 2012, 12:40
Откуда: Мюнхен

Re: Умный дом по радиоканалу

Сообщение comparator » 27 дек 2016, 12:38

wanvo писал(а):После изменения частоты и пересборки что гейта что ноды эклипс первый раз ругается и пишет 2 ошибки. Вторая попытка сборки проходит.
Можно посмотреть что за ошибки ?
wanvo писал(а):Мои последовательности немного отличаются
5 байт у вас 00 14 у меня 00 04
6 байт у вас 02 0E у меня 02 0F
Ничего страшного, это значит, что у вас старая версия чипа - корпус с слегка скругленными краями. У меня новые чипы - корпус рубленно квадратный.
wanvo писал(а):затем у вас недекодированный байт а у меня 2E 0F
все правильно, должно быть 02/2Е, сигнал на MISO не имеет значения.
Настраивается чип, записывается информация из таблицы cc11config
wanvo писал(а):Но радиомодули так и не начали излучать, и гейт не видит ноду.
Подключите на PB0(D8) индикатор активности

Код: Выделить всё

// LED
#define LED_On()                    PORTB &= ~(1<<PB0)
#define LED_Off()                   PORTB |= (1<<PB0)
#define LED_Init()                  {DDRB |= (1<<PB0); PORTB |= (1<<PB0);}
данный выход подключить на вход анализатора, включить тригер по падающему фронту.
лог с SPI в студию.

wanvo
Сообщения: 164
Зарегистрирован: 30 сен 2013, 09:45
Откуда: Russia, Rostov-on-Don

Re: Умный дом по радиоканалу

Сообщение wanvo » 27 дек 2016, 13:02

comparator писал(а):
wanvo писал(а):После изменения частоты и пересборки что гейта что ноды эклипс первый раз ругается и пишет 2 ошибки. Вторая попытка сборки проходит.
Можно посмотреть что за ошибки ?
Лог сделаю скорее всего вечером, жду звонка чтобы уехать на встречу. И пока не понял в каком файле лед включить.Поищу.
А ошибка эклипса такая.
Вложения
error.png
error.png (139.28 КБ) 4361 просмотр

wanvo
Сообщения: 164
Зарегистрирован: 30 сен 2013, 09:45
Откуда: Russia, Rostov-on-Don

Re: Умный дом по радиоканалу

Сообщение wanvo » 27 дек 2016, 18:53

Сделал лог только не в момент старта а позже. В момент старта там пик короткий по ножке PB0 идет совсем без данных
Вложения
a1sc10_csv.zip
(6.73 КБ) 111 скачиваний
A1SC10.zip
(157.74 КБ) 108 скачиваний

wanvo
Сообщения: 164
Зарегистрирован: 30 сен 2013, 09:45
Откуда: Russia, Rostov-on-Don

Re: Умный дом по радиоканалу

Сообщение wanvo » 28 дек 2016, 20:05

У меня тут обнаружился какой-то глюк программатора. После операции чтения, ардуины перестают видется кем-либо и внутренний blink перестает работать.Думаю, что программатор подыхал последнее время и теперь додох. Соответственно он мог записывать всякую ерунду в гейт и ноду.
Буду искать другой программатор и ардуины и пробовать шить им.
Приношу свои извенения и сожаления.

comparator
Сообщения: 516
Зарегистрирован: 20 окт 2012, 12:40
Откуда: Мюнхен

Re: Умный дом по радиоканалу

Сообщение comparator » 28 дек 2016, 20:08

wanvo писал(а):Сделал лог только не в момент старта а позже
К сожалению в логе я ничего кроме опроса статуса не вижу. Похоже все-таки частоты у нод слишком далеко друг от дружки.

Если есть частотомер, можно померить частоту самого кварца.
Зажимаем сброс у процессора, например поставив перемычку на разъёме программирования, выводы 5-6.
Включаем питание, по умолчанию на выходе GPIO2, частота кварца делённая на 192. То есть при кварце 26М, должно быть 135416,67Гц.
Если не так, соответственно считаем ошибку и подправляем.

Например: намерили 135436,9. Значит ошибка +150ppm и базовую частоту в устройстве необходимо выставить ниже заданной. Не 433,925 а 433,850.
Либо смотрим при помощи SDR приемника где он вещает.

Без подключенных нод гейт каждые 15 минут отправляет сигнал Advertise, либо данный сигнал отправляется где-то через 5-15 секунд после подключения к серверу.

Ноды же ведут себя более агрессивно, каждые 1-5/6-10/11-15 секунд отсылают широковещательное сообщение SearchGateway.
Собственно если подключен индикатор активности, видно, какая нода активна и кто кого слышит.

Собственно не важно, чтобы частоты совпадали абсолютно, погрешность по несущей в +-25 КГц допустима, если же погрешность больше 50 КГц, АПЧ может и не схватить.

Если же мерить абсолютно нечем, зашиваем в ноды частоты с шагом в 25КГц в полосе +-150КГц от центральной, и смотрим где схватятся.

wanvo
Сообщения: 164
Зарегистрирован: 30 сен 2013, 09:45
Откуда: Russia, Rostov-on-Don

Re: Умный дом по радиоканалу

Сообщение wanvo » 29 дек 2016, 23:01

При сборке конфигурации A1SQ10 эклипс ругается на отсутствие определения RFM69_IRQ_PIN
Если в файлике A1SQ10.h у дефайна RFM69_IRQ_PIN() убираю скобки, то конфигурация собирается.

Urbas81
Сообщения: 313
Зарегистрирован: 28 авг 2012, 14:22

Re: Умный дом по радиоканалу

Сообщение Urbas81 » 03 янв 2017, 14:00

Добрый день! Делаю mqtt клиента на esp12 который должен передавать значения в X13, значения в формате float, иногда в логах появляются такие ошибки:
/var/MD/e/t1.FromJson( , ) - No JSON content found and type 'System.Double' is not nullable. Path '', line 1, position 7.
19:55:10.83[W] /var/MD/e/t2.FromJson( , ) - No JSON content found and type 'System.Double' is not nullable. Path '', line 1, position 7.
19:55:10.92[W] /var/MD/e/t12.FromJson( �(�, ) - Unexpected character encountered while parsing value: . Path '', line 0, position 0.
из-за чего это может происходить? Нужно ли число вида 12.34 ставить в кавычки или может еще нужно символы конца строки указывать. Передаю 11 значений, часть передается корректно, а некоторые с ошибками, хотя упаковываются все числа одинаково.

Ответить