Categoriearchief: Projects

Laadpunt voor elektrische auto

Begin van het jaar begon de batterij van de hybride wagen die we al ruim 10 jaar hadden moeilijk te doen. Het werd tijd om om te zien naar een vervanger. Die werd gevonden in een tweedehands Renault Zoe. De actieradius met de huidige accu is 125 km maar nieuwere modellen kunnen meer dan 400 km. Aangezien de accu gehuurd wordt en wordt vervangen zodra de capaciteit beneden een bepaalde limiet komt zullen we daar op enig moment vanzelf aan toe zijn.

De auto is bedoeld voor woon-werk verkeer, van de orde van 25 km enkele reis. Daar is deze auto prima geschikt voor. Voor langere afstanden moet tussentijds bijgeladen worden. In het Westen van het land is dat geen probleem met alle Fastned-punten langs de snelwegen. In de buitengebieden is het oppassen geblazen. In de buurt opladen is wel mogelijk maar er zijn toch wat beperkingen. In de eerste plaats zijn we echt niet de enige met een elektrische auto, er zijn dus meer kandidaten voor een openbare laadpaal. Ten tweede zijn de openbare laadpalen niet echt naast de deur.

Het idee was dus om thuis een laadpunt te maken. Er zijn firma’s die dat maar wat graag voor je oplossen. Nadelen zijn ten eerste dat de kosten vrij hoog zijn en ten tweede dat men maar beperkt controle over het eigen laadpunt heeft. Zelfbouw blijkt heel goed mogelijk te zijn voor iemand met elektrotechniek/electronica kennis. Er zijn twee zaken die – in feite apart van elkaar – geregeld moeten worden. Ten eerste is een 3-fasen aansluiting nodig en ten tweede moet een aansluitkast voor de laadkabel van de auto worden gemaakt.

3-fasen aansluiting

De bestaande groepenkast, zie boven, is uitgebreid ten opzichte van de drie groepen die aanwezig waren bij de overdracht van de woning, 1990. De uitbreidingen betroffen een aparte groep voor de schuur met wasmachine,  een aparte groep voor de vaatwasser in de keuken en een voor de oven in de keuken. Het geheel was afgezekerd met 25 A, dus alles tegelijk was nooit een optie. Aangezien een laadpunt dat in een enigszins redelijke tijd een accu oplaadt tenminste 3x 10 A nodig heeft is sowieso een 3-fasen aansluiting nodig. De bestaande groepen kunnen dan netjes gebalanceerd over de drie fasen verdeeld worden zodat op elke fase de stroom onder de afgezekerde waarde van 25 A kan blijven.

Hoe een nieuwe groepenkast aangelegd moet worden is redelijk voor de hand liggend, ook hier zijn beschrijvingen van op het internet te vinden; bijvoorbeeld hier. In feite zijn alle onderdelen bij Vekto te koop en dat is wel zo handig. Terugsturen of ruilen zijn doorzichtig geregeld. Het enige nadeel is dat het grote assortiment opzoeken van onderdelen soms wat in de weg staat. Vaak gewoon doorbijten en dan vind je het wel. Dat laatste geldt overigens voor bijna alle onderdelen-webshops die ik regelmatig gebruik.

In het onderhavige geval is gekozen voor twee groepenkasten naast elkaar, elk voor 2 rijen van 12 standaard-eenheden. Een hoofdschakelaar is tegenwoordig verplicht dus die kan op de onderste rij in de rechterkast, meteen boven de doorvoer vanaf de elektriciteitsmeter. Vervolgens heeft men de keuze de – hier zes – groepen te voorzien van gemeenschappelijke aardlekschakelaars (maximaal 3 groepen) en vervolgens een 16 A-automaat per groep. Een elegantere oplossing bestaat uit voor elke groep een gecombineerde 16 A automaat met ingebouwde (30 mA) aardlekschakelaar, een zogenaamde aardlekautomaat of “alamat”.  Het voordeel is dat als er in een groep een gestelsluiting plaatsvindt waardoor aardlek ontstaat, alleen de betreffende groep uitvalt. Met een transformator voor de bel-voeding is de rechterkast compleet.

