Weerstation  Huizen

Het weer in Huizen

Bliksem Detector.

In het verleden ben ik al eens bezit geweest met de bouw van een bliksemdetector. Deze detector heeft een aantal jaren dienst gedaan maar ik heb hem na mijn verhuizing in 2007 niet meer opnieuw opgebouwd. Wel heb ik er een monitor module voor gemaakt en een aangepaste kleinere richtantenne voor gemaakt. Die doet op dit moment weer dienst bij mij op het weerstation. Het nadeel van dit systeem is dat het een draadverbinding moet hebben met een computer om de data weer te kunnen geven en op te kunnen slaan. Verder is de software die hiervoor in de tijd is ontwikkeld nog gebaseerd op Windows-98 en draaide in een DOS-shell.  De hardware is nogal uitgebreid en moet vanuit een 230V adapter worden gevoed.

Mijn idee is om een nieuwe detector te maken die ten eerste een laag stroomgebruik heeft zodat deze op een klein zonnepaneeltje en-of accu kan draaien en dat de data via WiFi naar de computer of NAS overgezet kan worden. Op dit moment (mei 2020) is er een heel aardig IC te krijgen van AMS met als typenummer: AS3935. Hiermee kan redelijk eenvoudig een detector gebouwd wordt voor de home omgeving. Je krijgt met deze detector geen landelijke dekking.

Samenvatting van de beschrijving van de data-sheet:

De AS3935 is een programmeerbare, volledig geïntegreerde bliksem Sensor-IC die de aanwezigheid van potentieel gevaarlijke bliksemactiviteit in de omgeving detecteert en een schatting van de afstand tot de voorkant van de onweersbui maakt. Het ingebouwde bliksemalgoritme controleert het binnenkomende signaalpatroon om de potentiële door de mens veroorzaakte verstoringen eruit te filteren. De AS3935 kan ook informatie geven over het ruisniveau en informeert  (bijv. de microcontroller) in geval van een hoge ruisniveau met een ruis drempel generator en een ruis evaluatie systeem. (bron: AMS data sheet v1-04 2016 jan 13)

Deze detector heeft een detectiebereik met een radius van 40 km. De detector is dus rondom gevoelig en kan geen richting aangeven. Wel wordt er een getal gegeven voor het berekende energieniveau van de ontlading. Dit getal is een indicatie en geeft geen grootheid weer. De detector kan zowel wolk naar grond als ook wolk naar wolk ontladingen detecteren. Er  wordt niet aangegeven welk type er wordt gedetecteerd.

Dit even in het algemeen over het bliksem detectie IC. 

Het front-end van de door mij te ontwikkelen module bestaat uit een klein printplaatje waarop het detectie IC, de antenne en een aantal componenten zitten. Dit printje kan als geheel gekocht worden bij b.v. AliExpress. De ontwikkeling  die ik zelf doen is het ontwerpen van een complete detector met printplaat waarop de volgende componenten zitten of erop worden aangesloten.

  • Het AS3935 detectie printje. (aangesloten)
  • Micro Processor print met WiFi module. (aangesloten)
  • Een GPS module. (op de print)
  • Power module voor zonnepaneel en accu. (op de print)
De specificatie die ik voor mijzelf heb gesteld zijn:
  • Detector met een detectiebereik van 40 km en met een hogere onnauwkeurigheid tot 60 km.
  • De detector moet eigen stroomvoorziening hebben. (zonnepaneel en/of accu)
  • Het datatransport moet via WiFi verlopen.
  • Er moet tijd en plaatsbepaling (GPS) zijn.
  • Weerbestendig zijn.
  • Communiceren met een binnen module of direct met een PC of NAS.
  • Communicatie naar een Smartphone.

 De eerste proeven.

