project beschijving (Toestel of techniek)

door loek @, Exloo (Drenthe), 04-02-2014, 16:04 (4043 dagen geleden)
Gewijzigd door loek, 04-02-2014, 16:12

Hallo forum lezers.

Na diverse klokken gemaakt te hebben met alleen datum/tijd was het nu tijd om iets te doen met de meegestuurde weersvoorspelling. Deze weerberichten worden (zwaar) gecodeerd meegestuurd. Ik heb gekozen om het signaal zelf te decoderen en maak daarbij gebruik van de programmeertaal basic.

In totaal had zijn er 4700 programma regels gemaakt.
Het DCF-signaal geeft per seconde een digitale 1 of 0 door de maximale tijd hiervoor is 200 ms. Per seconden is er dus 800 ms beschikbaar voor decoderen en presentatie. Als processor is de AT MEGA M644P gebruikt. De processor heeft 4* 8 poorten.

[image]

Het gecodeerde signaal komt binnen via 14 ongebruikte seconde. Drie van deze blokken vormen een bericht voor een land/stad. Na decodering zijn dit 21 bits met een weersvoorspelling.
Er worden berichten/voorspellingen gemaakt voor de dag/avond en dat voor 4 dagen. Het aantal landen waarvoor weerberichten gemaakt worden is 59.
Na 24 uur is er voor een land alle benodigde berichten binnen. Dus voor de dag/avond en voor 4 dagen. Is een bericht van Nederland fout dan wordt de voorspelling van de dag daarvoor gebruikt. Alle fout ontvangen berichten worden opgeteld en op een scherm weergegeven. Zo kan de kwaliteit van de ontvangst bepaald worden.

Hoe de codering/decodering plaats vindt, kan ik niet vertellen ik denk dat daar copyright op van toepassing zijn. Ik zal dus ook mijn programma nooit publiceren.

Als display heb ik gekozen voor (al weer) een antiek soort van Siemens type DL2416T. Totaal zijn er 28 displays met 4 karakters gebruikt. De 3 *4 karakters op de eerste regel geven de menukeuze weer. Op de overige regels komen de resultaten. Als alle karakters aan zijn dan loopt er 1,5 A bij 5 Volt. Na 3 minuten wordt het display automatisch uitgeschakeld om het stroomverbruik te beperken.

De 28 displays zijn in een matrix met elkaar doorverbonden en worden, via rij, kolom, karakter, aangestuurd met 28 poorten van de microprocessor.


[image]