De linkerkast is voor de 3-fasenaansluiting(en). Ook hier een (30 mA) alamat maar nu voor 3 fasen met nuldraad, ook voor 16 A. per fase. Van hieruit gaat het laadpunt gevoed worden. We verwachten nog een verbouwing van de carport aan de zijkant van het huis en daarom kozen we voor een 3-fasen stopcontact aan de voorgevel met een aansluitsnoer aan de aansluitkast voor de auto. Om te voorkomen dat het geheel constant aanstaat en om het laden later zodanig te controleren dat optimaal gebruik gemaakt wordt van goedkope stroom is een relais toegevoegd (elektrisch bediende schakelaar). Dit relais wordt op zijn beurt gestuurd door een op afstand te bedienen schakelaar. Relais (4 polig NO 63 A) zijn te vinden bij Vekto (zie boven) maar naar de afstandsbediende schakelaar is het even zoeken. Een geschikte kandidaat bleek de EM6556 van Eminent. Is met wat knutselwerk goed in te bouwen in een 2-eenheden module (DIN-rail module box – 2MG | GD2MG) en daarmee kan de schakelaar naast het relais worden gemonteerd.

De kabel naar het 3-fasen stopcontact wordt aan de onderkant van deze kast ingevoerd. De kabel gaat onder de vloer door naar de zijkant van het huis. Om zo’n fel rood stopcontact enigszins aan het zicht te ontrekken hebben we er nog een “vogelhuisje” omheen gebouwd. Achter een klimstruik valt het nauwelijks op.

Toen de kast klaar was – voorlopig de drie fasen doorverbonden – moest Liander de 3-fasen-aansluiting verzorgen. Bestellen gaat via de webstek mijnaansluiting.nl. Aangezien de 3-fasen kabel van het energiebedrijf al in de meterkast aanwezig was werd het minimum tarief, zo’n 250 euro, gerekend. Tegelijk kregen we een “slimme meter”, zowel voor elektriciteit als voor gas. Een afspraak wordt gemaakt met de monteur en die installeert dat in een klein uurtje met alle formaliteiten die daar bij horen. Tussen aanmelding en aansluiting liggen wel een aantal weken, in ons geval slechts 3 maar het kan makkelijk veel langer zijn.

Laadkast

De laadkast werd volgens deze beschrijving gedaan. De kast, die ook hier staat afgebeeld, is bij Vekto te koop. Het hart van de schakeling is de Smart EVSE (Electric Vehicle Supply Equipment) controller. Het is te koop bij de ontwerper en maker, Stegen Electronics. Via een tweedraads leiding in de kabel tussen laadkast en auto “praat” deze eenheid met de auto en onderling regelen ze laadstroom en dergelijke. Als de verbinding in orde wordt bevonden, wordt een relais aangestuurd waarmee de 3-fasen stroom naar de auto wordt gevoerd. Verder verzorgt de eenheid het vergrendelen van de aangesloten steker en eventueel de verdeling van de belasting met andere verbruikers op het net. Dat laatste gebruiken wij niet. De benodigde onderdelen worden uitgebreid uitgelegd in de beschrijving en zijn met die aanwijzingen op verschillende plaatsen op het internet te bestellen.

De kast wordt voorzien van een flexibele 3-fasenkabel en vervolgens aangesloten op het stopcontact. Om de karakteristieke lichtgrijze kast enigszins aan het zicht te onttrekken is hier omheen ook een “vogelkastje” gebouwd. Het geheel is op de foto bovenaan te bewonderen.

