Pagina's

donderdag 30 januari 2020

Het weerstation / windrichting


_____________________________________________________
30-1-2020.


Talen Tools Windhaan In Kleur  
De windvaan wordt zelf gemaakt. Hoe ik een goede lagering maak weet ik nog niet.

De encoder is van een type waar bij verandering van de code slechts 1 bit wijzigtom foutcode te voorkomen. Dit is de zgn. gray-code. zie aparte post.


Ik maak gebruik van een 4-bits code en encoder. Dit geeft dan 16 mogelijkheden van windrichtingbepaling, dus N . NNO . NO . ONO . O. en zo verder.


Nu wil ik dit als een pijl weergeven in het display. (40x4). Ik gebruik hiervoor de mogelijkheid dat het display me biedt om zelf caracters samen te stellen. Ik wil dan rechts op het display 4 regels over 8 caracters breed een pijl creëeren.


______________________________________________________________
30-1-2020

De vorm van de windvaan moet ik nog bepalen. Of het een haan, pijl of zeilboot wordt, weet ik nog niet.

Maar de techniek kan ik al maken.
Want waar denk ik dan aan?

De lagering:
Ik wil zo min mogelijk wrijving in de lagering hebben, om de windrichting zo betrouwbaar mogelijk te krijgen, zelfs bij het minste briesje.
Ik dacht gelijk aan een zwevend lagersysteem middels magneten.
Op youtube vind je leuke projecten met magneten.

Google is dan een heel mooi medium. En zo kom ik bij een nederlands firma (naam komt nog als ik toestemming heb), met héél veel magneten op voorraad.

Voor de as kom ik uit op de modelbouw. Conrad heeft assen van zilverstaal, en bijbehorende enkele assecoires.

Zowel de magneten als de as vallen ik prijs reuze mee. Maar wel weer de vele kleintjes.....

tekening 1
In het midden de ringmagneet met de as. Daar omheen 3 schijfmagneten om de ringmagneet in positie te houden.

Daar zit maar heel weinig ruimte tussen; ik wil zo min mogelijk beweging in de as hebben, omdat ik een codeschijf moet plaatsen, die maar weinig speling van de as verdraagt.
Deze opstelling zal heel weinig zijdelinkse speling geven.

Het zal nog moeten blijken of ik de magneten zo dicht op elkaar kan krijgen, omdat de magneten heel erg sterk zijn.

Voor de totale opstelling, en het beperken van de axiale speling (speling in de lengterichting van de as), heb ik ook een tekeningetje gemaakt. Ook deze speling moet zo min mogelijk zijn, om dezelfde reden.

tekening 2






Hier zijn de magneten duidelijk te zien. Waarschijnlijk past alles in een doosje van 10x10x10 cm.
Van de magneten in de tekening zijn de zuidpolen grijs ingekleurd, zodat de funcie goed te volgen is.

Bovenin en onderin is de opstelling van de magneten hetzelfde, alleen gespiegeld.
Ik benoem de magneten en zijn functie:

  • De ringmagneet rotor zit vast op de as.
  • De magneten stator staan in een hoek van 120gr opgesteld zoals de
    tekening 1. Deze houden de ringmagneet rotor op korte afstand door de afstotende werking van de magneten. Door deze opstelling zou de as ook ineens axiaal kunnen verschuiven, en de magneten op elkaar klappen.
  • Om dit te voorkomen heb ik de ringmagneten opsluiting geplaatst. Deze voorkomen de axiale beweging van de as.
  • Ten slotte dempen de diamentrale ringmagneten de draaiing van de as. Dit komt door de wervelstromen die in de as ontstaan bij draaiing. De reden van deze demping is dat de vaan waarschijnlijk anders de onrustig heen en weer zal zwiepen.
Verder zit halverwege nog de codeschijf met de 4 IR-sluisjes. Deze lezen de gray-code van de codeschijf, dat een maat is voor de stand van de as.
(zie aparte blog).


Voortgang uitvoering



















2-6-2020.
Het weerhutje is gemaakt. Hierin worden temperatuur en vochtigheid gemeten. Er volgt nog een update qua bouw van de hut, de bovenste delen worden vervangen door schoteltjes.