[img]images/uploaded/2014020416430852f10a8c0c753.jpg[/img

[image]

[image]

Rechts van de 3*4 karakters op de eerste rij zitten twee touch toetsen. Hiermee kan je naar voren en achteren bladeren in het menu (12 mogelijkheden).

Uiteindelijk komt er een verstrooischerm voor het display de touch toetsen werken door dit scherm heen. Bij benaderen van een touch toets licht de LED in het midden van de toets op.

Om de zaak praktisch te houden komt bij de eerste menukeuze naar achteren het overzicht van de maan en zon opkomst tijden op het display.

Is gekozen voor Zon en maan tijden dan verschijnt de opkomst en ondergang tijden van de maan en zon. Deze zijn gebaseerd op de coördinaten waar ik woon. Ook de zichtbaarheid van de maan in % wordt weergegeven. Deze programma onderdelen heb ik niet zelf geschreven maar vertaald van C-programma’s naar Basic.

[image]

Bij een tweede keuze naar achteren komt de huidige datum/tijd.

[image]

Bij de eerste keuze naar voren komt de weersvoorspelling voor de dag en daarna de avond en daarna morgen, etc. zie de foto’s aan het eind van dit verhaal

De processor kijkt tijdens de eerder genoemde beschikbare tijd van 800 ms of er een toets is ingedrukt. Is er nog voldoende tijd over dan wordt de gehele taak uitgevoerd, anders wordt alleen de menutekst geplaatst en wordt gewacht op de volgende seconde om de rest uit te voeren.


De ontvangst kwaliteit is bij het DCF signaal erg belangrijk. Bij de presentatie van de klok/datum kan je nog wel iets bedenken (via een software klok) als de ontvangst een paar minuten fouten heeft ontvangen.

Bij het verzamelen van het weerbericht voor een land (bijvoorbeeld Nederland) is een ontvangen fout een stuk ernstiger. Immers verdeeld over de dag komen er 8 berichten. En bij foute ontvangst moet je 24 uur wachten voor het volgende bericht.

Bij vorige klok ontwerpen werkte de ontvanger nooit in de omgeving van de klok. Er kwamen vaak te veel stoorsignalen van bijvoorbeeld de nixiebuizen af. Ik had gehoopt dat dit met het LED-display wel mee zou vallen maar helaas! In ieder display-IC zit een oscillator en totaal is er zoveel straling dat de DCF-ontvanger daar last van heeft.

Experimenten met een ontvanger/zender op 445 MHz zijn mislukt. Dus ergens op een goede plaats voor de DCF-ontvanger een koppeling met een 445MHz zender. En de 445 ontvanger in het weerstation. Helaas blijken de 445MHz zender/ontvanger niet goed te kunnen werken met lage data snelheden.

Ik heb nu twee wireless module 2,4 GHz transceiver besteld. Deze modulen moet je aansturen met een microprocessor en er zijn dan veel mogelijkheden voor data overdracht. Misschien wordt dat de oplossing. Dus ergens een goede plaats voor de DCF-ontvanger en via 2,4GHz overal in huis via kleine ingebouwde 2,4GHz weer het DCF-signaal storing vrij ontvangen

Hierna zie je de overige plaatjes van de menukeuze:
Bij de weersvoorspelling komt op de onderste regel eventuele extra waarschuwingen te staan zoals: zware storm/ straling,etc.

Menukeuze weervoorspelling vandaag

[image]


Menukeuze weervoorspelling vanavond

[image]

Menukeuze weervoorspelling morgen

[image]


Menukeuze weervoorspelling morgenavond

[image]

Menukeuze weervoorspelling woensdag

[image]

Menukeuze weervoorspelling woensdagavond

[image]


Menukeuze weervoorspelling donderdag

[image]

Menukeuze weervoorspelling donderdagavond

[image]

De laatste twee menu keuzen zijn eigenlijk alleen nodig geweest tijdens het bouwen.
Je kan de kwaliteit van het DCF-signaal mee bepalen en de werking van de decoder controleren.

Menukeuze DCF-ONTV_STA
Dit display geeft een beeld van de ontvangstatus.
[image]

2e regel:
Voor een weerbericht zijn altijd 3 aaneengesloten blokken van 14 bits nodig. Lukt dit niet dan is er een blokfout (BLK).

3e regel:
Bij iedere minuut wordt een pariteitcontrole uitgevoerd. Bij de rij PAR worden de goede en fouten pariteit waarde geteld


4e regel :
Een foute pariteit zal ook een CRC fout tot gevolg hebben (fout in één van de 3*14 bits) voor het gedecodeerde weerbericht. In de Rij CRC worden de fouten en goede CRC geteld.

5e en 6e regel:
In de rij daaronder zie je de dagen (MA,DI, etc.) waarvoor de decoder voor Nederland de juist (J) of fout (0) waarde gevonden heeft. Is er een waarde van de vorige dag beschikbaar dan staat er een (G). Menukeuze CONTRO-GETA

[image]

2e tot 5e regel :
Op dit display zijn de gedecodeerde 22 bits waarde in HEX te zien voor alle weerberichten.

Met vriendelijke groet,
Loek

project beschijving

door Maarten Bakker ⌂ @, Haarlem/Delft, 04-02-2014, 17:07 (4043 dagen geleden) @ loek

Knap stukje werk! Daar moet de nodige tijd in zijn gaan zitten, zowel qua software als qua hardware.

project beschijving

door franshack @, Hengelo ov, 04-02-2014, 17:31 (4043 dagen geleden) @ Maarten Bakker

Chapeau, inderdaad een knap stukje werk :) :) :)
en zo blijft de elektronica als hobby bestaan :||:

--
The boldness of ignorance:
'I have split atoms, but no energy was released'.
Tesla

project beschijving

door Sietze Osinga @, Koekange, 04-02-2014, 18:07 (4043 dagen geleden) @ loek

Dit vind ik klasse.Chapeau!
Groeten,
Sietze.

project beschijving

door petrus bitbyter @, Rotterdam, 05-02-2014, 08:34 (4043 dagen geleden) @ loek

Een Project met een grote P.