De besturing vindt plaats met behulp van het programma Domoticz op een Raspberry Pi. Zowel de slimme meter als de schakelaar voor de voeding van de laadkast kunnen hier op aangesloten worden. Zodra het laadstation ingeschakeld is dat goed te zien op de vermogensmeter: er wordt immers opeens 6,6 kW aan het net onttrokken terwijl dat normaal een paar honder Watt is.

Flashing the ESP-201 WiFi transceiver

The ESP-201 is a cheap Arduino clone with 8266 processor and a WiFi transceiver. It has many features that makes it attractive for IOT-like applications, it can even fall asleep to regularly wake up and do its duty. There is an application, ESPEasy, that works brilliantly on these gadgets.

There are various project descriptions on the web but the information required to do one’s own is rather scattered. The most important piece of information is the method to flash it with one’s own application. For this purpose this little write-up. Largely for myself albeit that others may profit.

The pin layout of the module is reproduced below.
The next step is to connect it to a standard USB port to work with the Arduino IDE or other software. The one I use has the DTR and RTS pins available and those are required for automated behavior.

Below the wiring diagram that I used successfully over the years. It contains a bit from various web sites but this one is complete.

Some comments are in place

  • Power: ground pins are connected, but not the 3.3 Volt line. Even though the FTDI provides 3.3 Volt supply, it is not enough to power the module during and after programming.
  • CHIP-EN (-able) is connected to 3.3 Volt.
  • Serial protocol: TX and RX are twisted as usual.
  • Flashing protocol:
    • pin IO15 is connected to ground.
    • RST (reset) is connected to RTS via a resistor. This allows adding a switch to connect to GND for local reset.
    • IO0 is connected to DTR.

After adding a 3.3 Volt power supply, be careful not to apply 5 Volt, the module will start and a bright red LED on the module will be on. Then make a USB connection to your computer. The blue LED will only flash during flashing and other processes.

To use the Arduino IDE with this module, one first needs to install the proper library and board definitions, the ESP8266 Arduino Core. After that, one may follow instructions using examples from the ESP8266 WiFi Library. Flashing and Serial monitor work from the IDE as if a standard Arduino is connected.

 

Mijlpaal zon-energie

Vandaag was het eindelijk weer eens een zonnige dag en toen kon de meter die de opbrengst van de zonnepanelen bijhoudt eindelijk door draaien. Nu is dan eindelijk de 4 MWh geregistreerd.

Of dat veel is? Gemiddeld leveren die panelen zo’n 300 kWh per jaar, hoewel de laatste jaren wat minder. In de 13 jaar die de installatie nu actief is zou dat inderdaad de 4 MWh moeten opleveren. Maar of de afname nu te maken heeft met de panelen of met het klimaat, dat kunnen we nog niet nagaan. Zodra er weer wat meer zonneschijn beschikbaar is kunnen we dat nauwkeuriger bekijken.

 

Minibieb Diamantbuurt

Het idee om een boekhuisje te bouwen was er al veel langer. Het begon met de vaststelling lang geleden dat we wel een hoop boeken hebben maar dat lang niet alle het bewaren waard zijn. Weggooien is een mogelijkheid, maar het is aardiger om iemand een plezier er mee te doen.

Ergens in 2002 begon ik een paar boeken “in het wild” achter te laten. Achterin doe je dan een notitie waarop een code staat die verwijst naar bookcrossing, dat is een webstek waar je dan informatie hebt achtergelaten over het boek. Het aardige is dat je dan kunt volgen wat er met het boek gebeurt. Maar dan moeten de vinders dat wel doen en daar ontbrak het nog al eens aan. Er zijn op die manier nog zo’n 7 boeken in het wild. Geen idee wat er van gekomen is.

Daarna sluimerde voor langere tijd het idee om zelf een boekhuisje te maken. Toen ik een tijd in de lappenmand was begon het project meer vorm te krijgen. Er kwam een soort van bouwtekening bij een zoektocht op het wereldwijde web tevoorschijn waaruit de gangbare dimensies gehaald konden worden. Dat was al een aardig begin.