________________________________________________
24-5-2020
Maar weer eens iets in deze blog schrijven, want ik heb niet stil gezeten.

Allereerst heb ik de besturing van de bediening (display + keypad) vervangen door een MEGA 2560 board. Dat ging vrij vlot, wel wat onvoorziene details, maar het werkt nu geweldig.

Daarna heb ik een paar nieuwe dingen aangepakt.
Eerst de temperatuurmeting met een DS18B20, Dit is een temperatuursensor die zeker op 0,1 gr nauwkeurig meet. Het heeft een eigen processor aan boord, en kan eenvoudig uitgelezen worden. Het is niet groter dan een halve centimeter. (groene plaatje rechts op de hoek twee stuks) Ik heb er twee van, die bovendien op dezelfde aansluitingen aangesloten kunnen worden, omdat elke sensor een eigen uniek nummer heeft. Net zoals internet slechts één kanaal heeft, maar we toch met ons alle miljarden op dat ene kanaal zitten.
De sensoren zijn zó goed, dat ze op enkele hondersten nauwkeurig in elkaars pas lopen.

Verder heb ik de barometer uitgeprobeerd. (op het groene plaatje in het midden) Ook dit werkt heel goed. De nauwkeurigheid is 0,1 mBar.

En ik ben bezig geweest met de SD kaart. Kijken hoe ik een en ander moet installeren om mijn data op te kunnen slaan en gebruiken. Ik heb een SD kaart van 32GB, en daar kan ik jaren mee vooruit. Ik denk zelfs dat ik nooit meer een uitbreiding nodig heb. Want de data die ik wegschrijf zijn maar 1 byte groot (meestal). Eén data is dan de waarde van één temperatuurmeting, luchtdrukmeting, luchtvochtigheidmeting, windkrachtmeting en de windsnelheid, gemiddeld en piek. Nou, die kan ik er totaal dus 34.359.738.368 van opslaan. Nou ja, bijna dan. Zeg maar 32.000.000.000.

Wat ik als volgende dingen wil doen zijn de temperatuur en de barometer op het display plaatsen. En daarna alles opslaan op SD, en daar ervaring mee opdoen.
_________________________________________________
24-5-2020 / 2
De barometer en de temperatuur staan op het display.
Wat me vandaag opvalt is de hoge luchtdruk. 1033 mBar. Toch eens kijken op internet... en ja hoor, 1033 mBar. Erg hoog, zijn we niet gewend.
__________________________________________________
8-5-2020
Vandaag heb ik de MEGA 2560 al binnen. en... HET WERKT.
Mijn conclusie dat het een geheugenprobleem zou kunnen zijn is dus de goeie.

Dit display met keypad kan dus de prullebak in. Was mooi geweest, veel geleerd.
Want: nu ik toch een grote broer heb van de arduino Nano, vervang ik beide nano's op de print voor die ene Mega 2560.
_____________________________________________________________
7-5-2020
Ik ban lang bezig geweest om het LCD goed te krijgen.
Telkens had het zeer onregelmatig gedrag. Met name de klok toonde hij steeds niet.

In een routine maak ik een keuze of een regel gevuld moest worden met de klokkalender, of met informatietekst.
Direkt na de start gaat het nog wel, maar het werd steeds grilliger.

Uiteindelijk heb ik een miniprogrammaatje gemaakt in het hoofdprogramma. Alleen dát programmaatje draaide steeds opnieuw. Hierin heb ik relevante routines gebruikt, waar het steeds fout ging. Het resultaat was, dat dit programmaatje het prima deed.

Conclusie is dan ook dat de hardware het prima doet. Ook de aangesproken routines werken feilloos.

Dat kon maar één ding betekenen: geheugen, en wel de SRAM, waarin de variabelen worden gemaakt.

Ja he, ik heb bijna 1000 bytes beschikbaar, maar blijkbaar gat het met tekstverwerking en manipulering héél erg hard.

Ik ben op zoek gegaan naar geheugenuitbreidingen voor de nano. Die zijn er niet, ja, eeprom, maar daar heb ik niks aan.

Ander bord dus. Veel gezocht en gevonden. Er zijn ook heel dure oplossingen, maar ik heb er een gevonden die verder compatible is met de nano. Het is de MEGA 2560 met 4 keer zoveel poorten en geheugen. Echt een werkpaard dus. Het programma zou dus 1 op 1 overgezet kunnen worden.
Die heb ik dan ook besteld.

