Permalänk
Medlem

DIY väderstations mottagare.

Det hela började med att vi inhandlade en väderstation på Clas Ohlson, en Cotech 36-7959 för att vara mer exakt.

En av funktionerna som jag tyckte verkade kul var att man kunde koppla in displayen via USB till datorn för att ladda ner datan som fanns sparad på den. Men enda sättet som detta gick att göra på var via något konstigt program som inte alls var kul. Tanken var att istället sätta en Raspberry Pi Zero på baksidan för att samla in data från displayen och sedan skicka till programmet WeeWX. Så jag började sniffa USB porten för att försöka lista hur den kommunicerade, men gav upp på det spåret.

Ett tag tänkte jag att jag skulle bygga ihop något med en Raspberry Pi 3B+ och en RTL-SDR dongel då jag tidigare hade testat och sett att det var möjligt att läsa av meddelanden med programmet rtl_433, men tyckte det var en lite tråkig lösning och av en slump så kom jag in på ett projekt där någon använde sig utav en liten transceiver vid namn RFM69 från HopeRF, för att avkoda meddelanden från en IKEA Sparsnäs elmätare/övervakare. Lät som ett kul projekt då även jag hade en sån elmätare från IKEA. Dessa små moduler var inte speciellt dyra och fanns dessutom för olika frekvenser, har minne av att jag även hittade någon som skrev att man eventuellt kunde använda dessa för att läsa av just väderstationer som sände på 433MHz. Så tanken blev att skapa en egen RPi Shield som kunde hantera båda dessa frekvens band, en 433MHz modul för väderstationen och en på 868MHz för IKEA Sparsnäs, men det kom även in en RTC med backup batteri och en Zigbee modul i designen.

Gjorde en design i KiCad som jag sen skickade efter att få tillverkad, vilket kom tillbaka med riktigt bra resultat.
Men kanske blir till att beställa en ny version då jag hade gjort några misstag.

Komponenter monterade på kortet

Kort monterad på Raspberry Pi i låda

Typ färdigt

Men hur skulle man kunna ställa in RFM69 för att kunna läsa meddelanden från väderstationen?
Då jag visste sen tidigare att rtl_433 kunde på något sätt avkoda signalen tillsammans med en rtl-sdr dongel, så började jag titta där, närmare bestämt i cotech_36_7959.c.

Filen gav mig mycket information om hur signalen var kodad, i detta fallet var det så kallad "On-Off-Keying" eller OOK, dvs den slår på och av vid en viss frekvens för att kunna skicka en "1" respektive "0". På detta användes dessutom Manchester kodning, vilket medför att biten kodas emellan 2-bitar, "01" -> "stigande" = "1", "10" -> "fallande" = "0". Men kan även vara tvärtom som denna modulen kodar/avkodar på, vilket även denna väderstation verkade skicka ut på :).

Då modulen uppfyllde båda dessa saker så tänkte jag att det bara var att ställa in på samma sätt som för rtl_433... Men så enkelt var det inte. Hade läst någonstans att väderstationen skickade ut ett meddelande ungefär var 16:e sekund, men i mitt fall så dök det bara upp skräp data i tid och otid, inte var 16:e sekund.
Synk värdet som rtl_433 verkade använda var 0x0140 vilket inte alls fungerade för mig. Men ibland kunde jag faktiskt få ut något som jag trodde var rätt, då det dök upp ungefär samtidigt som jag såg det riktiga meddelandet dyka upp i SDR# på samma frekvens.

Är inte helt hundra men tänker att detta synk värde (0x0140) som rtl_433 använder är förmodligen redan manchester kodat då programmet kan leta igenom en hel ström av data som är manchester kodad direkt. Men i mitt fall, vilket jag missade under lång tid och som stod i databladet , var att Manchester kodningen endast appliceras på meddelandet när preamble och synk värden är uppfyllda när man kör RFM69 modulen i så kallat "Packet Mode", vilket jag ville göra.

Ett giltigt meddelande från rtl_433 kunde vara detta. (De börjar även alltid med ett hex C)

c6d02c3b8b000084b12dfffbfb

da

meddelande med manchester kodning

checksum CRC-8

Detta gick inte längre då det kändes som om jag bara famlade i mörkret, så att säga. Dags att dra igång Universal Radio Hacker, URH och ta en titt på signalen.

En bit ser ut att vara ungefär 472μs, vilket i detta fallet blir 944 samples/symbol eller 1 bit = 944 samples.
Binära värden ser ju ut att vara 2-byte av preamble följt av en serie som ser ut att vara kodat med manchester, då det aldrig är mer än två "1" eller "0" i följd

Enklare att titta på meddelandet i hex form

aaaa

9996

95a699555669569a65955555555655966a696696aaaaaa6aaa6a65a8

preamble

synk värde