Daarna begon het verzamelen van de materialen. Mijn eigen houtvoorraad bracht al een kant. Een kennis had ook nog wat plaatwerk en toen had ik ook een achterkant en een bodem. Na een klus bleven ook de zijkanten en het dak over. De planken aan de binnenkant kwamen uit nog liggende restjes. Het voordeurraam kon ik van een oud stuk kunstofplaat maken. Daarmee was in ieder geval goed te beginnen en stukje bij beetje werd het geheel opgetrokken. Ik koos voor een versie met een los dak. Met beugeltjes wordt het op zijn plaats gehouden, maar als het nodig is kan het afgenomen worden. Vanuit de voordeur is onderhoud nu eenmaal lastig te doen.

In de zomer en zeker door de Australiëreis is het projekt tot een stop gekomen. Af en toe nog wat bijwerken, beitsen en zo, maar daar bleef het bij. Er moest een dakafwerking komen. Op een gegeven moment bleek het dakje bij de voordeur te lekken en dat was een mooie gelegenheid om wat van het afdichtmateriaal te gebruiken voor het boekenhuisje. Nog wat hang en sluitwerk maar toen was het dan eindelijk afgerond.

Gisteren is het projekt dan toch afgerond. De dag er voor was er al een steun gemaakt voor het kastje en dat ging toen in de grond. Boeken er in en en klaas is Kees. Nu nog aanmelden bij de diverse instanties, zoals minibieb en geocaching, en dan is het helemaal af.

WebPi: Web server and reverse proxy

For WebPi, the computer that would become responsible for the connection between my local area network and the world wide internet, an RPi3 was chosen. The idea was to install a renowned web server software package on it, Apache.

The first step is installing the operating system, Raspbian. Since the machine would run without console, the light version should be sufficient. Any missing packages can be added anyhow. At the time of writing, the latest version is Stretch. That proved not to be fully stable yet for the subsequent steps, so I chose the previous version Jessie (2017-04-10). Installation runs smoothly and after changing the host name, allowing SSH and setting the time zone the machine is ready for use. Important issue is here to set a new password for the standard user, pi, otherwise the vulnerability of the web site and subsequently the whole local area network will be at stake.

There are quite a few descriptions available on the internet to install Apache, I chose the one that was clearly aimed at the kind of RPi I was using: “How to Make a Raspberry Pi Webserver” by Alok Naushad. It is intended for RPi2 but appears to work as well for the RPi3 with Jessie Lite. All steps were followed until setting a static IP-address. In my router, a Fritz!Box 7581, there is no need for that, as it has a primitive DNS for the connections within the LAN, e.g. WebPi.fritz.box . This will keep track of a correct IP-address. The router also has the option to fix the IP address to the MAC address of the device but that appeared unreliable. Furthermore, my internet provider already has a host name on the world wide web set for me so there is also no need for that step. Although this host name is a bit clumsy as it contains the whole IP-address it can be used. In practice, the user should not need to use this host name but it will be used for a dynamic link to the web site(s).

An important issue is the security of the web site as it provides the access from the world outside to the local area network. Again, there are many descriptions – right and wrong – that describe how to do this. One that, in my humble opinion, is very well written and stands out for clarity is the answer written by Thomas Ward in response to problems associated with this issue. It clearly describes how to set ownership of the various folders as are accessible from outside.

The second step involves setting up the Apache web server so that it will pass on html-information from the various other RPis in the local area network, such as control of the central heating system, solar heaters, etc. to the outside world without compromising  the machines or the network. Of course the web site of Apache has a description, albeit a bit brief. A better description was by LeaseWeb Labs, but actually a combination of various examples finally gave the hint. The essence is to set up the reverse proxy virtual host configuration in “/etc/apache2/sites-available/yourwebsite-proxy.conf”. Mine essentially looks like