Hierdoor kan ik de bediening met twee losse nano's vervangen door deze ene.
Ben benieuwd.
____________________________________________________________
5-5-2020
In het blog "ventilatie" heb ik enen en ander beschreven voor het gebruik van het display rn keypad-combinatie.
Het losse, kleine display van de ventilatie heb ik nu vervangen door het grote display en keypad. Eigenlijk heb ik het hele, oude, ventilatieprogramma vernieuwd. Door de inzichten die ik heb opgedaan afgelopen jaren, voor wat betreft de ventilatie, heb ik uiteraard in het nieuwe programma verwerkt. En omdat ik tóch het programma opnieuw heb geschreven, kon ik het ook veel logischer indelen. En natuurlijk met de nieuwe inzichten voor variabelengebruik en het gebruik van functies. Want dat laatste heb ik nu ook redelijk onder de knie. Het geheugen wordt daardoor veel minder belast, omdat er veel meer lokale variabelen worden gebruikt, dus veel minder vaste geheugenruimte gebruikt.

Ondertussen ben ik veel bezig geweest met het besturen van het grote LCD scherm. Je hebt per scherm maximaal 160 tekens te verwerken. Waar laat je die tekst? Hoe breng je die over naar het LCD? dat zijn zo een paar vragen, waaruit een protocol is ontstaan.

De keuze is gevallen om alle teksten op te slaan op de processor van het LCD scherm, in het vervolg het LCD genoemd. Dit houdt in dan de vaste tekts geen variabelengeheugen meer gebruikt, maar opgeslagen in het flash-geheugen. (programmageheugen) En die heb ik genoeg. Alleen voor de verwerking van de tekstregels gebruik in dan nog variabelen.
De veranderende items in de teksten, momentele waarden ed, worden steeds appart aangeleverd door betreffende stations. Die moeten dan wel ingepast worden in de vaste tekstregels.
Dit inpassen wordt makkelijk gemaakt door op de plaats in de vaste tekstregels waar die waarden moeten verschijnen, te vullen met een '#'. Dit werkt erg goed.

Natuurlijk kijk ik ook hoe ik de tekstregels verwerk.
Ik heb een keuze gemaakt in 3 manieren van weergave:

  1. geheel tekstblok (is hele scherm) laten staan.
  2. telkens verschillende tekstblokken wisselen.
  3. van onder inscrollende tekstregels, waarbij bovenliggende regels omhoog schuiven.
Hier ben ik al aardig ver mee. Dat inscrollen gaat nu nog niet goed, maar dat zal wel komen.

Nu kwam ik ook tegen dat het scherm telkend even flitste als het scherm wordt ververst. En dat is dan bij het vaste tekstblok. En dat kijkt niet lekker.
Als er telkens bij verversing naar een ander scherm wordt gegaan, moet je het scherm wel eerst wissen, maar dat is niet hinderlijk.
Maar bij een vast tekstblok geeft een schermwissen steeds even een knipper-idee. Dit heb ik nu opgelost door het scherm dan niet meer te wissen, maar te overschrijven. Het effect is dan dat alleen de veranderende stukjes tekst veranderen. En dit kijkt nu veel rustiger.

Ik merk nu dat ik wel blij wordt van al die kleine details die het geheel allemaal verbeteren. Het resultaat is telkens zichtbaar. Het is wel erg tijdrovend, maar tijd heb ik nu genoeg.
_____________________________________________________
23-4-2020
Nu ik toch moet wachten op het plexiglas voor de windmetingen, heb ik een uitstapje gemaakt naar het oude ventilatiesysteem.
Ik wil het programma opnieuw opzetten, en gebruik maken van het display met keypad, dat ik in de huiskamer hang. Dit systeem heeft het eerste RS485 netwerk gekregen dat ik wil toepassen in het gehele project.
______________________________________________________
20-4-2020
Inmiddels ben ik met pensioen.
Er zijn diverse projectjes gepasseerd.
De koelkast heeft een nieuwe temperatuurregeling gekregen met arduino.
De ventilatie heeft een klep in het kanaal naar de keuken gekregen. Hiermee is ook het eerste netwerk RS485 een feit geworden.
Voor de laatste werkweek heb ik tussendoor een aardigheidje voor op het werk bedacht.
Een combi van display met keypad is een feit. Hiermee samenhangend het versturen van data over het netwerk was nog een hele klus.