Om eerst het gevoel te krijgen wat de detector-chip allemaal kan of juist niet kan, heb ik een programma geschreven voor een Arduino-UNO board waarmee ik de data van de detector-chip uitlees en verwerk. Om echt te kunnen testen heb je natuurlijk een onweersbui nodig. Die zijn (mei 2020) nogal schaars. Dus het wachten is daarop. Je kan de detector wel testen door met een pieso aansteker te klikken. Alleen is de detector chip zo goed ontworpen dat deze de ontladingen van de aansteker alleen ziet als verstoringen en niet als bliksemontladingen. Maar goed je kan dan wel de detector testen of deze data afgeeft. Verder heb ik, om de software te testen wat random data in de tabel gestopt om te zien of het werkt zoals bedoeld. Het is natuurlijk erg sneu als er dan eindelijk een onweersbui overkomt en dat je software blijkt niet te werken.

In de eerste versie heb ik twee seriële kanalen waarbij op het debug-kanaal de ontlading events (zijn  gesimuleerd) worden weergegeven en op het tweede kanaal er een overzicht van de ontladingen in de tijd wordt gegeven.  Hierbij vertegenwoordigd elke lijn op een het scherm 1 minuut. Elke positie op de lijn staat voor 1 km en het getal geeft aan hoe vaak er in die ene minuut een ontlading is gedetecteerd. Zijn er meer dan 9 ontladingen met dezelfde afstand gedetecteerd dan wordt er een '^' weergegeven. Wat er nu op het scherm te zien is, is gesimuleerde data die met een random generator in de software is opgewekt. Het gaat er hier ook alleen maar om de software te testen.

 

Het debug scherm:


In dit scherm worden de bliksem events weergegeven. De data die te zien is wordt in de software gesimuleerd en is dus (nog) geen echte data. Bij elke detectie wordt de afstand en het energie niveau van de ontlading weergegeven. Om de 10 minuten wordt er een totaal overzicht gegeven van de gedetecteerde ontladingen.

Het tijdscherm:


In dit scherm wordt in de vorm van een tijdlijn/ waterval het verloop van de onweersbui weergegeven. Ook hier weer is de getoonde data afkomstig van simulatie. Elke lijn stelt een tijdsperiode van 1 minuut weer. De lijn heeft 63 posities waarbij elke positie een km voorstelt. Het getal op elke positie geeft het aantal ontladingen weer bij de betreffende afstand. Worden er meer dan 9 ontladingen gemeten voor één afstand dan wordt er een '^' weergegeven. Aan het eind van elke lijn staan het aantal ontladingen weergegeven voor de betreffende minuut.

Met deze weergave kan het verloop van een onweersbui worden weergegeven.

De data zoals hierboven weergegeven is puur bedoeld voor de testfase van de detector. De uiteindelijke data presentatie zal op delen anders zijn.


Even een plaatje van de eerste testopstelling. Het deel waar de LED's opzitten is de micro-processor in dit geval een Arduino UNO. Het onderste vreemd vormige printje is de bliksem detector met daarop in het middel de AS3935 detector IC en helemaal onderaan met het stickertje erop de antennespoel.

Zoals boven aangegeven maak ik een proefopstelling met een Arduino UNO processor. Deze opstelling is erg makkelijk te programmeren. Voor de definitieve uitvoering wil ik gebruik maken van een ESP-32 module. Dat is een micro-processor board met WLAN voorzieningen. De software om met dit board een WiFi verbinding te maken is betrekkelijk eenvoudig te ontwikkelen. Er wordt erg veel met dit board gewerkt en er zijn dus veel voorbeelden op het web te vinden die nuttige informatie geven voor het opzetten van de software. Bovendien heeft deze module een USB-interface zodat het later instellen van de WiFi gegevens eenvoudig te realiseren is.