<VirtualHost *:80>
ServerName www.yourwebsite.com
DocumentRoot /var/www/html
ProxyPreserveHost On
ProxyRequests off
ProxyPass /pi1 http://RPi1.fritz.box:8083
ProxyPassReverse /pi1 http://RPi1.fritz.box:8083
ProxyPass /pi2/ http://RPi2.fritz.box/~pi/
ProxyPassReverse /pi2/ http://RPi2.fritz.box/~pi/
</VirtualHost>

From the web, the machines are now available as www.yourwebsite.nl/pi1 etc. The ServerName is the one provided by my provider. the other names come from the router and host name settings. There are two examples, one where a port is different, 8083, from the standard 80 and one where the html-information is in another directory. One remark though: it is possible to replace the host names by their IP-addresses; this is extremely helpful while testing.

Finally, there are free services that test the security of the web site. I tried ScanMyServer and it gave 60%; most problems are associated with the older version of Apache but there is no more recent version available for RPi or one has to do the compiling and further processing oneself. For the time being good enough.

 

Programming 433 MHz remote control key fobs

Remote control key fobs are typically  used for garage doors and the like. Also car door opening systems use them. The protocol of these devices seems to be relatively standard. When pushing one of the buttons, series of radio frequency (rf) pulses are sent that are subsequently received by the door opening equipment. These  compare the received code sequence with the internally stored code and when equal open or close the door. This principle is also used for controlling lighting, transmitting weather station information, etc.

This little report is on so-called key fob’s as displayed above. These are currently abundantly available on the web. They have the advantage that they have a mechanism by which they can be programmed from another key fob. The procedure is relatively simple but requires some persistence: eventually it will work:

  • Push the A and B buttons simultaneously. The LED goes on and after some time it starts to blink fast. This indicates that the key fob is erased and the buttons can be released.
  • Now, upon pushing any of the buttons the LED only blinks once very short. This indicates no code is transmitted.
  • Let us call this “empty” key fob number 1. The key fob from which we wish to copy is number 2.
  • We will now copy the code of button X, either A, B, C or D, from key fob 2 onto key fob 1 button Y (A, B, C, or D).
  • Push button X on key fob 2, its LED will burn continuously to indicate it is transmitting the code sequences.
  • Push button Y on key fob 1, its LED gives an initial short blink and then remains off.
  • Bring the two key fobs, while keeping the buttons pushed, together, usually front to front but other positions may also work, until the LED on key 1 will start to blink. Then the buttons may be released.
  • Push now button Y on key fob 1 and the LED should shine continuously to indicate that it is transmitting a code. If everything went well this code also activates the door that was controlled by key fob 2.
  • This can be repeated for all four buttons. Identical codes for two different buttons can also be programmed, the key will not complain.

Important to note is that similarly looking key fobs may have different, albeit similar, protocols. Follow the seller’s instructions where necessary.

One may also purchase a control unit that contains two relays that can be controlled from two buttons of an above described key fob. These units also need to be programmed, although they do come with pre-programmed key fobs. The unit has a DIP-selector that sets the control mode. Here we use that a single button switches both on and off. The unit has two LED’s that are next to the relays and indicate the status of the relay: on or off. Close to the control button there is another LED. It blinks upon receipt of a coded rf signal from a key fob.

If one wishes to operate with different codes than encoded from the factory, one proceeds as follows

  • The codes are erased by pushing the button until the LED starts blinking.
  • Now, the keys cannot switch the relays anymore although the LED may blink to indicate that a code has been received.
  • Pushing the button on the unit once brings the unit into programming mode, the LED goes on.
  • Push on the key fob first the button that is to control relay A. The LED will blink to indicate reception. Release the button. The LED remains on.
  • Push now on the key fob the button that is to control relay B. The LED will blink to indicate reception and go off.
  • The unit is now programmed. Pushing the two buttons will now activate relays A and B.
  • Note, that pushing twice the same button will only program relay A!

It may be interesting, to use a completely different code with the key fobs and the unit. Such is described for a Raspberry Pi by an instructable written by george7378. Below an example of a trace of a button code.

