Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > OpenWRT/LEDE

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.04.2015, 16:40   #41
khseal
Senior Member
 
Регистрация: 19.09.2014
Сообщений: 220
Вес репутации: 0
khseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of light
По умолчанию Re: Подключаем китайскую метеостанцию

Цитата:
Честно говоря на вход я их не подключал, использовал для подключения по i2c экрана 1602, и без экрана, так чисто включил и выключил.
Ясно, а я почитал как сделать свой драйвер к gpio и понял почему многие собирают такие вещи на ардуине. Проблема состоит даже не в том, чтобы написать драйвер, а в том чтобы это все правильно скомпилировать этим жестоким кроссплатформенным набором.
P.S
С компиляцией разобрался, осталось написать драйвер.

Последний раз редактировалось khseal; 26.04.2015 в 22:07.
khseal вне форума   Ответить с цитированием
Старый 25.05.2015, 16:44   #42
khseal
Senior Member
 
Регистрация: 19.09.2014
Сообщений: 220
Вес репутации: 0
khseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of light
По умолчанию Re: Подключаем китайскую метеостанцию

Цитата:
SI4432 Wireless (режим приемник или передатчик 433Мг) - у него селективность наверника получше, на 150метров говорят дальность. Там и gpio есть, скорее всего не подойдет там по spi идут данные
Читал про этот передатчик. Штука хороша если надо сделать линк.Проблема в том, что у него другая модуляция и он вряд ли будет принимать нормально сигнал от передатчика погодной станции.

Драйвер приема данных через gpio для ядра написан, но реализация пока оставляет желать лучшего. Купил роутер программисту, который занимается именно написанием этого драйвера, так дело пойдет быстрее.
khseal вне форума   Ответить с цитированием
Старый 25.05.2015, 18:02   #43
rapid
Member
 
Регистрация: 20.11.2013
Адрес: Брянск
Сообщений: 57
Вес репутации: 0
rapid is an unknown quantity at this point
По умолчанию Re: Подключаем китайскую метеостанцию

Сигнал от передатчика погодой станции - OOK модуляция. С такими сигналами должен работать чип CC1101 и ему подобные. Но там полсотни конфигурационных регистров и SPI интерфейс. И еще там можно устанавливать полосу пропускания приемного тракта, до 800 кГц. Думаю, что китайские схемы генераторов не термостабилизированы и могут возникнуть проблемы.
rapid вне форума   Ответить с цитированием
Старый 25.05.2015, 21:17   #44
khseal
Senior Member
 
Регистрация: 19.09.2014
Сообщений: 220
Вес репутации: 0
khseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of light
По умолчанию Re: Подключаем китайскую метеостанцию

Цитата:
Сигнал от передатчика погодой станции - OOK модуляция. С такими сигналами должен работать чип CC1101 и ему подобные. Но там полсотни конфигурационных регистров и SPI интерфейс. И еще там можно устанавливать полосу пропускания приемного тракта, до 800 кГц. Думаю, что китайские схемы генераторов не термостабилизированы и могут возникнуть проблемы.
В целом и простенький китайский приемник справляется с этой задачей. Если бы удалось расшифровать crc посылки моего передатчика от погодной станции, все было бы в шоколаде. А так пришлось делать подобие crc из говна и палок.
Проблема только в том, что питание организовать сложно без помех. Пока приходится питать приемник от отдельного аккумулятора. Это единственный минус всей конструкции.
khseal вне форума   Ответить с цитированием
Старый 31.05.2015, 23:01   #45
khseal
Senior Member
 
Регистрация: 19.09.2014
Сообщений: 220
Вес репутации: 0
khseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of light
По умолчанию Re: Подключаем китайскую метеостанцию

В итоге заказал еще один китайский приемник но уже с супергетеродином. Плюс у него есть встроенная функция стендбая.
Драйвер для ядра написан, буду завтра тестить.
Хотя хочется в драйвере еще irq заюзать.
khseal вне форума   Ответить с цитированием
Старый 26.06.2015, 03:57   #46
khseal
Senior Member
 
Регистрация: 19.09.2014
Сообщений: 220
Вес репутации: 0
khseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of light
По умолчанию Re: Подключаем китайскую метеостанцию