meddelande

Utifrån detta fick jag ut att jag som sagt hade en 2-byte av preamble, men även ett synk värde som jag kunde sätta till 0x9996 då det inte verkade ändra sig hur många meddelanden man än kollade på.
Med dessa värden började det dyka upp lite riktiga meddelanden ifrån modulen, men de stämde inte riktigt, inget hex C när man avkodade manchester.

8da0587716000109625bfff7f7

b4

meddelandet med manchester avkodat

checksum???

Det visade sig att mitt meddelande låg skiftad fel 1-bit åt vänster. Enkelt fixat

46d02c3b8b000084b12dfffb

fb

meddelandet skiftat 1 steg åt höger

checksum

Nästan rätt men den översta byten 0x46 är fel och inte 0xC6 som det borde vara. Detta berodde helt enkelt på att 0x96 som jag använder som en del av synk värdet försvinner från meddelandet, så skulle man manchester avkoda det värdet också så skulle man få 0x96 (1001 0110) -> 0x9 (1001), så LSB är det intressantaste där så på med en 0x01 i början och skiftar hela meddelandet till höger så blir det rätt.

Helt plötsligt gick det att avkoda och verifiera meddelanden från våran väderstation på min Raspberry Pi utan att jag behövde använda en RTL-SDR dongel.

Vad gör man med detta nu då?
Enklaste var ju som jag sett många andra använda är att skicka datan i json format till en MQTT server, som man sen kan försöka få WeeWx att lyssna på. Precis det jag gjort och det fungerar

2022-06-24 20:37:16 CRC-8 calc = 0xe0 OK ID 109: SUB_type: 0xc tBAT_Low: 0 TEMP RAW: 1115 TEMP C: 21.944444444444446 Humidity: 58% Rain mm: 0.0 Wind dir deg: 133 Light Lux: 131067 UV: 251 CRC: 0xe0 {"dateTime": 1656099436, "model": "Cotech-367959", "id": 109, "battery_ok": true, "outTemp": 21.944, "outHumidity": 58, "rain": 0.0, "windDir": 133, "windSpeed": 2.9, "windGust": 4.3} Start receiving 433MHz 2022-06-24 20:37:21 CRC-16 calc: 0x85d7 OK Valid package Seq 22949: Time now: Power: 568.1874229346486 W Total: 86.645 kWh Battery: 100% Power(raw): 3244 {"dateTime": 1656099441, "model": "IKEA Sparsnas", "sequence": 22949, "watt": 568.1874229346486, "total": 86.645, "battery": 100, "rssi": 0, "power": 3244, "pulse": 173290} Start receiving 868MHz

Jag har tyckt att det har varit ett kul projekt, och nästa steg är väl att bygga något så att jag kan börja ta in blixt data.

Länkar:
WeeWx
RFM69HW.pdf
rtl_433
cotech_36_7959.c
URH - Universal Radio Hacker
SDR#
EspSparsnasGateway

Lagt till en länk till programmet URH
Permalänk
Medlem

Va coolt, respekt!

Som gammal tekniker och radioamatör blir man ju helt tårögd när man ser ett välskrivet och väldokumenterat D.i.y. projekt som ditt här.

Jag gjorde nåt liknande ca. 7-8 år sen med Arduino:

Men inte så coolt som ditt Grattis med resultatet, och tack för att du delade med dig.

Permalänk
Medlem
Skrivet av JoOngle:

Va coolt, respekt!

Som gammal tekniker och radioamatör blir man ju helt tårögd när man ser ett välskrivet och väldokumenterat D.i.y. projekt som ditt här.

Jag gjorde nåt liknande ca. 7-8 år sen med Arduino:

https://i.imgur.com/R4diFxL.jpg

https://i.imgur.com/ZwZISEZ.jpg

Men inte så coolt som ditt Grattis med resultatet, och tack för att du delade med dig.

Tack så mycket
Kul att höra att det uppskattas.

Blir lite nyfiken på hur ditt projekt fungerar?
Vad var det för mottagare du använde?

Permalänk
Medlem
Skrivet av piGGen:

Blir lite nyfiken på hur ditt projekt fungerar?
Vad var det för mottagare du använde?

Min är inte så avancerat som din, den har ingen utomhus censorer, allt är internt, Fuktighets sensor, Clock modul, Barometer modul, Två temp sensorer (en i fukt modulen och en i Lufttrycks sensorn). Allt skräpat ihop på ett par timmar nån tråkig Lördag för många år sen

Men det är kul att se vi hade lite samma tankar "Jag vill göra en väderstation"

Permalänk
Medlem
Skrivet av JoOngle:

Min är inte så avancerat som din, den har ingen utomhus censorer, allt är internt, Fuktighets sensor, Clock modul, Barometer modul, Två temp sensorer (en i fukt modulen och en i Lufttrycks sensorn). Allt skräpat ihop på ett par timmar nån tråkig Lördag för många år sen

