Ondertussen zijn we een ganse tijd verder en is het voor >90% operationeel. Het heeft wat langer geduurd dan gepland maar dat had zijn redenen.
Er is uiteindelijk gekozen voor RS485 communicatie met een ESP32 master, 1 ATmega644p cliënt voor de pomp en 8 ATmega644P cliënts voor de waterhuishouding van de waterreservoirs.
De ATmega cliënts zijn allemaal voorzien van een 14,7456MHz kristal. Communicatie tussen master en cliënt gebeurd op 19200Bd. Dit blijkt snel genoeg voor het beoogde doel.
Wat staat er nog te doen?
- Database opslag van de gegevens zodat de frequentie van vullen en waterverbruik beter kan gevolgd worden.
- Watersensor in de wateropslag om het peil te monitoren. Zo kan er vermeden worden dat er meer water genomen wordt dan voorradig en de pomp gaat droog lopen. Hiervoor werd een 4-20mA druksensor aangekocht maar die dient nog geprogrammeerd en geplaatst. Communicatie met master zal via MQTT verlopen. Te laat aan gedacht een RS485 kabel mee te trekken met de water buis.
- Enkele knoppen en leds aan de master bevestigen.
Elke cliënt kan een adres worden ingesteld. Dat maakt het mogelijk snel cliënts te wisselen mochten er problemen opduiken. Er is ook geen behoefte om elke clïent van unieke software te voorzien. Nadeel? Gebruik van 9 ingangen van de ATmega (8 BCD en 1 Blank). Voordeel als er communicatie is met de cliënt licht het display op.
Master met ILI9341 3,2" scherm. Toetsen en 3 leds dienen nog aangesloten. Aan de achterzijde, niet zo spannend, van de PCB een ESP32 dev board, MAX3485, EEPROM en de connectoren voor RS485 en 5V voeding. Alleen bij de master is de afscherming van de RS485 120Ω kabel aan GND gelegd. Op alle andere bordjes wordt de afscherming doorverbonden zonder gebruik van GND.
Pomp cliënt. Onderaan links de adres instelling. Onderaan de 2 flow meters (totaal ingenomen water en water doorgestuurd naar de waterreservoirs). Daar net boven batterij van de RTC. Zo zet de cliënt om middernacht UTC zijn verbruik op 0. Rechts 2 relais voor de pomp en de waterklep met hun connector. Bovenaan links 5V aansluiting en 2 RS485 aansluitingen. Naast de condensator het 'kristal' en MAX485.
Achterzijde van een water cliënt. De pomp ziet er functioneel ongeveer gelijk uit aan de achterzijde. De led drivers zijn BCD => 7 segment decoders type MC14511. Er naast het RTC IC.
Water cliënt voorzijde. Naast de adres displays de connector van de peilmeting. Gebaseerd op NC contacten bij te lage waterstand en open contacten bij gevulde waterstand. Mocht er een draad breken, wordt er steeds een geopend contact weergegeven en zal de bak niet gevuld worden. Ook als de connector wordt uitgetrokken is er geen bij vulling meer. Na 10 seconden geopend hoog water contact wordt de klep gesloten. Net boven deze connector een neopixel. Groen bij gevulde bak (beide sensoren open). Geel bij normale waterstand (sensor hoog gesloten, sensor laag open). Mauve bij lage waterstand (beide sensoren gesloten). Rood bij fout (laag sensor gesloten hoog sensor open). Rechts naast lithium cel het printrelais dat de 24V klep stuurt. Net er boven de connector voor de klep. In eerste instantie voorzien dat klep met een stekker kon uitgetrokken worden. Uiteindelijk vast aangesloten zodat 2 contacten niet gebruikt worden. Net er boven DS18B20 temperatuur aansluiting. Meet de temperatuur van het aanwezige water. Overige zaken idem als pomp cliënt.