Inmiddels heb ik een aantal proeven kunnen doen tijdens een echte onweersbui. In eerste instantie zaten er nog een paar software probleempjes in mijn programma. Die zijn opgelost. De resultaten zijn niet wat ik verwacht had. Ik denk dat er toch iets aan de hand is met het detector printje. Ten eerste heb in problemen met het afregelen van de antenne. In de chip zit een mode waarmee je de antenne kring kan afregelen rond een frequentie van 496 kHz. Hiervoor zit er een condensator in de chip die digitaal ingesteld kan worden tussen 0 en 120 pF. Je zou bij dit soort afregelingen verwachten dat de nom. frequentie ergens in dit capaciteits bereik ligt. Naar dat is bij mijn print niet het geval. Ook bij de instelling van 0 pF en alle verschillende deelfactoren is de nom. frequentie al te laag en deze wordt lager bij een hogere capaciteits waarde. Dus in ga toch nog wat spelen met de componenten die rond de antennespoel zitten. Op dit moment krijg ik alleen maar detecties die op een afstand van 1 km liggen terwijl de bui verder weg was.


Ik heb het probleem, dat er alleen maar detecties zijn met een afstand van 1 km nog eens verder onderzocht. Het lijkt te maken te hebben met de I2C-software driver die ik gebruikt heb. Ik heb de hardware en software zodanig aangepast dat deze nu draait op een SPI interface. Ik merkte meteen al dat het systeem stabieler was. In de I2C uitvoering zat de detector na een paar uur op slot en moest deze gereset worden. Met de SPI interface is dit probleem geheel verdwenen. Het is nu (10 juli 2020) maar weer wachten op een echte onweersbui die dicht genoeg langstrekt.

Inmiddels heb ik de testopstelling (en software) uitgebouwd met een externe EEprom voor de opslag van de settingen voor de detector en de WiFi. Verder heb ik de GPS module aangesloten. Deze twee componenten werken nu ook goed. (zie de foto hiernaast)

Voor de GPS functie heb ik gebruik gemaakt van een module waarop de NEO-6M-0-001 zit. Voor rond de 2,50 euro is deze module te koop bij AliExpress. 

Geef de status van de GPS chip              
Latitude    = 52.304096                                 
Longitude   = 5.230169                                  
Altitude    = 7                                         
Year        = 2020                                      
Month       = 7                                         
Day         = 13                                        
HHMMSSCC    = 14002600                                  
Hour        = 14                                        
Minute      = 0                                         
Second      = 26                                        
Centisecond = 0                                         
NumOfSat    = 7                                         
>>                 

Hiernaast staat een schermstatus report van de GPS module zoals deze door de Microprocessor wordt uitgelezen. Dit is maar een deel van de gegevens die uit de GPS-module gelezen kunnen worden. Maar voor mijn toepassing heb ik verder niets nodig. De gegeven tijd is uitgedrukt in UTC. Eigenlijk is UTC geen tijd maar een tijd standaard. We moeten de tijd dus in GMT geven. GMT geeft een tijds zone aan.

De GMT is gelijk aan de UTC.

Voor Nederland is in de zomer de lokale tijd: GMT +2.

In de winter is het GMT +1


Ik wil nu (10 juli 2020) eerst een geslaagde proef doen met een echte onweersbui voordat ik de print voor de ESP-32 ga ontwerpen en de software ga overzetten naar de ESP omgeving.

Afgelopen tijd heb ik wat proeven gedaan met de eerste opstelling waarbij een Arduino UNO wordt gebruikt. Uiteindelijk was de conclusie dat de detector in deze opstelling erg doof was. Er werd bijna geen ontlading gedetecteerd terwijl die er toch echt waren binnen de detectie range. Ik heb dat met mij handdetector gecontroleerd. Deze opstelling heb ik maar even ter zijde gelegd en ben ik verder gegaan met het ontwerp van de print waarop een ESP-32 module komt te zitten. De ESP-32 is een krachtige processor met op de module een uitstekende WiFi module. Nadat het print ontwerp klaar was (basis-module) heb ik deze in China besteld en had ik de pcb met een week in huis. Eventjes een avondje solderen en de print zit in elkaar. De belangrijkste functie van de print is een voetprint voor de ESP-32 DEVKIT, een Seriële EEprom, een I/O Expander, een aantal levelconverters (aangezien een deel op 3,3V en een ander deel op 5V draait) en een voedingsstabilisator en de nodige Header voor o.a. de GPS de AS3935.


De volgende stap was om de software drivers van de ESP-32 DEVKIT in de Arduino omgeving te zetten. Ook dat was een fluitje van een cent. De eerste versie van de software had in geschreven voor een Arduino UNO. Deze versie kon ik met vrij weinig problemen omzetten naar de ESP-32 omgeving. Het werkte eigenlijk met vrij weinig inspanningen.

Bij de eerstvolgende onweersbui was het verschil tussen mijn eerste testopstelling (met de UNO) en mijn tweede testopstelling (met de ESP-32) duidelijk te zien. De eerste noteerde 3 ontladingen en de tweede zag er 143. Dit verschil heeft met name te maken met de detector module. De bui ging uiteindelijk in de verte aan ons voorbij. 

Hierboven staan twee foto's van de nieuwe opstelling (basis-module) met daarop de WiFi module en de GPS module. De opstelling is wat ruim gekozen met als doel om wat afstand te creëren tussen de WiFi antenne en de twee ontvangantennes van de detector en de GPS.

Omdat de opstelling met de ESP-32 draadloos is (WiFi) moest ik toch wat hebben om de date uit te lezen en de software te testen. Ik maak al enige tijd gebruik van een Online software omgeving waarop je applicaties kunt maken voor de mobiele telefoon. Het is een heel leuk programma met op zich veel mogelijkheden. De programmering gaat geheel grafisch op het PC-scherm met allemaal kant en klare blokken die je in een bepaalde volgorde moet zetten. Er komt geen regel software aan te pas. Uiteindelijk compileer je het programma online en krijg je een QR-code te zien waarmee je dan de applicatie op je mobile telefoon kunt laden.

De linker foto geeft weer hoe je met blokken kan programmeren, de foto in het midden geeft de opbouw van het scherm weer en de rechter foto is een afdruk van de werkende detector op mijn mobile telefoon.

De communicatie tussen de bliksemdetector en de mobile telefoon is op basis van het UDP-protocol. In principe vindt er bij dit protocol geen controle plaats op de juiste overdracht van de data in tegenstelling tot het TCP-IP protocol. Op zich is het voor deze toepassing niet van belang. Als beveiliging bevatten de berichten die naar de mobile telefoon worden gestuurd een CRC-controle byte. Hiermee kan er toch een controle worden uitgevoerd op de ontvangen data. Op dit moment gaan de berichten nog naar de mobile telefoon en kan de data (Strike Events) als dat opgegeven wordt in een file op de telefoon worden opgeslagen. Het nadeel is dat de telefoon binnen het lokale bereik moet zijn waarin ook de bliksemdetector zit. In de toekomst is het de bedoeling dat de data naar een intelligent display gaat waarin o.a. een WiFi module en een SD-card zitten. Dit display moet natuurlijk in het lokale netwerk zitten. De data wordt dan op de SD-card geschreven en kan in een later stadium d.m.v. FTP maar mijn lokale NAS worden geschreven. 

Nu de hardware aardig lijkt te werken (hopelijk deze week (donderdag 14 aug 2020) een stevige onweersbui) gaan ik me wat meer concentreren op de software. De basis functies zitten er nu wel zo'n beetje in maar het komt nu meer op de details aan.


Hiernaast is het opstartscherm van de bliksemdetector te zien. Er worden een aantal zaken getest bij het opstarten. Één daarvan is de GPS-module. Als de detector (en de GPS-module) langere tijd uit hebben gestaan duurt het best wel lang voordat de melding komt dat er GPS-data is ontvangen. Ik heb deze testen wel steeds binnenshuis gedaan waar het voor de GPS-module wat lastiger is om een paar satellieten te ontvangen. Ik moet wel eens een minuut of 5 wachten voordat de software verder gaat. 

Standaard start de detector op met voorgeprogrammeerde instellingen voor de AS3935. Het is de bedoeling dat deze instellingen kunnen worden gewijzigd en dan worden opgeslagen in de EEprom op het basisboard. 