Maarre, van een programma dat je zelf geschreven hebt, heb je zelf de auteusrechten. Allicht heb je informatie gebruikt uit een document waar wel auteursrecht van anderen op rust maar dat kun je wel gebruiken. Tenzij je een non-disclosure overeenkomst hebt getekend of je het document hebt gestolen bijvoorbeeld. Dat eerste heb ik wel eens bij de hand gehad en één van de regels was dat ik de sourcecode van het (test)programma niet mocht publiceren. Uiteraard mag je een document waar auteursrecht op rust niet verspreiden/publiceren zonder toestenmming van de rechthebbende.

petrus bitbyter

project beschijving

door Maarten Bakker ⌂ @, Haarlem/Delft, 05-02-2014, 10:46 (4043 dagen geleden) @ petrus bitbyter

Het gaat hier kennelijk om reverse-engineering van een protocol. Dat opzich is auteursrechtelijk nadrukkelijk toegestaan.

Hoe het zit met het verspreiden van wat inderdaad in principe je eigen werk is, maar wel gebaseerd op jouw interpretatie van een gesloten protocol durf ik niet met 100% zekerheid te zeggen, maar het gebruik is in elk geval legaal.

project beschijving

door loek @, Exloo (Drenthe), 05-02-2014, 18:32 (4042 dagen geleden) @ petrus bitbyter
Gewijzigd door loek, 05-02-2014, 18:34

Hallo Petrus,

Ik weet niet hoe het precies zit, maar het bedrijf dat de weersvoorspellingen maakt is ook het bedrijf dat het decoder IC op de markt brengt. Dit IC zit in weerstations en bij verkoop daarvan verdienen zij daar aan.

Er zijn pogingen gedaan om dit IC los te kopen, maar dan ging alleen bij 1000 stuks of meer. Je kan wel makkelijk het IC uit een weerstation halen en het in je eigen schakeling gebruiken. Daar is ook veel documentatie over te vinden op internet. Er is een Duitse site die waar alle gedecodeerde berichten de hele dag door beschikbaar zijn. Daar wordt ook gebruik gemaakt van een IC dat uit een weerstation is gehaald. Op een beurs had ik ook vo0or 2,50 twee weerstations van het merk Cresta gekocht. Het was me eer te na om de IC daar uit te halen.

Het heeft me meer dan 3 maanden gekost (5 uur per dag soms) om de code te kraken. Er zitten bijvoorbeeld 16 sleutels in die per minuut weer anders kunnen zijn. Ook zijn er 4 tabellen nodig die absoluut nodig zijn om de sleutels te kunnen maken. Al met al een leuke klus. Uiteindelijk is het gelukt en ook nog in basic.
Sommige vinden dit een "laagwaardige taal", maar je ziet alles kan er mee.

Het programma wat ik geschreven heb is uiteraard wel van mij, maar ik denk dat publicatie problemen gaat geven. Immers je gaat iets verspreiden wel/of niet met eigenbelang dat gebruik maakt van werk(in dit geval weersvoorspellingen) die door een ander gemaakt worden. Dus heb ik besloten nooit dit programma te publiceren.

Het totale doel van dit project was toch van zou dit lukken. Mijn volgende uitdaging is het namaken van een draaispoel meter.

Het uitgangspunt is dat er steeds meer meetapparaten komen met een defecte draaispoel meter. Als voorbeeld neem ik de AVO buizentester type 160.

Er zijn beeldschermpjes in kleur beschikbaar die dezelfde afmetingen hebben als de schaal van deze meter. Ook zijn er zeer scherpe afdrukken beschikbaar van deze schalen. Het moet dan toch mogelijk zijn om een meter na te bouwen met gebruik van een microprocessor en de daar in aanwezige A/D omzetter.

Het geheel is zo klein dat dit in de oude meterkast zou moeten passen.
Je zou dan een soort universele meter kunnen maken. Dus laden van type schaal en laden van de gevoeligheid. Een nieuwe draaispoel meter (ze worden nog gemaakt) kost ongeveer 250 Euro. Aan onderdelen met een elektronische meter ben je dit zeker niet kwijt. Er zijn wel digitale (analoge) meters in de handel maar deze zijn erg grof en duur.

Dus dat is mijn nieuwe uitdaging.


Met vriendelijke groet,

Loek

powered by my little forum