Nu dan op zoek naar een nieuwe uitdaging: het weerstation, en dan met name de windkracht en -richting. Zie betreffende blog.
_____________________________________________________
10-4-2020
Ik ben afgelopen tijd veel bezig geweest met bibliotheken, het LCD display en het keypad. Al dan niet ik combinatie met het uitbreidings-ic van I2C naar 8 digitale poorten.
Nou, de bibliotheken moet in de loop van het project maar worden bekeken, want dat is niet zomaar.
Het uitbreidings-ic is ook een drama.

Het keypad, welke op die uitbreidings-ic zou komen, gaat nu dus toch rechtstreeks op de processor. Het kost wel 8 poorten, maar is niet anders.
Het LCD heeft nog eens 7 poorten nodig. Komt het totaal met de keypad op 15 poorten. Ik zal dus analoge poorten moeten gebruiken om een en ander uit te sturen. Gelukkig zou dat moeten kunnen. Volgende uitdaging.
Deze zou dan met een RS485 in het systeem opgenomen kunnen worden, maar daar moet ik nog even over nadenken.
Ook zou zo'n setje ingeplugged kunnen worden naar een seriele poort. Moet ik echt nog even over nadenken.

Het keypad en het display gaan vanaf nu samen als één blog.
_____________________________________________________
10-4-2020
Ik ben afgelopen tijd veel bezig geweest met bibliotheken, het LCD display en het keypad. Al dan niet ik combinatie met het uitbreidings-ic van I2C naar 8 digitale poorten.
Nou, de bibliotheken moet in de loop van het project maar worden bekeken, want dat is niet zomaar.
Het uitbreidings-ic is ook een drama.

Het keypad, welke op die uitbreidings-ic zou komen, gaat nu dus toch rechtstreeks op de processor. Het kost wel 8 poorten, maar is niet anders.
Het LCD heeft nog eens 7 poorten nodig. Komt het totaal met de keypad op 15 poorten. Ik zal dus analoge poorten moeten gebruiken om een en ander uit te sturen. Gelukkig zou dat moeten kunnen. Volgende uitdaging.
Deze zou dan met een RS485 in het systeem opgenomen kunnen worden, maar daar moet ik nog even over nadenken.
Ook zou zo'n setje ingeplugged kunnen worden naar een seriele poort. Moet ik echt nog even over nadenken.

Het keypad en het display gaan vanaf nu samen als één blog.
_____________________________________________________
30-3-2020
Even een hééééél mooi resultaat: het display 40x4 werkt!
Ik had al een werkend programma van het display 40x2. En die heb ik na een tip op het forum 2x gebruikt, heb ik ook 40x4. Haha....
Alleen een beetje finetunen, gebruik maken van functies om die 2 displays als één te zien.
_____________________________________________________
16-3-2020

Afgelopen dagen veel gedaan met de klepsturing van de ventilatie.
Zo kan nu met de afstandbediening de klep ter plaatse ingesteld worden, maar nu nog alleeen van de huidige ventilatiestand. Dit wordt nog uitgebreid om ook met de afstandbediening tijdelijk voor een ventilatiestand te kiezen.

En ja, dit gaat allemaal over RS485, de eerste functionele netwerkverbinding. En dat werkt goed. Er is ook een definitief printje voor gemaakt.

Maar met de uitbreidingen van het thuis-programma, het programma waar de ventilatie al enige jaren op draait, kom ik ook (weer) voor andere uitdagingen te staan, namelijk geheugen. (van de arduino wel te verstaan). Want het programma loopt zelfs in de setup al vast.
En nou moet ik, wederom, met de programmastructuur aan de gang. Speciaal de lokale variabelen. (zucht....)

Ik heb net het gedeelte van de windmeting eruit gehaald. Dat scheelt veel geheugenruimte. De compiler komt nu niet terug met de waarschuwing over te veel geheugengebruik en mogelijke instabiliteit van het programma.
De windmeting doe ik voorlopig stand-alone (was toch al een poos niet operationeel). Kan later nog een RS485 tussen.