Приемник с супергетеродином без проблем работает от питания роутера.
Осталось допинать программиста, чтобы он дописал нормально софт для приемника. Сейчас в принципе все работает, но сделано это из говна и палок.
khseal вне форума   Ответить с цитированием
Старый 18.09.2015, 13:19   #47
khseal
Senior Member
 
Регистрация: 19.09.2014
Сообщений: 220
Вес репутации: 0
khseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of light
По умолчанию Re: Подключаем китайскую метеостанцию

Так программист мне и не дописал софтину для обработки данных до комфортного юзабельного состояние. Поэтому выкладываю исходники стабильной, но плохо юзабельной версии без драйвера, возможно кому-то пригодится.
Основные косяки, это отсутствие нормального дебаг режима для определения id датчика и невозможность изменения id датчика в программе через конфиг.
По железу советую использовать приемник 433мгц с супергетеродином.
http://www.ebay.com/itm/Super-hetero...item2a4a35465d
Программа имеет конфиг который руками надо положить в /etc/
Вот примерное содержание рабочего конфига и расшифровка значений
int.conf
Номер gpio на котором висит датчик
PIN 29
Задержка опроса гпио, чем больше тем меньше нагрузка, но данные менее точные.
SEC 0
NSEC 120000
Буфер данных.
MAXBUFF 100000
Длинна импульса в единицах. Т.е. если идет подряд две 11 или больше это считается за импульс. Количество зависит от скорости опроса.
MINPULSE 2
Интервал между импульсами от 10 до 20 нолей. Т.е. есть такой сигнал
1100000000000011. Это считается логическим нулем.
SHORT_MIN 10
SHORT_MAX 20
Интервал между импульсами логической единицы .
LONG_MIN 20
LONG_MAX 35
Интервал с которого начинается передача с датчика, плюс этот интервал разделяет посылки. Всего посылок с этого датчик 4 штуки. Из них выбирается любая валидная если принялся правильно ID
LONGER_MIN 50
LONGER_MAX 75

Включить или выключить логгирование. Пишет логи в
/var/log/pulsepos.log Позиция импульсов. (Бесполезны лог)
/var/log/raw.log Лог буфера, в котором возможно была посылка.
LOGGER 0