Men det är kul att se vi hade lite samma tankar "Jag vill göra en väderstation"

Tycker det låter avancerat :), dessutom data som jag inte samlar in.
Skickar du vidare din data till WeeWx också?

Blev lite sugen på att cada ett nytt pcb för att kunna även ta in den data... men en sån barometer sensor kan vara så liten som 2x2mm, om man inte köper ett breakoutboard. Men det ska nog gå.

Kanske blir som en egen liten väderdisplay, med en sån e-paper display

Permalänk
Medlem
Skrivet av piGGen:

Tycker det låter avancerat :), dessutom data som jag inte samlar in.
Skickar du vidare din data till WeeWx också?

Blev lite sugen på att cada ett nytt pcb för att kunna även ta in den data... men en sån barometer sensor kan vara så liten som 2x2mm, om man inte köper ett breakoutboard. Men det ska nog gå.

Kanske blir som en egen liten väderdisplay, med en sån e-paper display

Nej det gör jag inte, det var bara ett experiment på brödbordet, och sen tänkte jag - måste ju slänga ihop detta i en låda, och jag hade så många av dessa märkliga displays med större / mindre Matrix karaktärer (uppenbart riktat mot nån slags mätinstrument) men de var Hitachi kompatibla, med lite märklig adressering men det fann jag snabbt ut vad låg i minnet nånstans, jag har en tendens att köpa in surplus-components på auktioner och random ställe och se vad jag kan använda dom till, har en låda med väl 60 styck av de där speciella displays.

Jag köpte ett breakout board för barometer sensorn, den har även inbyggd temp. sensor, var inte så jättedyr, tror jag gav mindre än 2 dollars för den på eBay (du vet - den gång posten inte krävde pengar för att dra in moms på den + behandlings avgift, då blev allt för dyrt)

Det finns Arduino libraries för allt, man behöver inte koda egna, bara att lära hur "kommandon" för libraries funkar, de brukar implementeras i Arduino IDÈ när du importerar libraries, så är det bara att använda datan i ditt eget program, Arduino är underbart att arbeta med, hur lätt som helst. Jag gjorde en digitalradio på en halvtimme, dock var jag tvungen att göra eget break-out board till FM-radio chippen. (Digital, som i Digital Display och kontroll - inte DAB radio, det har jag inte gjord än så länge).

Och e-paper displays är fortfarande SVINDYRA, flera hundra spänn bara för ett lite två färgs display, jag brukar köpa in bulk av olika sorts komponenter, "ett display, en komponent här och där" är inte mig, jag gillar att få en galen idé mitt på natten, och då ska lådorna vara sprängfyllda och redo före min entusiasm har lagd sig (vilket händer inom en timme)

Yes...jag är lite smått galen

Permalänk
Skrivet av JoOngle:

Nej det gör jag inte, det var bara ett experiment på brödbordet, och sen tänkte jag - måste ju slänga ihop detta i en låda, och jag hade så många av dessa märkliga displays med större / mindre Matrix karaktärer (uppenbart riktat mot nån slags mätinstrument) men de var Hitachi kompatibla, med lite märklig adressering men det fann jag snabbt ut vad låg i minnet nånstans, jag har en tendens att köpa in surplus-components på auktioner och random ställe och se vad jag kan använda dom till, har en låda med väl 60 styck av de där speciella displays.

Jag köpte ett breakout board för barometer sensorn, den har även inbyggd temp. sensor, var inte så jättedyr, tror jag gav mindre än 2 dollars för den på eBay (du vet - den gång posten inte krävde pengar för att dra in moms på den + behandlings avgift, då blev allt för dyrt)

Det finns Arduino libraries för allt, man behöver inte koda egna, bara att lära hur "kommandon" för libraries funkar, de brukar implementeras i Arduino IDÈ när du importerar libraries, så är det bara att använda datan i ditt eget program, Arduino är underbart att arbeta med, hur lätt som helst. Jag gjorde en digitalradio på en halvtimme, dock var jag tvungen att göra eget break-out board till FM-radio chippen. (Digital, som i Digital Display och kontroll - inte DAB radio, det har jag inte gjord än så länge).

Och e-paper displays är fortfarande SVINDYRA, flera hundra spänn bara för ett lite två färgs display, jag brukar köpa in bulk av olika sorts komponenter, "ett display, en komponent här och där" är inte mig, jag gillar att få en galen idé mitt på natten, och då ska lådorna vara sprängfyllda och redo före min entusiasm har lagd sig (vilket händer inom en timme)

https://i.imgur.com/wKmk1lH.jpg

https://i.imgur.com/OTAbaX3.jpg

https://i.imgur.com/KzcUrun.jpg

https://i.imgur.com/x4uDvtC.jpg

Yes...jag är lite smått galen

Är du Sveriges "svar" på Dave Jones eller?

Sådan fin ordning (nästan i alla fall) hade jag på 90-talet på mina komponenter/grejor.
Numera liknar det mer och mer det här, här hemma, är jag rädd!

Du har säkert förklarat detta redan, men hur får du fram data från sensorn (mätstationen) på taket?
Jag köpte för cirka 6-8 år sedan en liknande väderstation från Kjell. Den har jag plockat ner, då den inte loggade mätvärden ordentligt. Sedan verkade allt vara proprietärt. Dvs. gick inte att få ut trafiken utanför "systemet".
-Skulle inte förvåna mig ett dugg om den är tillverkad på samma fabrik i Kina! Plockade också ner den, den var på ett maströr högst uppe på taket, för att jag inte ville "logga åskan" så att säga...

Cudos!

fixade länk rätt
Permalänk
Medlem
Skrivet av Networker:

Är du Sveriges "svar" på Dave Jones eller?

men hur får du fram data från sensorn (mätstationen) på taket?

Åh Gud... David Jones... han är duktig, extremt mkt. mera duktig än jag, men han är så arrogant att jag klarar inte av honom.

Men du överuppskattar min väderstation det är bara sensorer inbyggd i själva stationen, inga externa sensorer. Den har ingen mottagare för externa enheter, kunde ju förstås göra det med en simpel 433 MHz mottagare modul... och en avkodnings protokoll, men oh so lazy

Permalänk
Medlem
Skrivet av JoOngle:

Nej det gör jag inte, det var bara ett experiment på brödbordet, och sen tänkte jag - måste ju slänga ihop detta i en låda, och jag hade så många av dessa märkliga displays med större / mindre Matrix karaktärer (uppenbart riktat mot nån slags mätinstrument) men de var Hitachi kompatibla, med lite märklig adressering men det fann jag snabbt ut vad låg i minnet nånstans, jag har en tendens att köpa in surplus-components på auktioner och random ställe och se vad jag kan använda dom till, har en låda med väl 60 styck av de där speciella displays.

Jag köpte ett breakout board för barometer sensorn, den har även inbyggd temp. sensor, var inte så jättedyr, tror jag gav mindre än 2 dollars för den på eBay (du vet - den gång posten inte krävde pengar för att dra in moms på den + behandlings avgift, då blev allt för dyrt)

Det finns Arduino libraries för allt, man behöver inte koda egna, bara att lära hur "kommandon" för libraries funkar, de brukar implementeras i Arduino IDÈ när du importerar libraries, så är det bara att använda datan i ditt eget program, Arduino är underbart att arbeta med, hur lätt som helst. Jag gjorde en digitalradio på en halvtimme, dock var jag tvungen att göra eget break-out board till FM-radio chippen. (Digital, som i Digital Display och kontroll - inte DAB radio, det har jag inte gjord än så länge).

Och e-paper displays är fortfarande SVINDYRA, flera hundra spänn bara för ett lite två färgs display, jag brukar köpa in bulk av olika sorts komponenter, "ett display, en komponent här och där" är inte mig, jag gillar att få en galen idé mitt på natten, och då ska lådorna vara sprängfyllda och redo före min entusiasm har lagd sig (vilket händer inom en timme)

https://i.imgur.com/wKmk1lH.jpg

https://i.imgur.com/OTAbaX3.jpg

https://i.imgur.com/KzcUrun.jpg

https://i.imgur.com/x4uDvtC.jpg

Yes...jag är lite smått galen

WOW vilken härlig samling . Har inte alls samma plats.

Jo de var dyra de edisplayerna, ca 170kr för den storleken jag tyckte kändes bra, men tror man fick en display som klarade 3 färger till det priset... Blir kanske ett senare köp.

Det finns ju mycket breakoutboards för alla sensorer, men tänkte det skulle bli lite bökigt att få plats med allt i den lilla lådan jag tänkte använda. Blir bara wifi modulen som hamnar själv.

Jo arduino är jäkla bra faktiskt, använt det mycket. Kör med det nu faktiskt, för att testa sensorn för blixtar.... Men har inte fått några direkta mätvärden ännu då det inte åskat något.

Blir sugen på att höra mera om din radio.

Permalänk
Medlem
Skrivet av piGGen:

Blir sugen på att höra mera om din radio.

Jag försökte att hitta brödbordet med experimentet kvar (brukar bara ta ett nytt brödbord och fortsätta på dom sen )
Men fann det inte, däremot har jag flera radio chips kvar i lådorna, den heter 5807.

5807 Datasheet.

Stillbild från en gammal video jag gjorde live medan jag byggde den.

Varför byter min hjärna ut numren varje gång...argh!