Het is nu erg snel gegaan; de klep werk goed. Ook het instellen in elke ventilatiestand.
RJ45 stekertjes monteren op de kabel is nog wel een dingetje hoor, maar ik krijg het redelijk onder de knie.

Voor het testen of het stekertje op de juiste manier is aangesloten, heb ik 2 testprogrammaatjes gemaak. Eén waarbij ik beide stekers in het apparaat kan steken, en één voor elk stekertje een apart printplaatje; één met een weerstandenbank, en één met de processor. Want het zal me niet gebeuren dat ik de boel opblaas omdat er draden verkeerd zijn aangesloten. Ik zou dan geneigt zijn om de boel aan de kant te gooien.





_____________________________________________________
26-3-2020
Tussendoor een besturing gemaakt voor de koelkast. Zie betreffende blog.

Intussen heb ik een paar dingen besteld voor het project.
Eerst weer een paar arduino's en randzaken.
Verder 2 barometers voor het weerstation.
Een paar I/O uitbreidingen ic's heb i erbij genomen om wat te experimenteren.
En een paar MAX485 ic's, voor de communicatie tussen de stations onderling.
Hier hoop ik voorlopig mee vooruit te kunnen.
_____________________________________________________
9-2-2020.

Nou, het display is nog een hele uitdaging! Dit lukt gewoon nog niet, ondanks de vele positieve geluiden op internet (forums).

Windmeting:
Maar.... intussen hebben we STORM! Dus, even snel een uitstapje naar de windmeter op een NANO en LCD 40x2.
Registratie van momentele windkracht, gemiddelde en piek (windstoot).

Windstoten:
Hier heb ik echt alle pieken te pakken, omdat ik alle door interrupt verkregen data verwerk. (in tegenstelling in het project THUIS). Want pieken zijn vandaag echt "pieken", en die duren doorgaans nog geen seconde. Dus een bemonsterings-frequentie van 5 seconden of langer is dodelijk voor het registreren van windstoten.

Nu heb ik bij windkracht 12 het aantal waarden van 50 stuks per seconde! Ja, sla die maar eens op; niet te doen dus.

Ik móet wel anders denken, om dit te laten slagen. Andere opslaggeheugen is een optie, maar erg onnodig. Want meestal heb ik aan een paar waarden per seconde al genoeg. Variabel denken dus!

Gelukkig hoef ik maar 1 byte per meting op te slaan.
Dit stelt me gelijk in staat om het 10-voudige van de windkracht op te slaan. Waarom? Voor een betrouwbaar gemiddelde.
Want bij de opslag van de eigenlijke waarden, bijvoorbeeld: 22222222221 geeft een gemiddelde van 1, ( ik kan geen 0,5 optellen) en dat is niet reeel.
Bij het 10-voudige 20-20-20-20-20-20-20-10 tel je eerst 5 op, en daarna middelen en delen door 10 geeft 2.
Dit is een methode die ik al eens meer heb gebruikt, en werkt prima.

Bemonstering:
Nu wil ik terwille van het display een bemonstering van 1 seconde; Als ik het display elke seconde iets wil laten zien, is me dat genoeg.

Werkmethode:
Nu hoef ik niet alle waarden van 50 per seconde op te slaan.
Wél wil ik álle waarden gebruiken voor de windkrachtbepaling.
Nu hoef ik windkracht kleiner dan 1 niet te registreren. windkracht 1 komt overeen met een tijd tussen twee pulsen van de windmeter van 777 msec.
Dus als ik 1 x per seconde even reken met de waarden die ik in die seconde heb geregistreerd, is me dat genoeg.

Wat heb ik in die éne seconde nodig?

  • gemiddelde van het aantal metingen in die seconde.
  • piekwaarde van die reeks metingen.
Daarvoor heb ik nieteens een array nodig. Gewoon het totaal aantal als het totaal van de metingen registreren en het maximum eruit filteren.
3-2-2020.

Afgelopen dagen ben ik bezig geweest met het LCD-display en het keypad. Het display heb ik even opzij moeten leggen, omdat ik vastliep op wat praktische bouwzaken voor wat betreft type printplaat. Ik bleek een 2-zijdige printplaat nodig te hebben met doorgemetaliseerde gaten. Hiermee kan ik op beide zijden zowel solderen als componenten aanbrengen. Slechts één firma heb ik kunnen vinden die deze kon leveren. Het wachten is dus op deze printplaten.