В этой конструкции исходного кода проверяется id датчика
int product(int n, int *pack) {
int id[] = {0,0,0,1,0,1,1,1};
Т.е. посылка должна начинаться с этих битов тогда она будет валидна. Id моего датчика меняется после замены батареек. Основная проблема что после смены батареек нужно перекомпилировать данную программу
Вот пример посылки из буфера
Цитата:
1111000000000000000000000000000000000000 0000000000000000000000000001111101000000 0000011110000000000000011110000000000000 1111000000000000000000000000000001111000 0000000000111100000000000000000000000000 0001111000000000000000000000000000011110 0000000000000000000100000001111000000000 1000111111000000000000111000000000000001 1110000000000000011110000000000000000000 0000000001111000000000000000000000000000 0011100000000000000000000000000000111100 0000000000000000000000000011110000000000 0000111100000000000000000000000000001111 0000000000000000000000000000011110000000 0000000000000000000011100000000000000111 1000000000000001111000000000000011110000 0000000000111000000000000001111000000000 0000011100000000000000111100000000000000 0000000000000011110000000000000000000000 0000000111100000000000000111000000000000 0000000000000000011110000000000000000000 0000000000111000000000000001111000000000 0000011110000000000000111100000000000000 0000000000000001111000000000000000000000 0000000000000000000000000000000000000000 0001111000000000000011110000000000000111 0000000000000011110000000000000000000000 0000000111000000000000001111000000000000 0000000000000000111100000000000000000000 0000000001111000000000000000000000000000 0111100000000000000111000000000000001111 0000000000000011110000000000000111100000 0000000000000000000000011110000000000000 0000000000000000111100000000000000000000 0000011100000000000000000011110000000000 1111000000000000000000000000000001110000 0000000000000000000000000111000000000000 0000000000000000011110000000000000011100 0000000000001111000000000000001110000000 0000000111100000000000000111100000000000 0001110000000000000011110000000000000000 0000000000000111000000000000000000000000 0000011110000000000000011100000000000000 0000000000000001110000000000000000000000 0000000011100000000000000111100000000000 0001110000000000000011100000000000000000 0000000000000111000000000000000000000000 0000000000000000000000000000000000000000 0111000000000000001111000000000000001110 0000000000000111100000000000000000000000 0000011100000000000000011100000000000000 0000000000000001110000000000000000000000 0000000111000000000000000000000000000001 1110000000000000011100000000000000111100 0000000000011110000000000000011100000000 0000000000000000000001110000000000000000 0000000000000111100000000000000000000000 0000001110000000000000000000000000000011 1100000000000000111000000000000000000000 0000000011110000000000000000000000000000 0111000000000000000000000000000001111000 0000000000011100000000000000011100000000 0000001110000000000000011100000000000000 1111000000000000001110000000000000001110 0000000000000000000000000000111100000000 0000000000000000000011110000000000000111 1000000000000000000000000000001110000000 0000000000000000000000111100000000000000 1110000000000000011110000000000000011100 0000000000000000000000000001111000000000 0000000000000000000000000000000000000000 0000000000000001111000000000000001110000 0000000000111000000000000000111000000000 0000000000000000000111000000000000001111 0000000000000000000000000000011100000000 0000000000000000000001110000000000000000 0000000000000111100000000000001111000000 0000000011100000000000000011100000000000 0001111000000000000000000000000000001110 0000000000000000000000000000111100000000 0000000000000000000001110000000000000000 0000000000000111100000000000000111000000 0000000000000000000000011100000000000000 0000000000000001111000000000000000000000 0000000111100000000000001111000000000000 0011100000000000000111100000000000000111 1000000000000001110000000000000011110000 0000000001110000000000000000000000000000 0111000000000000000000000000000001111000 0000000000011100000000000000000000000000 0001111000000000000000000000000000001110 0000000000000111000000000000001110000000 0000000111100000000000000000000000000000 1111
Итак, первым идет 1111000000000000000000000000000000000000 00000000000000000000000000011111. Единицы это импульс jот датчика. Все что больше двух последовательных единиц считается импульсом.
Это у нас LONGER промежуток, он находится в начале передачи и между посылками. С него программа начинает анализировать данные.
Дальше идет 1111101000000000001111. Одинокая единица это помеха. Это логический ноль т.е. SHORT промежуток.
А 1111000000000000000000000000000001111 это LONG промежуток и логическая единица.
В начале посылки должен формироваться ID в виде 00010111 тогда наша посылка становится валидной.
К сожалению CRC датчика расшифровать не удалось поэтому его пришлось делать из гавна и грязи на bash скриптах.
В итоге вывод программы выглядит так
Items: 36 -> 000101110100011011010000011001111011
Temp 18.2 Hum 74
Если есть какие-то вопросы задавайте, постараюсь ответить.
Вложения
Тип файла: rar receiver433n.rar (3.6 Кб, 103 просмотров)

Последний раз редактировалось khseal; 22.09.2015 в 03:41.
khseal вне форума   Ответить с цитированием
Старый 08.12.2015, 12:29   #48
khseal
Senior Member
 
Регистрация: 19.09.2014
Сообщений: 220
Вес репутации: 0
khseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of light
По умолчанию Re: Подключаем китайскую метеостанцию

Вот что получилось в итоге =)
http://kodabra.dyndns.org/stats/
khseal вне форума   Ответить с цитированием
Старый 12.12.2015, 21:31   #49
khseal
Senior Member
 
Регистрация: 19.09.2014
Сообщений: 220
Вес репутации: 0
khseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of light
По умолчанию Re: Подключаем китайскую метеостанцию

Как вариант, теперь с датчиков можно снимать данные SDR примеником, но он ест много оперативной памяти и грузит процессор на 50%

Последний раз редактировалось khseal; 12.12.2015 в 21:53.
khseal вне форума   Ответить с цитированием
Старый 14.12.2015, 03:57   #50
khseal
Senior Member
 
Регистрация: 19.09.2014
Сообщений: 220
Вес репутации: 0
khseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of lightkhseal is a glorious beacon of light
По умолчанию Re: Подключаем китайскую метеостанцию

Вот еще один человек сделал библиотеку для работы с беспроводными датчиками BL999 для Arduino
Вот ссылка https://github.com/sprilukin/lib_BL999
Его работа пригодится.
khseal вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 4 (пользователей: 0 , гостей: 4)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 18:50. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика