Nu mijn windvaan klaar is, wacht ik op redelijk weer, om dat ding op het dak te zetten en af te stellen. Het hagelt en sneeuwt erg vandaag, en we zijn er nog niet van af.
Wat ik wilde, is nu voor elkaar: op afstand bepaalde parameters instelen op de windvaan.
Het heeft wat hoofdbrekens gekost, maar het werkt nu.
Want wat is het geval: als je zo bezig bent met het instellen, dan wil je niet gestoord worden door andere data dat over het netwerk lopen.
Ik heb daartoe een prioriteitenverbinding moeten ontwikkelen, kortweg de prior.
Omdat zo'n priorverbinding tussen twee explesiete stations plaatsvind, heb ik het stationBestemming ge-her-introduceerd. Bovendien draagt alle dataverkeer de opdracht 100 met zich mee.
Als zo'n verbinding wordt opgebouwd, wordt er op de betreffende stations de vlag gehesen, jawel, de priorvlag. Bovendien wordt de bezetlijn geactiveert, waardoor alle andere stations niets op het datanet zetten. En omdat de betreffende stations de vlag hebben gehesen, weten ze dat ze de bezetlijn moeten negeren.
Na afloop worden de vlaggen gestreken, en de bezetlijn vrijgegeven.
Dit hele proces heeft wat tijd gekost om te ontwikkelen, maar volgens mij werkt dit nu feilloos. Het is ook direkt bruikbaar voor andere stations, waarbij ik deze prior-communicatie wil gaan inzetten.
Goh, mijn vorige berichtje is al weer anderhalve maand geleden.
Een plaxiglas doosje waar alles in zit, en een plexiglas pijl (jaja, je moet goed kijken).
Nou, ik was van plan met magneetjes de as-lagers te maken, en dat leek me mooi om te laten zien, hoe het werkt. Maar dat is volledig mislukt.
Dan maar heel kleine lagertjes. En dat plexiglas had ik liggen, dat wilde ik toch gebruiken. En mocht het ik de toekomst nog lukken met die magneetlagers, dan zien we wel weer verder.
Ja, ik kijk af en toe nog wel eens op internet wat ze schrijven over passieve magneetlagers. Ik merk wel, dat de inzichten beter worden. Maar ik heb ook zo'n idee, dat er zo min mogelijk wordt geinformeerd, om hun eigen boeltje veilig te stellen. Want ik ontkom niet aan het idee, dat men veel meer weet, maar het voor zichzelf houden. Commercie......!
Vandaag heb ik nog een paar onderdeeltjes binnen gekregen, dus kan ik mijn windvaan af gaan bouwen. Ik heb een paar stoelpootdoppen gekocht, waarmee ik een waterdichte doorgang van de as kan maken. Niet onderdompelbaar, maar wel zeker regendicht.
Door al het gekl... werkte het op een gegeven moment helemaal niet meer. Nou, dan heb je ineens helemaal niks meer, want alles valt of staat met een goed communicatie netwerk. Want wat heb je aan een temperatuurmeter, als je die niet kunt uitlezen? En dat geldt voor alle weersgrootheden.
Uiteindelijk heb ik stappen terug moeten doen. Gelukkig kan ik dat doen, omdat ik, zeker bij grote veranderingen, een volgende versie van mijn programma maak. Daardoor kan je altijd terug. Versienummers van 40 zijn geen uitzondering.
En nu werkt het weer, maar nog wel met die foutjes die er al in zaten. Wel heeft het me weer meer inzicht opgeleverd.
Die had ik in de tuin gezet, maar gaf niks aan.
Ook die heb ik vandaag op mijn tafel gehad. Mijn conclusie is dat hij weer lek is. En dat is funest voor de werking. Het staat nu doelloos ergens onder mijn tafel.
Ik heb nog een oude keukenweegshaal liggen, speciaal bewaard voor dit doel.
Die heb ik maar eens aan een grondig onderzoek onderworpen.
Ik ging uit van een bepaald type weegschaal, maar dat is het niet.
Voor de techneuten onder jullie: deze weegschaal berust op het princiepe van een bewegende condensator. Heel prachtig, maar dit is erg vochtgevoelig, en mogelijk ook temperatuurgevoelig. Voor een keukenweegschaal is dat niet zo erg, want voor die korte tijd dat die wordt gebruikt, is het stabiel genoeg. Voor de lange duur (regenmeter) werkt dat niet.
Ik wil er één met rekstrookjes. Het liefst 4. Je hebt ook nog met 2 of 1 rekstrookje, allen met zijn voor en nadelen. Maar 4 is voor mij de beste. Deze is dan automatisch temperatuur-ongevoelig. Ze geven daardoor gerust een werkgebied van -10 to +50 graden celcius op, met een verloop van 0,05%. pfffff, verwaarloosbaar dus.
Ik weet al enigszinds wat ik wil hebben, en voor nog geen tientje heb ik een weegmodule, waar alles op en aan zit. Alleen nog maar de entourage eromheen.....
En dan de wijziging op de SD. Daar heb ik een extra Nano gezet als buffer voor alle inkomende data.
Ik kwam erachter, dat het SD-station af en toe heel erg lang bezig was met verwerken van binnengekomen data. En als die daar mee bezig is, loopt het gegarandeers data mis, en dat kan je als SD-opslagmedium niet hebben.
Die toegevoegde Nano heeft een buffer van 1000 bytes, de interne buffer is slechts 64, en dat zou meer dan genoeg moeten zijn voor het normale werk. Maar is dus te klein, als je met heel andere dingen bezig bent.
De grote buffer doet nog iets meer: die selecteert gelijk de data, dat voor de SD nodig is. De SD zelf krijgt het daardoor veel makkelijker, en kan lekker zijn dingetje doen. En het werkt geweldig! Wel heb ik een andere printplaat moeten ontwerpen voor deze nieuwe variant.
31-1-2021
Vandaag een bijzonder geval: een mogelijke oorzaak van verkeerde datastromen.
Ik heb al heel lang last van enige fouten in de datastromen op het net. Daardoor mis ik bepaalde data om verder te verwerken.
Van de meeste data is het geen ramp als ik daar wat van mis, maar het is vooral lastig als ik de kloksignalen mis. Nou heb ik dat wel enigszinds opgevangen in het programma, maar het zit me niet lekker. Het is niet fraai als ik gaten heb in mijn data.
Hoe ben ik er achter gekomen:
Ik ben al weken bezig om de regenmeter goed te krijgen. En daarvoor gebruik ik het "project monitor", het kleinste projectje om alle datastromen te tonen op een monitor.
Het regenprogramma zet elke minuut een hoop data op het net, dat ik met monitor uitlees.
Af en toe verlies ik wat data, soms met een interval van 19 of 38 minuten.
Het moest dus volgens mij iets met conflicterende datastromen te maken hebben.
Ik ben er altijd vanuit gegaan, dat het verzenden, of althand zeker het bufferen, van data vanzelf gereguleerd zou worden.
Dat blijkt nu dus niet het geval te zijn.
Omdat ik nu toch tijd zat heb, 😄 wilde ik toch het probleem met de regenmeterdata proberen te achterhalen. Maar daarvoor moet ik alle data monitoren, om het verband tussen verschillende datastromen van de stations te bekijken.
Ik heb dus even een klein stationnetje gemaakt op een prikbordje, de originele zit aan de regenmeter, een heus "monitorstationnetje". En die heb ik ingesteld op het monitoren van alle data.
Bovendien heb ik een tellertje meelopen dat voor mij bijhoudt hoeveel goede datastromen, hoeveel verkeerde en hoeveel ongeldige datastromen op het net voorkomen. Ik hoef daardoor niet konstand te turen op de monitor, maar scroll eenvoudigweg naar de verandering van de foutencode-teller, dat natuurlijk ineens verandert als er zich een fout voordoet.
Zo ben ik er achter gekomen, dat twee stations gelijktijdig zenden, en deze datastromen door elkaar lopen. En eigenlijk verbaast mij dit.
Ik ga nu op zoek naar een softwarematige oplossing. Toch weer eens goed in de mogelijkheden van dataverkeer duiken. Inmiddels heb ik wel wat meer ervaring opgedaan sinds het begin.
Een ander, hardwarematige, oplossing zou kunnen worden, om mijn oorsprokelijke idee van ver aan het begin van het gebruik van het netwerk, om een derde lijn, een bezetlijn, te creeeren. Voordat een station wilt gaan zenden, moet hij eerst de bezetlijn hoog maken, en weer laag zetten, als hij klaar is. Elk station dat wilt gaan zenden, checkt deze bezetlijn, en kan pas tot zenden overgaan, al de bezetlijn laag is.
Ik verwacht hiermee geen gelijktijdigheid van meerdere stations, omdat ik het hier heb over een enkele microseconde checktijd. Op de kans van gelijktijdigheid, durf ik geen voorspelling meer te maken, ik heb mijn lesje geleerd hiermee.
23-1-2021
Afgelopen weken ben ik merendeel bezig geweest met de regenmeter.
Eigenlijk was die compleet onbruikbaar.
Dat ben ik nu aan het verbeteren.
Tussendoor doe ik nog andere dingetjes met al bestaande projecten.
En... ik ben bezig een netwerkbuffer te maken voor de SD. Dit houdt in, dat data bestemd voor opslag, de SD dus, niet verloren gaat. Want af en toe gaat er toch stiekem wat data verloren. En dat wil ik voor opslag beslist niet. Ik maak dus een soort van voorportaal voor de netwerkdata voor de SD. Met een apparte NANO.
En.... ik heb de eerste aankondiging gezien van een ..... blueberry pi micro, net een arduino NANO, maar dan met veel meer eigenschappen, zoals de NANO BLE dat ik in de SD heb gezet. De pi heb je wel weer voor een nano prijsje, 4,95 euro. Erg interessant. Maar nu even nog niet, want ik heb nu al 15 stuks nano in mijn project zitten. Laat eerst maar de kinderziektes eruit zijn, voordat ik me op de pi stort.
24-12-2020
De voeding is inmiddels aangepast. De ledjes geven nu beter aan wat de toestand van de voeding is.
Met snel knipperende ledjes worden de storingtoestanden gesignaleerd. Alleen nog de storingen op het net zetten, waardoor andere stations daarop kunnen reageren.
De acculader lijkt ook goed te gaan, moet nog uittesten.
Ik heb wat handige dingetjes aangeschaft. Eén ervan is een kleine 1 Ohm weerstand in TO220 behuizing, en daatdoor lekker klein en zeker veel minder kwetsbaar. Ook die heb ik op internet gevonden. Ik wist niet dat die bestonden.
De regenmeter lijkt perfect te zijn geworden. Nu staat die in de duurtest in de regen. Ben benieuwd.
17-12-2020
De acculader staat even op hold, even laten bezinken terwijl ik op onderdelen wacht.
Dat geeft me gelegenheid om tataal andere dingen na te gaan.
De voeding moet aangepast worden (zie schrijven van 11-11-2020). Mooie gelegenheid nu.
4-12-2020
Even een update op dit overzicht.
Afgelopen 2 weken ben ik bezig geweest met een acculader voor de fiets van Yvonne. Ook hier kom ik dingen tegen die mij aan de studie zet. Namelijk de werking van schakelende voedingen en de hoge schakelfrequentie vanuit de arduino. Deze laatste heb ik nog niet helemaal door hoe het nou echt zit, maar dat gaat wel komen.
En ik heb de regenmeter weer op mijn werktafel staan.
De data die daar vanaf kwam, is totaal onbruikbaar. De data schoot alle kanten op, waar ik totaal geen vat op leek te krijgen.
Maar inmiddels denk ik waar ik het moet zoeken. In een eenvoudig builtje cilicagel. Die moet eruit! Want cilicagel haalt het vocht uit de lucht, en dat merkt de druksensor. En dat gebeurt ongecontroleerd, daar heb ik geen vat op. Dus moet dat builtje eruit. Hoe ik dan de sensor droog moet houden, moet ik nog uitzoeken. Want condens wil ik niet hebben. Ik denk dat ik een erg droge dag moet afwachten om de regenmeter in elkaar te zetten, zodat de lucht om te beginnen droog is.
11-11-2020
Officieel begin van het carnavalsseizoen..... maar dit jaar niet.
Spanningsuitval, wie heeft er nog nooit van gehoord!
Ja, het uitvallen is lastig, maar het terugkomen van de stroom misschien nog veel vervelender. Want wat vind je van al die klokken die weer goed gezet moeten worden? En het ongecontroleerd opstarten van allerlei systemen?
Om dat op te vangen heb ik voor mijn project een slimme (nou ja...) voeding gebouwd, althans, dat dacht ik.
"Elke keten is zo sterk als zijn zwakste schakel", toch?
Ik heb er een accu in zitten die de zaak even opvangt bij spanningsuitval. Niet écht noodzakelijk, meer leuk.
Die zwakste schakel is een aansluitsteker van de voedingssteker. En als die los zit, dan zie ik dat nergens in terug. Althans, nu nog niet. Ik heb er wel in doorgedacht, maar nog niet daadwerkelijk in uitvoering gezet. Dat ga ik binnenkort toch echt doen.
Het plan was om een spanningsuitval te melden op het communicatienet, en de stations datgene te laten uitschakelen dat niet noodzakelijk was. Daarmee beperk ik het stroomverbruik, om de accu zo lang mogelijk spanning te laten leveren.
Nu had ik al de keuze gemaakt om een kleine accu te nemen, waarmee ik ongeveer een uurtje kan overbruggen. Als de accu te ver zou ontladen, schakelt hij zichzelf af, en dat werk prima. Want een loodaccu moet je niet helemaal leegtrekken, is erg slecht voor dat ding.
Nu heb ik in de netwerkkabel nog 4 draadjes over voor dingen in de toekomst. Daar overheen kan ik natuurlijk een geschakelde 12V laten lopen, die dus uitschakelt als de spanning uitvalt. Daar kan ik dus de stations iets mee laten schakelen om de stroom te beperken.
Dit zal ik nog verder uitwerken.
Tevens kan ik een geluidssignaaltje laten afgaan.
5-11-2020
Afgelopen dagen bezig geweest met het bedieningskastje voor in de huiskamer.
Waar knijpers al niet goed voor zijn.
Vroeger werkte ik ook al veel met triplex, latjes en houtlijm. Die hobby heb ik dus weer opgepakt.
29-10-2020
De regenmeter is een redelijk succes. De opzet is goed.
De onderste deel van de beker lekte wat lucht weg. Daardoor verloopt de druk onderin met de tijd. En dat moeten we echt niet willen. Want ook al staat er nog wat water in de beker, die moet wel stabiel uitlezen over een aantal dagen. Een duurtest zal moeten uitwijzen of het nu is opgelost.
Waar ik wel heel erg tevreden over ben is de gevoeligheid van de metingen. Ik kan met gemak regen meten met een nauwkeurigheid van 0,1mm. Met alle hulde voor Bosch.
Verder ben ik bezig geweest met de SSD. De opslag van data van de regenmeter en barometer is nu ook mogelijk.
Wat mij ook opvalt, omdat ik projecten een poosje laat liggen, dat ik behoorlijk vooruitgang boek in mijn denken, hoe ik softwarematig de zaken aanpak.
Het gebeurt daardoor wel eens dat ik bepaalde delen herschrijf, om het beter en overzichtelijker te maken.
Wat ik hierbij niet moet vergeten is, dat ik niet zomaar procedures kan veranderen, met als gevolg dat de andere stations niet meer zouden werken. Maar als het echt niet anders kan, dan moet het maar even. Dan moet ik alle andere stations onder handen nemen.
17-10-2020
De regenmeter is softwarematig een succes geworden. Met een simulator kan ik het behoorlijk laten regenen, met goede data als gevolg. Die data kan ik ook al verzenden en laten zien in "monitor", nu nog op het display tonen.
Daarna ga ik met de regenbeker aan de gang, het echte werk.
10-10-2020
Heej, 10-10 was ook de officiele startdatum van de telefonie die alle telefoonnummers met 10 cijfers omzette. Maar dat even terzijde.
Momenteel loop ik erg vast op de bediening van de huiskamer. Ik krijg de data van de wekker niet juist opgeslagen en/of teruggelezen. Erg frustrerend als je daar dagen op blijft hangen.
Dus ga ik wat anders doen: de regenmeter.
Zie dit item voor verder verslag.
6-8-2020.
Het is zó'n mooi weer, dat ik dit project even lekker heb laten liggen. Dat wil niet zeggen dat ik er niet mee bezig ben, want in mijn hoofd kan ik wel eens ergens mee bezig zijn. Zo ook de opslag op SD. En dan met name de data van sensoren, getallen dus.
Strings gaan prima, maar getallen is een heel erg ingewikkelde.
Getallen kan ik alleen maar opslaan in losse cijfers. Dus het getal 125 heeft 3 cijfers voor de opslag, 1, 2 en 5..
En waar zit dan het ingewikkelde ervan? In het teruglezen! Want wat moet ik met drie losse cijfers. (als eerder voorbeeld). Niks dus. En eenvoudig achter elkaar zetten lukt me niet, ja, in string, maar daar ik niks mee. Ik kan er niet mee rekenen bijvoorbeeld. En omzetten in een getal waarmee ik wél kan rekenen, gaat niet.
Nou kan ik slechts 1 cijfer gelijktijdig uitlezen van SD. Ja, ook met een buffer meerdere tekens tegelijk, maar dan moet ik de lengte van het getal kennen, en dat is niet zo.
Dus, één voor één uitlezen.
Ik heb er nou toch een manier op gevonden.
Bij het uitlezen begint het met het cijfer van de hoogste waarde, in ons voorbeeld dus de 1. (deze heeft de waarde x100). Even in een mooie opstelling:
Ik lees 1.
x10 = 10.
ik lees 2 erbij = 12.
x10 = 120.
ik lees 5 erbij, = 125.
ik lees volgende, dat is het einde, dus lees eigenlijk niks meer.
Resultaat = 125. En dat is dus wat ik moest hebben. En omdat ik deze procedure in een rekenkundige variabele doe, kan ik er dus alles mee doen wat ik wil.
_________________________________________________
26-7-2020.
Alvast weer een filmpje en een tekeningetjes.
Met het zoeken naar een grafisch schermpje, kwam ik ook een led-matrix tegen. Heeeej!, die heb ik ook ergens liggen, in mijn sensorendoos. Ooit eens een pakket sensoren aangeschaft.
Nou, die led-matrix had ik eigenlijk snel onder de knie, dat werkt goed.
De pijlen recht en in een hoek van 45 graden, zijn prima te doen.
De pijlen onder 22 graden eigenlijk gewoon niet te doen, maar alternatiefjes zijn ok. Uiteindelijk heb ik een tekeningetje gemaakt (zie foto) en daar een pijl op getekend onder 22 graden. De bolletjes moeten de ledjes voorstellen die ik 'aan' moet zetten. Zoals je op het filpje kunt zien is dit het resultaat.
Maar, is dít het nou?? Heel leuk dit schermpje, maar ik ben niet echt tevreden. Als het dit is, dan kan ik net zo goed zo grof tewerk gaan op het LCD scherm, scheelt me weer een scherm.
Maar wil ik het écht mooi hebben, dan wordt het toch een grafisch display. Een 128x64 dots is een veel gebruikte, en die heb je voor geen € 10. Is toch de moeite waard.
____________________________________________________
25-7-2020.
Ik ben bezig geweest om een windpijl te maken op het LCD scherm. Dat ging over het algemeen erg goed.
Mijn bedoeling is, om, zoals te zien is in het filmpje, de pijl helemaal rechts op het scherm te plaatsen, verdeeld over 4 regels en 6 kolommen (tekens naast elkaar), dus totaal 24 tekens.
Overigens is dit niet, het in het project gebruikte scherm, dat dubbel zo breed is dan deze. Maar de bedoeling is duidelijk.
Nou is dit scherm een tekstscherm, dus moet ik de mogelijkheid benutten om zelf tekens te maken om de pijl te kunnen maken.
De pijlen op de video zijn nog eenvoudig te maken, en heb ik telkens maar 7 of 8 verschillende tekens per pijl nodig. En als ik het goed uitkien, gebruik ik bepaalde tekens meerdere keren in een pijlafbeelding.
Maar de schuine pijlen moeten met veel meer verschillende tekens gemaakt worden. En dan loop ik tegen de beperkingen aan van een LCD aan, dat maar 8 zelfgemaakte tekens gelijktijdig kan bevatten.
Ik heb van alles geprobeerd om dit op te lossen, maar het gaat gewoon niet. Ook de fora op internet geven geen oplossing.
Een mogelijkheid is, om de pijl eenvoudiger te maken. Het ziet er dan niet zo strak uit. Ik moet dit nog uitzoeken.
Een andere mogelijkheid is een grafisch schermpje. Ik houd dit in gedachten.
__________________________________________________
18-7-2020.
Nu ik de nieuwe SD kaart heb, ben ik heel blij gestemt, omdat het programma voor de opslag op SD heel goed werkt. Ik heb wat aan lopen kl.... , toen ik in de gaten kreeg dat de SD kapot was, dus ik was niet zeker of datgene wát ik heb gemaakt, of het ook werkte. Nou, ja dus, en dat valt heel erg mee.
Ondertussen heb ik weer wat materiaal besteld.
Kleine kogellagertjes voor de windmetingen, want nee, het lukt me niet met magnetische lagers. Alles wat je googled over magnetische lagers geeft geen uitsluitsel of het wel kan met permanente magneten. En tóch heb ik nog steeds het gevoel dat het zou moeten kunnen.
Ook heb ik besteld een paar dingen, die voor later weer nodig zijn. Voor mijn voeding, voor het tweede bedieningsdisplay voor in de kamer. Ik kan nu volop vooruit.
_______________________________________________
14-7-2020.
Een fikse tegenvaller: magnetische lagers bestaan niet in de variant van pemanente magneten. Wél met elektromagneten, die worden aangestuurd middels sensoren. Maar dat laatste wist ik al.
Ik had me vandaag een minicursus magnetisme toebedacht; de hele dag op de computer over magnetisme. Ik vond het zelfs zwaar worden, zo uitzichtloos dat het leek. En het ís uitzichtloos.
En dat reimt niet met het gevóel dat ik heb, dat het gewoon moet gáán met permanente magneten, maar ik weet niet hóe.
Dus nu toch maar een paar kleine kogellagertjes uit de modelbouw. Even uitzoeken of ik gegevens kan krijgen over de mate van soepelheid van de lagers, wan ik wil wel dat de windvaan in de goede richting staat, ook bij heel weinig wind. De paktijk zal het laten zien.
_________________________________________________
14-7-2020.
Ik heb een mail terug van supermagnete. Helaas teleurstellend. "Zij zijn geen techneuten, en kunnen mij net verder helpen". Het zijn fysisi, geen techneuten.
Ik moet dus zelf op onderzoek uitgaan. Maar ook daarvoor hebben we internet. 😁
________________________________________________
13-7-2020.
Intermezzo: de powerLEDverlichting in mijn werkkamer.
Ik heb een powerlichtbalk van 5 x 50W LED boven mijn werktafel gehangen.
Het zijn 5 LED's en 5 ventilatoren.
Elk setje appart schakel ik met een infrarood afstandbediening, en dat werkt prima. En natuurlijk met een arduino aan boord. Dat vanwege de afstandbediening en de aansturing van de speciale triacs. Die triac is een overblijfsel van het koelkastproject. Daarin zat die triac. Het speciale aan die triac is, dat die met een arduino rechtstreeks aangesturd kan worden. En vanwege de zeer geringe prijs heb ik er bij ali gelijk tien besteld; je weet maar nooit waarvoor ik ze nodig kan hebben. Nou, hiervoor dus.
_____________________________________________________
12-7-2020 / 2.
Ook vlak voor de crash ben ik bezig geweest met de windmetingen.
Daar gebeurde wat ik niet wilde: het werkt niet met de magneten. Ik zit met een giga denkvaud.
Vanavond heb ik gemaild met supermagnete.nl, waar ik de magneten vandaan heb, om te achterhalen wat ik fout doe. Zij hebben meerdere magneetprojecten van klanten op hun website staan. Leuk om eens daar naar te kijken.
______________________________________________________
12-7-2020.
Ik ben op het display bezig geweest met de bediening met een encoder. Dit gaat nu heel erg lekker.
Ik gebruik pijltjes (<< >>>) om de te selecteren item te kiezen.
Met de knop kan ik die pijltjes op een bepaalde regel draaien. Tevens draai ik, om nóg meer items in beeld te krijgen.
Wil ik een item selecteren, druk ik op de knop. En zo ga ik achtereenvolgens de drie opties door. In dit geval het dimmen of juist feller zetten van de verlichting van het LCD.
__________________________________________________
10-7-2020.
Maar eerst de ventilatieklep gerepareerd.
Ik merkte al langer dat de klep niet lekker meer functioneerde. De klep zelf is van karton gemaakt. En kookwarme vocht doet daar geen goed aan. De helgt van het karton was verdwenen, de andere helft hinh er slapjes bij.
De reden dat dit van karton was, is dat ik wilde uitproberen of het werkte. Nou, dat deed het dus.
Van een dekseltje van een groentepot heb ik een nieuwe klep gemaakt. Met ijzerdrad is die ook nog eens stevig vastgemaakt. En nou is die weer OK.
____________________________________________________
9-7-2020
Daar ben ik weer.
Ik ben er even uit geweest; de computer was gecrached, moederbord kapot. Gelukkig zijn mijn data bewaard gebleven.
Het had ook zijn voordelen: mijn kamer is behoorlijk opgeruimd. 😄 En dat maak ik straks eerst even af. Het zal wel vanavond worden, voordat ik weer iets kan doen aan het project.
Allereerst heb ik vanmiddag tussendoor de ventilatie aangepast. Het was vandaag zó vochtig en warm, dat ik het hier in huis niet onder de 90% kon komen. En als dat te snel gaat, kan het programma het niet bijbenen, en blijft de ventilatie eindeloos doordraaien. Rotherrie hoor.
Nu heb ik ingebouwd, als de ventilatie 2 uren acher elkaar blijft draaien, er ingegrepen wordt. En dat gaat nu goed.
Daarn wil ik doorgaan met opslag op SD.
Oeps, ik moet een nieuwe SD kaart kopen, die ik gebruikte is kapot gegaan. Waardoor is me een raadsel..... Even bij de appie kijken of zij er een hebben. Niet dus. Morgen naar de stad.
Vlak voor de crash ben ik bezig geweest met een encoderknop op het bedieningspaneel voor selekteren van menu-items. Net zoals op een magnetron bijvoorbeeld. Dat is een knop die eindeloos gedraaid kan worden, er zit geen einde op, wat vroeger op de volumeknop van een radio wel zo was.
Dat laten scrollen van menuregels met de encoder, ging heel erg naar tevredenheid. En daar ga ik nu aan verder.
____________________________________________
28-6-2020.
Ik heb een klok in het systeem zitten, een Real Time Clock. Die heb ik er maar één in zitten.
Elke minuut zendt dat station waar de klok in zit, een signaal rond met de datum en tijd. Stations die hiermee iets willen doen, pikken dat signaal op, andere negeren dat kloksignaal.
Er zijn momenteel 2 uitgesproken tijden, dat er echt iets mee gebeurt, dat is 12 uur 's-nachts en elk heel uur.
Nu ben ik bezig met de opslag van data op de SD. Ik zie zomaar een kloksignaal vergeten worden, niet gesignaleerd, en wel het hele-uur signaal.
Elke heel uur laat ik de SD een backup van alle databestanden maken. Dat gebeurt nu dus even niet.
Nu kan ik twee dingen doen:
- niet naar :00 seconden kijken, maar naar verandering van de minuut. Hierdoor wordt de backup altijd nog wel gemaakt, al is het een of twee minuten later.
- De verzonden data laten bevestigen. Deze mogelijkheid heb ik al vanaf het begin ingebouwd, maar nog nooit toegepast.
Het voordeel van bevestigen kan ik ook gebruiken voor relevante waarnemingen, zoals weerdata, daar wil je eigenlijk niks van missen. Maar nu doe ik geen acties op eventueel het missen van die data.
Het bevestigen gaat als volgt:
Het station dat data het net opstuurt, bewaart zelf nog de gegevens, totdat het station waarvoor die gegevens bestemd zijn, heeft bevestigd. Zo niet (binnen een bepaalde tijd), dat verzend hij die nogmaals.
Dat er daardoor waarschijnlijk een andere tijdsfactor verschil in zit, neem je maar voor lief.
__________________________________________
27-6-2020.
De 556 gaat 'm ook niet worden, die kost 3 keer zoveel meer dan 2 stuks 555. Ja, wie op de kleintjes let....
Ook voor de bediening en display-station heb ik nu de watchdog vast ingebouwd. Er was nog plek zat onder de arduino (groot model).
De bediening liep ook steeds vast, net zoals de ventilatie.
En hier bewees het nut zich van het monitorprogramma. Het bleek dat met de dataverzending vanuit het weerhuisje naar de SD deze stations in storing vielen.
Sinds ik data wil verzenden naar de SD, doe ik dat zo min mogelijk, dus met zo veel mogelijk data in één keer. En daar waren die stations niet op ingericht.
Seriele data kan maximaal 64 items in één keer verzenden.
Vanaf het begin schatte ik het maximum op 20 items. De buffers in die stations waren ook daarop ingesteld.
En als je dan ruim 50 items wegstuurt, nou, dan lopen die buffers over, en vernietigt het een deeltje van het programma, met een vastloper als gevolg.
Na het aanpassen van die buffers, loopt het probleemloos.
________________________________________
25-6-2020.
Vandaag de watchdog-timer uitgeprobeerd.
Afgelopen nacht ben ik in mijn slaap bezig geweest met een oplossing. Toen ik vannacht wakker werd, had ik niet veel tijd meer nodig om een oplossing te bedenken. En die moest ik naturlijk op papier zetten; ik zou het anders maar vergeten!
Het is een 556 geworden, een dubbele 555 in één huisje.
Maar voorlopig moet ik het met 2 stuks 555's doen, want ik had het idee dat ik het met één afkon.
En.. het werkt fantastich.
Elke keer laadt het een condensator op.
Op verschillende plaatsen in het programma geef ik een puls aan de 555, waardoor het reset. De condensator kan dan opnieuw opgeladen worden. Maar als die puls uitblijft, wordt de condensator verder opgeladen, met een reset naar de arduino tot gevolg.
Eigenlijk simpel, maar het werkt.
De gedachte hierachter had ik al langer in beeld, maar nu pas uitgewerkt.
_____________________________________________________
23-6-2020.Maar een nieuwe voortgang-post gemaakt, omdat de lay-out van de andere niet meer hersteld kan worden.
Het lijkt wel, alsof de tekst op een ander blad staat dan de foto's, en die dan over elkaar worden gelegd. Alleen synchroniseren die twee bladen niet, waardoor de éne wel scrolld, en de ander stil blijft staan. Niet meer mee te werken dus.
Nou goed!
Intussen werkt de SD-opslag, zeg maar de SSD, naar behoren. Nog niet zo ver, dat ik meetwaarden kan gaan opslaan, maar dat komt steeds dichterbij.
Verder heb ik een netwerkmonitor gemaakt. Voorlopig nog in concept, prikaansluitingen, maar het werkt.
Wat doet dat ding? Hij laat op een beeldscherm zien, wat er allemaal op het netwerkje gebeurt. Alle data wordt nu én in koude gatallen getoond, maar ook in uitgewerkte data.
De stations versturen alles in kouwe getallen het netwerk op. Het te ontvangenn station 'weet' wat die getallen betekenen. Nou, dat doet die monitor dus ook. Dus zowel kouwe data als de uitwerking.
Erg leuk om dat te monitoren, maar wat heb je er aan?
Gaandeweg heb ik bij alle stations enige vorm van monitoring ingebouwd. Dit heb ik nodig om uit te zoeken of de data wel goed word verwerkt op zowel de verzender als de ontvanger. Dat hept me wel om de data goed af te werken, en ook weer aan beide zijden.
Met deze monitor heb ik altijd álle datastromen inzichtelijk. En als het hierin goed gaat, dan weet ik zeker dat de data goed het netwerk op gaat. Hoe het dan ontvangen wordt, dat is dan punt twee.
Tevens heb ik inzichtelijk hoe druk het op mijn netwerk is. Maar met een gemiddelde van zo'n 10 datablokken per minuut zit ik nog heel rustig. Eén blok is maximaal 64 bytes.
Maar als ik de data wil monitoren, dan heb ik nu het hele boeltje aan computer en monitoren aan staan, en dat vreet stroom. Sinds ik thuis ben gebruiken we meer stroom. Ja logisch, maar toch een puntje van aandacht.
Afgelopen weekend had ik een zoon van mij aan de telefoon. Hij zette gewoon de raspbery pi in als volwaardige computer. En waarom niet? Dat ding heeft alles om als zodanig te werken; het is een volwaardig moederbord, en dat op (bijna) creditcard-formaat. 85x56mm!
De prijs is me nog te veel. Maar ook kleinere systemen, de raspbery zero, de eerste in deze soort, mag er zijn voor mijn doel: monitoren van de data. Maar er komt dan nog bij: een voedingsadapter, een HDMI kabel, een fatsoenlijk doosje om in op te bergen....... Ja, dan loopt de prijs flink op.
Deze gaat dus in de wacht, want het zou zomaar kunnen zijn, dat ik er later méér mee wil doen, en dan kan ik misschien toch beter naar een wat zwaarder type gaan.
Het grootste voordeel is natuurlijk het energieverbruik. Maximaal zo'n 15 watt. Komt daar de monitor zelf nog bij, maar die hoeft niet altijd aan te staan. De raspbery overigens ook niet. Al moet je dan een foefje gebruiken om bij inschakeling van de monitor op de arduino geen reset te krijgen, wat weer het proces verstoord.
Foefje:
Een kleine uitleg.
Als ik de monitor van het IDE opstart, gaar de arduino in reset.
Als ik de computer inschakel als die verbinding heeft met de arduino, gaat die arduino in reset.
Een reset van arduino kan vervelende gevolgen hebben voor het proces. De laatste data ben ik zowiezo kwijt, maar hij kan zomaar naar oudere instellingen teruggaan, áls ik die al opsla. Want anders gaat die arduino gewoon naar zijn oude initialisatie.
Dat foefje bestaat uit een condensator, waarmee ik de resetpin aan de 5V hang. Een (gebruikelijke) korte reset wordt dan tegengewerkt, en vind dus niet plaats. Een lange reset, handmatig, werkt wel, en is dan dus functioneel. Met het uploaden van een programma naar een arduino moet ik even de condensator eraf halen, want het systeem maakt vlak voor het uploaden een reset. Handmatig kan ik die niet geven, omdat ik niet precies weet wanneer dat nodig is.
Wat ook gebeurt is, dat arduino's vastlopen, om wat voor reden dan ook. Dit is niet altijd duidelijk.
Maar daar hebben ze in computerland wat op gevonden: de watchdog. Het doet precies dat wat het zegt: waken over het proces.
Zodra een proces vastloopt, geeft het een reset.
Nu heeft de arduino uno een software-watchdog aan boord. Maar nu werk ik met andere processoren, en die werken daar niet op.
Bovendien moet je heel erg uitkijken, dat je het goed gebruikt. Een verkeerde instelling kan de arduino zomaar onbruikbaar maken; het gaat telkens in reset, als je het probeert op te starten. Hij is dan alleen maar het zwijgen op te leggen met de grote hamer.
Wat doet een watchdog:
Een timertje van bijvoorbeeld 1 seconde, wordt steeds gereset, overal in het programma. Dat is een handeling die je overal in het proces moet invoeren. Je moet er voor waken dat de tijd tussen twee resetten nooit langer is dan die 1 seconde. Je moet dus steeds die bal hoog houden, het mag niet op de grond vallen, want dan ben je af.
Die timer doet hetzelde. Als hij buiten die ene seconde valt, dan geeft het een reset, de bal raakt de grond.
Nu is die ene seconde niet heilig, en kan elke waarde aannemen; die moet je zelf instellen.
Arduino zelf vermeld de watchdog zelfs niet in zijn handleidingen en references. Omdat je er zo mee moet uitkijken. Het programma is niet zomaar op een andere arduino te gebruiken, met de hamer als gevolg.
Nu heb ik een arduino die af en toe spontaan vastloopt. Het ventilatiesysteem loopt af en toe vast. En daarvoor heb ik een harware-watchdog bedacht.
Wat dacht je van de 555? Een ouderwets timertje met 8 poten, en nog heel populair.
Het is een heel slim ding, waarmee je tijden kunt creeeren tussen megaherzen en pulsen van meerdere uren. En dat allemaal analoog. Hij is welliswaar niet heel erg stabiel, maar wel recht-toe-recht-aan, makkelijk te hanteren.
En díe wil ik nou gaan inzetten.
Het idee is dat ik de timer steeds reset door de arduino, en daardoor niet actief wordt. Maar als de arduino vastloopt, krijgt de timer geen reset meer, en reset hij op zijn beurt de arduino.
En daarvoor heb ik één I/O pin nodig van de arduino, en de nooit gebruikte reset-pin.
En dat ga ik nu uitproberen.