Het keypad was een andere uitdaging. Ik heb al eens met een keypad gewerkt, dat één gemeenschappelijke aansluiting had voor de toetsen. Deze staat echter in matrix geschakeld. Dat was nog niet het grootste probleen.
Want ik wilde, net als voorheen, met een weerstandenbank de toetsen koppelen, zodat ik deze op één enkele analoge ingang kon uitlezen. Ik had nog een 3x4 keypad liggen, en daarmee kon dat uitstekend.
Maar bij dit keypad kreeg ik het maar niet voor elkaar om duidelijke resultaten te
krijgen.
Na verschillende wegen bewandeld te hebben ben ik het over een heel andere boeg gaan gooien. Ik heb eens goed naar alleen het keypad gekeken. Het bleek dat de toetsen geen echte goede schakelaartjes zijn, maar waarschijnlijk koolstof-rubber nopjes dat op twee koperen vlakken wordt gedrukt. Er zal wel een naam voor zijn bedacht.
Het grote nadeel hiervan is dat het geen echte schakelaartjes zijn met normaal gesproken zeer lage contact-weerstanden. De weerstand van dit kontakt ligt zo om en nabij de 1000 Ohm, en bovendien verre van stabiel. Dit is een heel ander verhaal!
De andere aanpak is dan een weerstandenbank met heel hoge weestanden, waarbij de contact-weerstand in het niet zou vallen. Alleen.... dan wordt dit wel heel erg gevoelig voor magnetische stoorvelden, het EMC. En daar had ik vrij recent heel slechte ervaringen mee.

Ander aanpak dus.
Nu heb ik een boek van Arduino en een sensorenpakket, waar ook een folie keypad in zit. Gelijk dus gekeken in het boek naar het artikel dat daarover schrijft.
En... ja, hoor, weer een bibliotheek hiervoor, met erg ingewikkelde commando's in het programma. Nu houd ik hier niet zo van; ik heb er dan geen controle meer over.
Nu zijn er wel programmastukjes die met een bibliotheek zeer goed aan te sturen zijn, zoals I2C, LCD en RTC, maar zoiets eenvoudigs als een keypad zou ik toch zeker zelf wel kunnen?
En dat lukte. Het kost me wel 8 digitale poorten, maar het werkt uitstekend!

Keypad op arduino.
Het is eigenlijk heel simpel.
De 4 kolommen zitten op 4 uitgangen. Normaal staan deze hoog.
De 4 rijen op 4 ingangen met pullup weerstanden (intern in arduino).
Telkens maak ik één uitgang van een kolom laag, en kijk ik welke rij ook laag is geworden. En dat werkt heel doeltreffend. De weerstand van het contact speelt hier geen beduidende rol.

Voor de herkenning van de toets maak ik gebruik van een char-array.

const char  matrix[17] = "x147*2580369#ABCD";

Nu heb ik gekeken of arduino ook matrix-variabelen ondersteunt, nou, helaas niet. Maar met een array gaat dat ook goed:

matrix[4*(kolom-1)+rij];

kolom van 1 tot 4, rij ook van 1 tot 4.

En zo kan ik goed bij elk teken komen middels een kolom- en rij- variabele.
Die "x" in de matrix is het nulde symbool van elke array, en moet wel gevuld worden, anders komt het niet uit.
De volgende uitdaging is om deze constructie in een functie te zetten. Maar dat is weer voor later, want ik weet al dat het LCD ook op dit gebied moeilijk zal worden.
De keypad is aangesloten op een arduino nano, echt lekker klein.

Voorlopig kan ik alleen nog op de monitor het resultaat bekijken. Maar als ik het display onder de knie heb, zul je het resultaat daarop zien.











__________________________________________________________________
30-1-2020
De huidige situatie is nu, dat het al lang lopende project, de ventilatie en de windmeter, behoefte heeft aan aanpassing voor het uiteindelijke project. Die behoefte wordt uiteraard gevoedt door het idee dat ik binnenkort met pensioen ga.

Wat doet "ventilatie" op het moment:

  • badkamer ventileren naar behoefte.
  • windsnelheid meten.
  • ventilatiekanaal deels afsluiten ten behoeve van de ventilatie van de badkamer (onlangs uitgevoerd). En hier liep ik tegen de instelling van de afsluitklep aan voor wat betreft de stand van de klep. De klep maakt wat fluitende geluiden als die afgesloten staat. Door het wat open te zetten verminderde de fluittoon. Alleen moest ik dat rechtstreeks in het programma wijzigen. Dat moet anders, dacht ik. Waarom niet interactief de klep instellen?
En hier dus sta ik nu.

Bij het totale project heb ik een registratie / bedien-station in de huiskamer bedacht. En die ga ik nu uitvoeren.

Maar gaandeweg de bestelling van de materialen neem ik enkele andere dingen ook mee. Én ik kom wat beter in de voorraden te zitten door iets meer te bestellen dan strikt noodzakelijk, zeker als het om kleine bedragen gaan.

Wat kan ik er allemaal mee doen:
  • "Ventilatie" opdelen in echt alleen ventilatie en weerstation.
  • Het maken van de windvaan voor de windrichtingsmeting. Voor de lagering maak ik gebruik van swevende magnetische lages, waardoor de vaan ook bij het minste briesje de richting kan aanwijzen. Hierover meer in betreffende blog.
  • Bedieningspaneel in de kamer. Deze bestaat uit een LCD-display van 4 regels, 40 karakters per regel. Lekker groot, de grootste in zijn soort.
    Daarnaast komt er een bedieningspaneeltje, een zg. keypad met 16 knoppen.
  • Hetzelfde geld ook voor het basisstation hier in mijn werkkamer. Ook hier dus display en keypad.
  • Aanschap diverse kleine breadboards, voor het experimenteren met de projecten.
____________________________________________________________



maandag 27 januari 2020

Weergave


_____________________________________________________
Tja, je wilt ook wel eens wat laten zien.

Voor de toekomst wil ik in de huiskamer een LCD-display met keuzebediening, om dingen te laten zien.

Wat kan ik NU al laten zien?

  • luchtvochtigheid in de badkamer.
  • windsnelheid in verschillende vormen over de dag.
Hiermee ga ik definitief over op het netwerk met RS485. Dat wordt dus spannend.

De basis in dit station is het display. Ik kies hiervoor het grootst mogelijke dat te koop is, een 4-regelig 40 karakters breed LCD-display. Misschien ga ik het nog eens uitbreiden met een grafisch display. Maar ook dat zien we wel in de toekomst. Laten we gewoon step-by-step de boel aanpakken.



vrijdag 3 januari 2020

Ventilatie

3-1-2020.

De ventilatie is één van de stations in mijn netwerk. Deze is nu nog als zelfstandige voorziening.

Ik heb thuis de beschikking over een centrale afzuig-unit.  De ruimtes die de ventilatie afzuigen zijn de keuken, badkamer en de toilet. Hij is in de keuken in 3 snelheden te schakelen. Standaard staat de ventilatie op laag.


In de badkamer heb ik veel last van de vochtigheid, dat lang na het douchen blijft hangen. En dat blijft helaas niet zonder gevolgen.


Een poos terug ben ik hier al mee bezig geweest door het afzuigen te automatiseren. Hiervoor gebruik ik een vochtsensor.

Na regelmatig wat aanpassingen in het programma, werkt dit prima.

Nu was de automatische regeling van de badkamer leidend. Dat wil zeggen, als de badkamer een hogere ventilatiestand vroeg, dan is de keukenschakelaar uitgeschakeld.


Dit bleek later niet handig.

Dus wil ik de schakeling uitbreiden.
Door ook de keukenschakelaar te detecteren, kan ik door het programma kiezen voor de hoogst gevraagde stand. En dat ga ik dus uitvoeren.

Maar hoe detecteer je een 230V schakelaar op een arduino? 

Een paar kleine relaistjes leek het simpelste. Hangt wel een prijskaartje aan.

Ik heb gekozen voor twee opto couplers. De led in de opto verbind ik op de schakelaar met een condensator/weerstand spanningsdeler. 

