Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Протокол за безжичен сензор
http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=12616
Страница 1 от 2

Автор:  mash [ Чет Яну 16, 2014 11:29 am ]
Заглавие:  Протокол за безжичен сензор

Здравейте. Имам една мини метеостанция за измерване на външна и вътрешна температура на фирмата "ТСМ". Дисплея ми е частично повреден и не се вижда добре вътрешната температура. Реших да си направя моя такава с един пик, но преди това се заех да разбера какво излъчва външния сензор. Свързах към изхода на един приемник на 433MHz line in на PC и записвах пакетите за различните температури. След това разглеждах получените диаграми и на пръв поглед забелязах, че:
1. Единицата е с продължителност на импулса 400us, а на нулата 980us.
2. Сигнала се предава по два пъти с кратка пауза между пакетите.
3. При всички отделни температури се вижда, че до една част от пакета всичко е еднакво.
4. При една от температурите батериите на сензора не контактуваха добре и светна индикатора за слаба батерия. Това даде промяна в кода от еднаквата част.
5. При една част от температурите дължината на пакетите е различна.
Опитах се да намеря някакво описание на тези протоколли, но това което намерих е различно от това, което излъчва моята метеостанция. Ако някой има информация по какъв начин да разчета пакетите би било добре да сподели :)
Прилагам записаните от мен пакети със съответните температури.

Прикачени файлове:
temp_TCM.doc [21 KiB]
271 пъти

Автор:  didofen [ Чет Яну 16, 2014 2:48 pm ]
Заглавие:  Re: Протокол за безжичен сензор

дисплейчето ЛЦД ли е? смисъл ако има вариант да вземеш нивата директно от сегментите, или управлението на дисплея

Автор:  mash [ Чет Яну 16, 2014 3:58 pm ]
Заглавие:  Re: Протокол за безжичен сензор

Ето изглед на изделието :)
По принцип е възможно, но ми се иска да си направя моя станция.

Прикачени файлове:
DSCF1172.JPG
DSCF1172.JPG [ 1.69 MiB | Прегледано 4347 пъти ]

Автор:  ike [ Чет Яну 16, 2014 4:20 pm ]
Заглавие:  Re: Протокол за безжичен сензор

Трябва да похакваш: http://bertrik.sikken.nl/433mhz/

Автор:  mash [ Чет Яну 16, 2014 4:51 pm ]
Заглавие:  Re: Протокол за безжичен сензор

Това ясно, ама пълен батак :) ще се опитам да хвана нещо смислено от някъде.

Прикачени файлове:
1.JPG
1.JPG [ 698.86 KiB | Прегледано 4326 пъти ]

Автор:  didofen [ Пет Яну 17, 2014 11:31 am ]
Заглавие:  Re: Протокол за безжичен сензор

идеята ми беше да хванеш управлението на самия дисплей и да си направиш все едно негов дубльор :) ама предполагам е също строго специализиран, и там е трудно да се захапе по лентовия кабел

Автор:  mash [ Пет Яну 17, 2014 11:49 am ]
Заглавие:  Re: Протокол за безжичен сензор

Разбрах те, но пак казвам искам да си направя моя станция, която да измерва и други величини. При наличие на готов сензор не ми се иска да си правя мой нов. И за това е цялата тази хамалогия :)
До тук всички протоколи, които съм разгледал не съвпадат с моя. Но продължавам да търся.

Автор:  RM [ Нед Яну 19, 2014 1:28 pm ]
Заглавие:  Re: Протокол за безжичен сензор

Пробвай така
Код:
9.8     00000000000000000110110110001010010101000010100010001001001101000100101010000000100110101011010010010000000000000
9.8 0x00 0x00 0xDB 0x14 0xA8 0x51 0x12 0x68 0x95 0x01 0x35 0x69 0x20 0x00
9.8 NUL NUL 219 DC4 168  81(Q)  DC2  104(h) 149 SOH 53(5) 105(i)  32(Space) NUL

Може да не е чак толкова секретно :)
При промяна на някой параметър би трябвало да хванеш къде какво става

Автор:  mash [ Вто Яну 21, 2014 3:13 pm ]
Заглавие:  Re: Протокол за безжичен сензор

И така пробвах ама ... нищо получават се едни стойности, които не вършат никаква работа.

Автор:  mash [ Чет Фев 06, 2014 12:01 pm ]
Заглавие:  Re: Протокол за безжичен сензор

И така..... Стигнах до момента с писането на код за декодиране на полученият сигнал от сензора. Някой може ли да ми подскаже как най-рационално да чета генерираните импулси? т.е. дали с използването примерно на таймер 1. или някакъв алгоритъм с буфериране?!!?
Използвам 16F877А.

Автор:  valioman [ Пет Фев 07, 2014 12:22 pm ]
Заглавие:  Re: Протокол за безжичен сензор

А разбра ли кое е единица и кое нула и кое е байт ?
Иначе най-лесно е според времената да налучкаш някаква скорост и да ползваш UART-a било то софтуерен или хардуерен :)

Автор:  CarBeta [ Пет Фев 07, 2014 3:41 pm ]
Заглавие:  Re: Протокол за безжичен сензор

Горе е споменато, че 1 и 0 са с различна продължителност в микросекунди. Та с UART-a няма да стане.

С таймер 1 става. В началото на импулса го пускаш и в края го спираш. Сравняваш продължителността дали е 1 или 0 и буташ в някой регистър с RRF или RRL и така 14 байта.

Автор:  Vesko [ Пет Фев 07, 2014 3:48 pm ]
Заглавие:  Re: Протокол за безжичен сензор

CarBeta написа:
Горе е споменато, че 1 и 0 са с различна продължителност в микросекунди. Та с UART-a няма да стане.

С таймер 1 става. В началото на импулса го пускаш и в края го спираш. Сравняваш продължителността дали е 1 или 0 и буташ в някой регистър с RRF или RRL и така 14 байта.

Възможно е да стане и през УАРТ-а. Ако за импулса с най-голяма продължителност изчислиш скоростта така, че да получиш 0х00, то при късата продължителност ще е число с 1ци в старшите битове. Така ще може да ги разграничаваш.

Автор:  CarBeta [ Пет Фев 07, 2014 3:59 pm ]
Заглавие:  Re: Протокол за безжичен сензор

Абе за няколко бита може и да стане, ама тука са 112. Не мисля, че ще ги хване всичките с тоя трик. А и паузите не са дефинирани. Аз бих го направил с бит-банг и таймер 1.

Автор:  Vesko [ Пет Фев 07, 2014 4:14 pm ]
Заглавие:  Re: Протокол за безжичен сензор

CarBeta написа:
Абе за няколко бита може и да стане, ама тука са 112. Не мисля, че ще ги хване всичките с тоя трик. А и паузите не са дефинирани. Аз бих го направил с бит-банг и таймер 1.

112 байта не е много трудно да се получат през уарт-а. А в момента на прекъсване може да запомняш към всеки байт и времето на получаване, така ще имаш и разстоянието между тях. Е и прекъсване по всеки фронт също би свършило работа.

Това с уарт-а лично бих го предпочел, защото ти трябва само УСБ->УАРТ преходник и само ПЦ софтуер.

Страница 1 от 2 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/