Op dit moment heb ik al wel software geschreven waarmee je via de debug-poort van de controller in een speciaal menu kunt komen waarin je o.a. de WiFi instellingen en de detector instellingen kunt wijzigen. Je hebt dan een Monitor programma op je PC nodig om de data te kunnen lezen en instellen. Via dit monitor programma kan je ook de status informatie van de detector continue lezen. Je ziet daarop ook of er ontladingen zijn en krijg je statistische informatie over het verloop van een onweersbui. Op zich werkt dit goed maar je hebt altijd een computer nodig om via een USB-kabel de data te lezen en te wijzigen. Voor de bliksem informatie heb ik dus al een programma geschreven voor de mobile telefoon (zie beschrijving eerder in dit verhaal)  Eigenlijk wil ik ook via de mobile telefoon het een en ander kunnen instellen. Dus dat is de volgende klus. Je hebt de debug-interface wel altijd nodig om voor de eerste keer de detector voor wat betreft de WiFi instellingen te programmeren.

De afgelopen periode 14 aug tot omstreeks 20 augustus zijn er ook in Huizen en omgeving een aantal onweersbuien geweest zodat ik wat testen aan de bliksemdetector kon uitvoeren. Ik heb met name zitten spelen met de gevoeligheid van de detector. In eerste instantie stond deze veel te gevoelig en klopte de gemeten afstanden niet. De beste resultaten gaf de detector als deze in zijn ongevoeligste standen stond 1800 ... 2000 uVrms. Op zondag 16 augustus 2020 kwam er over Huizen een redelijk zware bui overtrekken, zo tussen 20:00 en 20:30 uur. Het werd echt ontzettend donker en uiteindelijk kleurde de lucht groen wat wijst op zware hagelbuien. Dat klopte dus. Het kwam met donderend geraas naar beneden. Ik heb hagelstenen van wel 20 mm waargenomen en het heeft me twee putjes in de motorkap van onze auto opgeleverd. In die bui heb ik met mijn detector zo rond de 2500 ontladingen gemeten met op zijn top 45 per minuut. Het onweerde al geruime tijd voordat de hagel en regen echt losbarsten. Een goede test dus voor mijn bliksemdetector.

De software voor de mobiele telefoon is nu ook stabiel en werk goed in combinatie met de software van de bliksemdetector. De bovenstaande afbeeldingen geven aan wat er op het telefoonscherm te zien is. Het linker plaatje zijn de resultaten van de bui van 16 augustus 2020. De middelste afbeelding geeft met name op het onderste deel de instellingen van de bliksemdetector weer en de GPS-locatie. De rechter afbeelding geeft het instelscherm weer voor het instellen van de gevoeligheid van de detector. Onderaan staan 4 buttons waarmee de volgende acties gegeven kunnen worden:

  • Clear Statistics: Hiermee wordt de statistische data gewist.
  • Strike Test: Met deze button wordt de verbinding met de detector getest. Als er op deze button gedrukt wordt dan knippert de strike LED 5x snel.
  • Update data: na het indrukken van deze button wordt de status van de AS3935 chip ververst.
  • Reset: Als de detector niet goed reageert, dan wordt na het indrukken van deze button de ESP32 gereset en start de processor opnieuw.

Nu ben ik bezig met het ontwerpen van een print waarop de voeding zit voor de bliksemdetector. De voeding kan een zonnepaneel zijn (9...12V) of een DC-adapter. Verder zit er een laadcircuit op voor het laden van 6 NiMH AA-cellen en een bewaking voor het te diep ontladen van de accu's. Op de print zitten ook de 6 accu cellen.

Inmiddels heb ik ook de kleine displays binnen waarmee ik een basis station kan maken waarop de bliksemgegevens weergegeven kunnen worden. Het wordt nog wel wat uitzoek- en programeer werk om dit aan de gang te krijgen. In plaats van de mobile telefoon kan dan dit basis station gebruikt worden.

Wordt vervolgd.