De condensator heeft ook het nadeel dat bij de tegenwoordige netvervuilingen (bijv. zonnepanelen) de condensator te veel doorlaat, met als gevolg mogelijke te hoge spanning op de opto. Dit houd ik nu tegen door een zenerdiode van 12v. Hierdoor ben ik verzekerd van een constante stroom door de LED van de opto.

Vandaag heb ik de onderdelen binnen gekregen. Ik houd jullie op de hoogte.






Dit werkt nu prima. De spanning over de zener is ongeveer 7 volt, niet wat ik had berekend. Maar het voldoet.

Klep in ventilatiekanaal keuken.

De ventilatie staat best wel lang te draaien als er is gedouched. Als ik nou tijdens die afzuiging het ventilatiekanaal van de keuken kan afsluiten, zou ik dat heel fijn vinden.
Ik ben nou toch aan het pionieren met stappen- en servomotoren, dus heb ik in het ventilatiekanaal een klep beplaatst die onder bepaalde voorwaarden dicht wordt gezet. Met name  voor de afzuiging van de badkamer is dit erg praktisch; de ventilatie is dan niet meer zo erg lang aan, omdat dan alle afzuiging naar de badkamer gaat.
De foto laat de aandrijving van de klep zien door een servo-motortje. Deze staat normaal open, zodat alles geventileerd wordt op zijn zachtste stand. Klep gaat dicht als de keuken niet vraagt, en de badkamer moet worden geventileerd.




Vochtsensor.

De vochtsensor is een appart verhaal. 

Bij een thermostaat, het regelen van de temperatuur dus, zijn invloeden van buitenaf nauwelijks hinderlijk voor de regeling. Hooguit de gevoelstemperatuur kan hier een factor zijn dat de regeling anders wordt ingesteld naar behoefte.


Bij een vochtsensor is de vochtigheid buiten van grote invloed op de regeling. Want waar stel je de hygrostaat op af als het buiten hartstikke vochtig is. En hoe als het juist heel erg droog weer is. 

Ik heb in het programma gekozen om een "normaalwaarde" te creëeren die ik als ondergrens hanteer. Als de vochtigheid 5% luchtvochtigheid hoger is dan de normaal, schakelt de ventilatie op halve snelheid. Bij 10% hoger op hoge snelheid. En terug zo ongeveer hetzelfde, maar dan afschakelen.
De normaalwaarde bereken ik als voortschrijdend gemiddelde over één etmaal. En dat werkt goed. Mocht nou toch de ventilatie door wat dan ook (plotselinge hogere vochtigheid) te lang doordraaien, dan zet ik elke minuut de normaalwaarde 1 hoger, zodat vanzelf de ventilatie wél afslaat. Die nieuwe normaalwaarde wordt dan vastgelegd.
______________________________________________
7-3-2020.

Ben bezig om RS485 in te bouwen.

Er komt dus een Arduino Nano bij de servo, de ventilatie klep. Hier komt ook de afstandbediening te zitten om de klep in te regelen.

______________________________________________
23-4-2020
Ik ga dit systeem moderniseren. Het programma ga ik opnieuw opzetten en ik ga gebruik maken van het display met keypad dat ik in de huiskamer hang.
_________________________________________
28-4-2020
Het komt lekker van de grond.
Het vernieuwde programma communiceert al lekker met het grote display, jaja, over RS485.
Er zijn nog wel een paar opties die ik erin moet verwerken, zoals in welke modus het scherm moet weergeven. Want ik heb natuurlijk niet alleen maar een badkamer, waarvan ik de vochtigheid en de ventilatie wil weergeven.
En in welke vorm. Ik heb nu nog 3 opties:
1. vast blok info op het scherm.
2. steeds wisselende blokken met info.
3. van onder inscrollende tekstregels.
De opslag van de tekstblokken vormt nu nog geen problemen, maar die verwacht ik wel in de toekomst. 
Het vormen van teksten bij de bron is geen probleem; die kan ik in flash-geheugen plaatsen, en die heb ik zat.
Maar die teksten moeten ook verzonden worden en bij het display opgeslagen worden, en dat kan niet in flasch, maar moet ik het zeer spaarzame ram-geheugen.
Waarschijnlijk moet ik uitwijken naar de SD-opslag. Maar dat is weer voor later.