The rf signal is on during the “high” time, typically about 0.5 ms, and off during the “low” signal, about 1 ms. These sequences are repeated with an interval of about 10 ms so that hundreds of code sequences are sent by pushing the button for a second or so. The code can be easily read, a short high followed by a long low is interpreted as a binary 1 whereas a long high followed by a short low is a binary 0. The binary code sequence thus consists of 25 bits, here 1111 0000 0101 0110 0101 1110 1. There are 225 = 33,554,432 different codes possible with these 25 bits.

With the little Python program described by the above mentioned instructable it is relatively simple to enter ones own code. Using a 17,2 cm antenna on the 433 MHz transmitter makes coding the key fobs quite a lot simpler. Especially if one makes the number of sequence repetitions large, i.e. change NUM_ATTEMPTS from 10 to 100.

There are many different codes possible already with this 25 bit sequence, but if one imagines that the number of bits, the “high” time, the “low” time and the repetition time can all be varied at will one sees why there usually is not too much interference between units and key fobs of various origin. There will be limits on the timing and codes used, but a lot of variation remains for a given set.

A few remarks on the programs described in instructable.

  • It uses the same GPIO port for sending and receiving. I found it easier to have different ones so that both units can be connected simultaneously.
  • Using on the first line the code
    #!/usr/bin/python

    and making it executable by for instance

    chmod +x TransmitRF.py

    allows one to simpler call the program as

    ./TransmitRF.py a_on

    and repeat its operation.

  • Rather than using ReceiveRF.py, the program to read the code sequence from key fobs, I prefer to use my Logic 4 Digital+Analog Logic Analyzer from Saleae. It gives much more freedom in analyzing the data.

RPi Zero: combined power and ethernet connection

The Raspberry Pi Zero (RPi-0) is a wonderfully small PC-board with a lot of  functionality but without an internet connection, either wireless or ethernet. For many stand-alone applications, such as a surveillance camera, a power connection and an internet connection are sufficient. Of course one could use a wireless connection (WiFi) but these are not that reliable and often temporarily drop connection. Therefore an ethernet connection is preferred. The wiring to the RPi-0 would then involve two items: power cable through one micro-USB port and the internet connection using the other micro-USB port. Both a WiFi-connection or an ethernet connection require a relatively bulky piece of hardware: the beauty of a tiny processor with camera is lost!

But in many applications, USB-cables are used both for power and communication. So, if one uses a standard micro-USB (B male) to a standard male USB A cable all further gadgets can be in another place, for instance in house. Cable lengths can be 3 meters and maybe more! At the other side one has to split to ethernet and power or to USB and power. For the latter, splitter cables are available. For the first I used a standard ethernet to USB converter and added a power cable and a female USB A connector, see above. The latter connects through the cable to the RPi-0 and the other to a power supply. For the power connection I could also use a USB connector but that would be confusing.

The USB to ethernet converter needs some rewiring, see below. The USB cable has been removed and replaced by a cable with the USB female connection. The wire colors are not always following convention, so testing the cable with a multimeter is advised.  The power cable was connected in parallel, the connector is a standard power cable as used on the better wall plug power supplies. Note that at least 2 Amperes are required to run the RPi-0 reliably.

The cabling is already in use with a home-made surveillance camera and runs uninterrupted for over a month now.

Doorgangsmelder serredeur

Het was al gemeld bij de vervanging van de deurbel dat er ook een doorgangsmelder bij de serredeur nodig was. Het heeft even geduurd, maar die is er nu ook. Op de bel in de werkkamer klinkt nu een gong als aan de voordeur wordt gebeld en klinkt gefluit van vogeltjes als er iemand door de serredeur gaat. Ook gaat de flitser af maar die zie ik alleen als het schemert of donker is.

Er zijn verschillende vormen van doorgangsmelders in omloop maar voor de toepassing bij de serredeur wilde ik liefst zo min mogelijk bedrading. Dat sluit de meeste zelfbouwpakketten uit, want die bestaan uit een losse zender en ontvanger. Ik heb nog wel wat geëxperimenteerd met spiegeltjes en reflectoren maar dat werd niet echt een  bevredigende oplossing. Een veel elegantere oplossing zou een van de reflectielichtsluizen van Contrinex zijn, zoals de LRS-1180-304. Met een schakelafstand tot 2 meter zou de breedte van de deur makkelijk te overbruggen zijn. Alleen de prijs stond me wat tegen. Toen ben ik wat gaan zoeken op marktplaats.nl en op ebay.nl en daar vond ik wat ik zocht tegen een redelijker prijs, ongeveer 25 euro. Ik kon zelfs een exemplaar bemachtigen met nog een kabel er aan uit een sloopproject. Als ik wat meer geduld had geoefend dan had ik nog wel goedkoper uit kunnen zijn.

De drukknopzender van KlikaanKlikuit zoals ik die ook voor de voordeurbel gebruikte kon hier goed op worden aangesloten. In feite kon ik met een kleine voeding van 12 Volt (300 mA) zowel de reflectielichtsluis als de zender voeden. Ook de bedrading is relatief simpel. Alle voedingsaansluitingen worden gekoppeld zoals gewoon. De schakeluitgang van de reflectielichtsluis – een pnp-transistor naar de +12 Volt – kan direct aan de schakelingang van de drukknopzender worden verbonden.

2016-11-19-13-56-43-2Een houten sigarendoosje past wel in de kast naast de serredeur en daar heb ik dus het zaakje gemonteerd. Op bovenstaande foto zie je duidelijk rechtsboven de reflectielichtsluis, rechts de aansluiting op de netvoeding en rechtsonder de printplaat van de drukknopzender. Het kastje van de drukknopzender was iets te groot, dus die heb ik er uit gelaten. Een klein stukje dubbelzijdig plakband  voorkomt dat het doosje per ongeluk kan verschuiven. Dekseltje dicht en het geheel kan zijn werk doen.

Water pressure sensor for Raspberry Pi

A pressure sensor is a necessary part of any pressurized liquid system such as a solar boiler, the central heating system in a house and even a car. In all these systems it serves as a monitor on the well being of the system, in particular whether the liquid is still inside or whether there is a leak. Typically, it comes in the form of a pressure gauge somewhere attached to the tubing of the system. Only very recently are there electronic readings and this is usually for a central heating system. But solar boilers are also useful to monitor, just because they are more exposed to extreme weather conditions, and so the idea was already for a long time to install such a device.

But which one to take? The simplest form of such a sensor is a switch that opens when the pressure is above a given minimal value. These are found in the more normal cars, only fancy cars have a more involved one that actually gives a value for the pressure. Whether oil or (cooling) water pressure sensor, both are of the membrane kind because that gives the most rugged form. They are typically provided by VDO but sometimes cheaper look-a-likes are also available. They are frequently offered at a significant discount at Ebay. The membrane separates a pre-pressurized compartment from the compartment of which the pressure has to be taken. The membrane in-between deforms with the pressure difference and this is recorded by means of a strain gauge attached to the membrane. Typically the resistance of the strain gauge varies about 20 Ω per Bar.

Such resistance values are fine for car-applications. The moving coil meter that is usually attached to it through battery power will have a relatively high current to control its position and hence it remains relatively insensitive to vibrations. But for electronic applications it is not so easy as it means high currents that are not available from the RPi or the like of credit card computers. This calls for a special solution that took some while to be found.

First the selection of the pressure sensor itself. The solar boilers do not have a lot of water in them, 5 – 10 liters typically. The solar boiler also contains a pressure vat, a pre-pressurized compartment in contact through a membrane with the system liquid. The vat does not need to be big for a solar boiler, 8 liter is the smallest I could find though. It is pre-pressurized at 0.5 Bar. The bigger ones are at 1 Bar. The function of the vat is to compensate for the volume changes of the water during heating and cooling. To do so, the pressure should go at 1 Bar for the 0.5 Bar pre-pressurized vat. It then has the range from 0.5 Bar up and down to vary the position (and shape) of the membrane while heating or cooling. So, the set value at 20 ° C is 1 Bar and during operation and during outside temperature variations it may vary between 0.5 and 1.5 Bar. The latter are extreme values but possible. The maximum pressure in the system is set by a valve at 2.5 Bar. This will only be reached for instance when the pressure vat malfunctions (leaking membrane). Summing up: a pressure sensor is needed from 0 – 2.5 Bar with a good accuracy around 1 Bar.

Other conditions on the pressure sensor? Most have one of the two strain gauge contacts grounded. This is a good idea for cars where the instrument mass can serve as conductor: it saves wiring. For a microcomputer connection it is not so smart, so try to get one with free contacts (massless) to achieve galvanic isolation. The one that would be preferred (and available) is a VDO 360-081-032-NNNC that can be obtained with various couplings depending on the threading used in your system (different values for NNN). They are not cheap, of the order of 50-100 euro, but they are not expected to break down easily. If they do, there is a guarantee. A word aside on nomenclature: one will find pressure sensors under all kinds of names (Druckgeber, sender, Druckabnemer, etc.) neither of which is particularly appropriate so be prepared to select broad keywords to locate a decently priced item.

How to interface them. Because of the low currents available and the low resistance values offered by the strain gauge, one needs an analog-to-digital converter (ADC) that is capable of converting a small voltage, say 250 mV, to a minimally 8 digit number for accuracy. Interestingly, this is what the DS2438  Smart Battery Monitor by Maxim Integrated delivers. It has two ADC inputs, one for the higher battery voltages and one for the battery current measured across a small resistor (necessarily to avoid excessive loss due to the measurement itself). The chip has 1-wire interface that combines with temperature sensors of the type DS18B20, also from Maxim Integrated. The required electronic circuitry is minimal and in actual fact only requires either a current source or a (relatively) large resistor in series with the strain gauge. In the latter case some a-linearity is introduced that, as it is monotonic, can be corrected for. Using the simplest scheme with a resistor R from the strain gauge to the supply voltage of 3.3 Volt, the resistance Rg of the strain gauge is derived from the convertage voltage V as

Rg = (V / 3.3)*R

and with the calibration curves given for the pressure sensors one can then compute the pressure.

Where the temperature sensors DS18B20 are well provided with software drivers, the DS2438 unfortunately is not. The Python software that exists for the Raspberry Pi is just crappy. So I made a little C-program to take the value from the pressure transducer. Those interested can approach the author for a copy. When using programmed I/O, which is the simplest to implement, the data loss is something to worry about. But since taking a sample is so fast, there is no problem to repeat the reading procedure a few times until a sample has been successfully read. A more reliable procedure uses a UART (serial interfacing circuit) but then requires a little more hardware.

The pressure and temperature sensors are installed for a few weeks now and perform satisfactorily. I will install another one with my other solar heater system soon.

Lantaarnpaal bij bouleveldje

Midden tussen de huizenblokken waarvan onze woning deel uitmaakt ligt een speelveldje met wat attributen voor kinderen. Ook voor volwassenen is er het een en ander: twee banken en een tafel maar ook een heus jeu-de-boules-veldje.  Niet dat er veel gespeeld wordt. Voor zover ik weet eigenlijk alleen de dag volgend op het jaarlijkse buurtfeest.

IMG_20160609_120235Maar natuurlijk zouden de buurtgenoten wel vaker willen spelen, maar meestal is het dan al donker en de lantaarn bij het veldje is wat ver weg. Althans, dat was de klacht zo’n 10 jaar geleden.
Lees verder Lantaarnpaal bij bouleveldje