Zelfbouw aqua computer


N

NLAnaconda

Guest
In navolging van de vele Arduino projectjes hier doe ik ook maar mijn duit in het zakje. Ik wil stap voor stap een aquarium computer ontwikkelen voor mijn broertje. Zelf ben ik webontwikkelaar en heb op programmeer gebied veel ervaring. Ik heb daar in tegen niet veel ervaring met elektrotechniek, maar met internet kom je een heel eind.

Zoals gezegd wil ik de aquarium computer in fases ontwikkelen om zo regelmatig een update uit te kunnen geven en elk onderdeel goed uit kunnen werken. Voor de mensen die dat willen zal ik de geschreven libraries vrijgeven zodat je ze zelf makkelijk kunt importeren in je eigen projecten.

Gebruiksvriendelijk
Ik wil de aquariumcomputer zo gebruiksvriendelijk en simpel mogelijk maken voor de eindgebruiker. Dat wil zeggen dat de eindgebruiker geen enkele keer de computer aan een pc hoeft te hangen om iets te installeren, tenminste dat is het doel.
Om dit te realiseren wil ik de computer uitrusten met een WiFi verbinding voor alle communicatie. Volgens verschillende bronnen moet een "over the air" update mogelijk zijn. Oftewel, de computer maakt elke dag verbinding met een webserver, kijkt of er een nieuwe versie is en installeert deze.

Bediening via website en/of app
Ik wil de bediening van de aquarium computer volledig via een website en/of app laten gaan. Instellingen wijzigen, commando's sturen, alles moet via de pc of een app op je telefoon.

Deze twee punten wil ik als uitgangspunt nemen bij de ontwikkeling.

Fase 1
De volgende onderdelen wil ik voor fase 1 inbouwen:
- Wifi aansluiten
- Real Time Clock aansluiten
- LED verlichting aansluiten
- Temperatuur sensor aansluiten

Wifi aansluiten*
Omdat de doelstelling is dat de aquarium computer nooit door een gebruiker aan een computer gehangen hoeft te worden wil ik alles via WiFi laten lopen.
Maar de ��rste keer moet de computer op het WiFi netwerk aangesloten worden en de inloggegevens van het netwerk weten. Hiervoor wil ik het volgende stappenplan gebruiken.
1. Bij eerste gebruik (of na reset) zet de aquarium computer een eigen netwerk/accespoint op.
2. De gebruiker kan via WiFi verbinding maken met de aquarium computer en via de app de inloggegevens van zijn eigen netwerk doorgeven.
3. De aquarium computer verbreekt de verbinding en maakt vervolgens verbinding met het netwerk wat de gebruiker heeft op gegeven.
4. De aquarium zoekt verbinding met de website waarmee de gebruiker de computer kan beheren.
(* in theorie, geen idee of dit gaat werken)

Real time clock aansluiten
In ons leven draait alles om tijd en het is daarom belangrijk dat de computer de tijd weet om bijvoorbeeld lampen aan of uit te zetten.
Om de gebruiksvriendelijkheid te waarborgen moet de computer zelf de tijd via internet ophalen zodat de gebruiker dat niet perse hoeft in te stellen.

LED verlichting aansluiten
Dit is het eerste onderdeel wat echt iets met het aquarium te maken heeft. Via een RGB (rood geel blauw) LED strip wil ik weerssimulatie toevoegen aan het aquarium. Dat wil zeggen dat er 's nachts maanlicht is, 's ochtends zonsopkomst en 's avonds zonsondergang.

Temperatuur sensor aansluiten
De volgende stap is het aansluiten van een temperatuur sensor. De computer moet de meetgegevens doorsturen naar de website waarna er een log met grafieken e.d. bijgehouden wordt.

Dat is het voor fase 1. Zodra dit is afgerond ga ik volgende onderdelen aansluiten zoals een PH sensor. Uiteindelijk wil ik dat de computer ook onderdelen kan besturen zoals misschien thermostaten, stromingen, monitoren van pompuitvoer, etc ,etc.
Als je ideeen hebt, laat het weten.

Over dit topic
Ik hou je hier op de hoogte van de ontwikkeling. Zal je laten weten wat alles heeft gekost en zal de libraries schrijft hier openbaar maken. Ben je handig, dan kun je er zelf misschien gebruik van maken. Zo helpen we elkaar weer verder in het leven ;)

Wat ik niet weet
Dingen over aquariums. Ik weet dat er water in gaat en er vissen en planten in zwemmen maar dan houdt het al snel op. Mijn broertje echter weet er alles van, en ook jullie hier weten er alles van. Hopelijk kunnen jullie mij helpen met vragen, functies en idee�n.
 
De bestelling is nog onderweg, maar thuis heb ik al wel een Arduino (computertje) en een LED strip. Dus daarom maar alvast aan het pielen geweest.

LED strip - weerssimulatie
De ledstrip gaat voor het licht zorgen en imiteert verschillende weerstypen. Als eerste ben ik begonnen met maanlicht en zonsopgang. Uiteindelijk moet het weer willekeurig zijn. De aquarium computer gaat willekeurig weer simuleren waardoor je dus nooit weet wanneer het gaat onweren of wanneer de stralende zon schijnt (uiteindelijk moet je wel instellingen aan kunnen geven in de uiteindelijke versie).

De testopstelling
tMkqhsIr-Wuny54a-HMF6d9RzWF-9heO.png

(Grote versie hier)
- 1x Input (12V 2A adapter) (eigenlijk is 6A nodig, maar die heb ik niet, is besteld)
- 1x Arduino
- 3x 220 Ω weerstand
- 3x MOSFET IRLB8721
- 1x RGB 5 meter LED strip

Flikkering
Je kent het wel van de documentaires. Onderwater "flikkert/schittert" licht altijd een beetje door de breking en beweging van het water. De lichtsterkte is daardoor niet altijd exact hetzelfde. Ik denk dat een aquarium te klein is voor dat effect. Dus moet de ledstrip dat voor zijn rekening nemen.

De eerste code die ik heb geschreven zorgt er voor dat welke kleur er ook actief is, er altijd een soort flikkering in voorkomt. Om het natuurlijk te houden is deze flikkering volstrekt willekeurig. Er zit dus geen patroon in. De sterkte hiervan is aan te passen. Hier het effect bij maanlicht.

[video]https://www.youtube.com/watch?v=HOiDSfL7qJg[/video]

Onweer
Daarna heb ik onweer ingebouwd. Hieronder een filmpje van wat bliksem tijdens maanlicht.

[video]https://www.youtube.com/watch?v=HCWmkYL3Bqo[/video]

Zonsopkomst
Daarna een stukje geschreven voor de zonsopkomst. De tijden zijn zelf te configureren. In het filmpje duurt de zonsopkomst 1 minuut. Hieronder het filmpje inclusief Lion King muziek ;-). (Excuses voor het verticaal filmen)

[video]https://www.youtube.com/watch?v=BlJ4B5tvLYo[/video]

De code zal ik later vrijgeven, er moeten nog wat dingen verbeterd worden.
 
leuk project, al heb ik geen kaas van programmeren en electronica gegeten. Het flikkeren is denk ik niet nodig, omdat Led deze eigenschap al een beetje heeft boven het water, bovendien denk ik dat het gaat irriteren als constant de lichten knipperen. Het onweer is wel geinig, maar zou meer effect hebben om er een regenbui bij te kunnen simuleren en het liefst met wat koeler water, daar er vissen zijn die met zoiets getrikkerd worden tot eiafzetting.
 
Bedankt voor je reactie. Het flikkeren zit er nu ingebouwd maar is helemaal uit te zetten. Ik heb geen idee hoe het er onderwater uit ziet. Dat zal ik testen.
Een regenbui simuleren zet ik op de lijst. Dat moet vast mogelijk zijn door een pomp aan te zetten die water door een geperforeerde slang pompt. Koel water wordt dan wel weer knap lastig, want hoe koel je dat water af...
 
NLAnaconda zei:
Koel water wordt dan wel weer knap lastig, want hoe koel je dat water af...

Tja als er een koudwaterleiding bij de bak in de buurt is, zou je misschien een soort van ballvalve kunnen aansturen met de arduino, deze ballvalve zou bv ook op het riool kunnen, eea icm niveauregelaars. Dus....onweer, ballvalve kraan open, niveauregelaar detecteerd water en zet de valve van riool open, wanneer onweer over is sluit de kraan en de nieveauregelaar zorgt weer dat het waterpeil goed is en sluit het riool. Hmmm haha zoiets dus
 
Haha ja dat is zo vast mogelijk. Maar dan hebben we over een heel kleine groep mensen die hun aquarium zo goed voor elkaar hebben. Ik wil eigenlijk naar algemenere dingen toe waar iedereen wat aan heeft. Een regenbui (maar dan niet met koud water) vind ik wel een hele leuke toevoeging.
 
mooi project hoor;)
maar waarom een uno en geen mega?
wat wil je gaan gebruiken als HMI? denk dat telkens een serieel monitor aansluiten op je controller niet heel wenselijk is.

voor je regen, google eens op regenfilter ;)
is gewoon een simpen bakje met gaatjes en wat spons, klein pompje die je aquariumwater omhoog pompt het bakje in en tada het regent.
zou je aan kunnen sturen met een relais (wel erop letten welke versie je neemt.. je kan vaak kiezen tussen 5v of 12v ;) )
 
Ik heb nog een Uno over. En voor de eerst functies denk ik dat deze voldoende kan. Later is het misschien een idee om over te stappen naar een Mega. Maar voorlopig kan ik met een Uno voor uit.

Ik wil een website en app op de telefoon gebruiken als HMI. Hierop moeten statistieken uit te lezen en instellingen aan te passen zijn.

Het doel is inderdaad om geen serial aan te hoeven sluiten. Updates wil ik over the air installeren. Dat wil zeggen dat de computer via zijn WiFi aansluiting zelf moet zoeken of er een update is en zo ja, deze installeren. Dit is denk ik gelijk de grootste uitdaging.

Die regenfilter is geinig en simpel om te maken. Ik zag verschillende aquarium pompjes van 12 V voor een paar euro van 240l p/u. Leuk idee om toe te voegen!
 
het hoeft niet op 12v, via een relais kan je ook 230v aansturen ;)
hoef je de uno geen 12v te laten schakelen, scheelt eventueel ook weer in de belasting en ruis op de uno.
 
Dat is waar. Echter kan de Arduino prima omgaan met 12V en de LED strip draait ook op 12V. Dus vandaar dacht ik dat een pompje van 12V het makkelijkst is. Maar voor alsnog staat een regenmaker niet bovenaan het lijstje. Eerst de basis opzetten en vervolgens denk ik dat inderdaad een relais inbouwen meer prioriteit heeft dan de regenmaker. Die kun je uiteindelijk voor meer dingen gebruiken.
 
dat is inderdaad makkelijk, ik heb met mijn mega de ervaring dat de voltage regulator aardig heet word van 12v en dus draait ie op 5v..
mijn led strips worden gedimd met pwm.
 
Hmmm dat moet ik dan even in de gaten houden. Ik heb het nog geen lange tijd laten draaien.
Omdat in de specificaties staat dat 5-12V ideaal zijn en hij tot 20V max kan, dacht ik dat hij het makkelijk aan moet kunnen. Maar als hij te warm wordt is het inderdaad een idee om een andere oplossing te zoeken.

Welke LED strips gebruik jij?
 
Allemachies wat een apparaat. Nu snap ik dat je inderdaad een mega nodig hebt ;-)
 
Dat topic ziet er zeker gaaf uit. Ik heb daar behoorlijk wat doorgelezen. Toch kies ik er voor om zelf een project te beginnen. Allereerst voor de uitdaging en daarnaast omdat ik dingen anders wil doen. Er is namelijk best veel technische kennis nodig om het bord wat ze hebben gemaakt te kunnen gebruiken. Mijn idee is meer van het plug-and-play principe. In hoeverre dat haalbaar is weet ik niet. Ik heb respect voor de werkzaamheden in dat topic maar wil zelf graag prutsen :)

Website en naam
Vanavond heb ik de basis van de website opgezet die een belangrijke spil in het project gaat spelen. De naam Aquacontroller.nl was nog vrij, dus zo gaat het project heten ;).

Het plan is tot nu toe het volgende:
o_1age4am4n1jq5tr7mbj1r78104j7_thumb.png
 
vaak als het plug & play zou moeten zijn is het plug & pray :p
maar ziet er goed uit hoor ;) maar heeft een due niet meer mogelijkheden als het komt op sensoren en internet connecties etc.
wel een mooi concept dat ie headless word, weer een onderdeel minder dat je moet verwerken ergens in.
 
Ik heb niet veel ervaring met de hardware maar ik denk inderdaad dat je gelijk gaat krijgen wat betreft de imitaties van de Uno. De poortjes gaan waarschijnlijk wel schaars worden.
Maar ik neem aan dat de software gewoon kan draaien op een Mega of Due (wat poortjes wijzigen en klaar), weet jij dat?

Daarnaast ben ik me aan het verdiepen in een PH meter maar lees op verschillende fora en ook op Aquaforum dat de goedkope versies toch aardig ellendig moeten zijn wat kalibratie betreft. Ik denk dat ik dat voor een later stadium bewaar.
 
ik heb DFrobot geprobeerd maar ik kreeg de code geneens draaiend..

due heeft geen EEPROM als ik me niet vergis, weet niet of een uno dat wel heeft?
maar dan moet je dus ergens anders je data op weg schrijven.
code aanpassen van een mega naar een due was een redelijke klus heb ik ergens gelezen.
 
Uno heeft inderdaad EEPROM. Ik heb ook een Mega bordje waarmee ik eens kan testen in hoe verre de code over te zetten is.

Hoe meer ik lees over die PH sensor hoe minder ik het vind. Van DFRobot moet je sowieso de pro versie hebben. Die blauwe staaf kun je niet eens voor langere tijd onderwater houden. De pro versie kan dat wel maar je moet de signalen volledig ge�soleerd laten lopen anders krijg je verkeerde waardes. Ik lees dat als je de PH sensor een beetje fatsoenlijk wil implementeren je iets als dit met dit hebben. Maar dan wordt het alweer een duur grapje. En dan heb je nog niet eens die dure calibratievloeistoffen.
 
voor PH hoef je volgens mij geen full isolation te hebben, alleen voor de EC
of als je meerdere sensoren wilt gaan gebruiken.
maar de pro-probe van df robot zou wel kunnen alleen de stamp schijnt niet super te zijn.
 
Nou ik schuif de PH naar achteren want ik heb een volgend probleem, lichtsterkte.

Ik heb de eerste library voor de arduino klaar: Aquacontroller_ledstrip 1.0. Voor elk project met een analoge ledstrip te gebruiken.
De library doet alle 'ingewikkelde' logica. Enige wat je in je projecten hoeft te doen is bijvoorbeeld: ledstrip.fadeToColor(255,255,255,10); te gebruiken om binnen 10 seconden naar volledige lichtsterkte te gaan.

Voorbeeld code:
Code:
#include <aquacontroller_ledstrip.h>
aquacontrollerLedstrip ledstrip;
 
void setup() {
 
   //Zet de pinMode
   pinMode(5, OUTPUT);
   pinMode(6, OUTPUT);
   pinMode(3, OUTPUT);
 
   //LedController met poorten (5,6,3), 25% 
   //noisePercentage en een frameRate van 50
   ledstrip = aquacontrollerLedstrip(5,6,3,25,50);
 
   //Fade de ledstrip binnen 10 seconden
   ledstrip.fadeToColor(150, 60, 80, 10);
}
 
void loop() {
   //Update functie moet altijd in de loop aangeroepen worden
   ledstrip.update();
}

Maar goed, het probleem waar ik het over had: lichtsterkte. Mijn broertje heeft een bak van 700 liter. En daar gaat een ledstrip van 300 kleine ledjes weinig tegen in brengen. Nu zou ik met een relais na "zonsopkomst" de tl balken aan kunnen zetten, maar zijn lichtbak is aardig aan vervanging toe en daarom zoek ik een oplossing die eigenlijk 100% led is. Zonder dure kant en klare bakken want daar zit geen uitdaging aan.
Maar ik ga voor dit probleem eens neuzen in de verlichtings sectie van dit forum.
 
PWM, LDD drivers, dikke heatsink, 3w of meer powerleds, dikke voeding.

zou je wel ff bezig moeten houden :p
 
Erg knap dit �n ver boven mijn bescheiden pet... Nu ga ik dan ook een waarschijnlijk domme opmerking maken. Vaak lees ik over
Raspberry Pi computertjes. Nu al in een 3e variant. Het schijnt dat je daar veel mee kan doen. Is zoiets nu ook bruikbaar voor een aquarium liefhebber? Ik weet dat ze wel duurder zijn dan de bedragen hier genoemd...


Groet,
Ben.
 
Een Arduino is een microcontrollor en een Raspberry is een micropocessor.
De Arduino is meer toegespitst op het aansturen van apparaten en het uitlezen van sensoren terwijl de Raspberry meer toegespitst is op "zwaar" rekenwerk zoals video encoding of zware berekeningen. Een Raspberry is meer een computer en er draait vaak ook een besturingssysteem (linux versie) op.

Dat wil niet zeggen dat de een het andere niet kan hoor. Maar ik denk dat een microcontrollor (er zijn ook van de Arduino tig kloons en versies) meer geschikt is voor deze aquarium taken.
 
Misschien kun je voor een betere lichtsimulatie gebruik maken van een neopixel library..
 
Waarom? Zou je dat eens willen onderbouwen?
Heb het net opgezocht, maar dat zijn toch digitale led strips/ringen/bordjes?
Als ik daar gebruik van ga maken wordt het opeens een heel duur project.
Voor � 34 heb in dan 64 digitale leds tegenover � 10 voor 300 analoge leds. En de meerwaarde voor het doel is denk ik minimaal. Ik hoef niet elke led los aan te kunnen sturen.
Of bedoel je iets anders?

Ik heb me eens zitten verdiepen in licht in een aquarium om te kijken hoeveel lumen we per liter we nodig hebben. Na wat rekenen zouden we er met ledstrips wat lumen betreft moeten er moeten komen als we naast elke rgb strip ook een witte strip nemen.
Mijn broertje heeft minimaal 14.000 lumen licht nodig. Alleen de voeding moet wat meer amp�res kunnen trekken.
 
NLAnaconda zei:
Ik heb me eens zitten verdiepen in licht in een aquarium om te kijken hoeveel lumen we per liter we nodig hebben. Na wat rekenen zouden we er met ledstrips wat lumen betreft moeten er moeten komen als we naast elke rgb strip ook een witte strip nemen.
Mijn broertje heeft minimaal 14.000 lumen licht nodig. Alleen de voeding moet wat meer amp�res kunnen trekken.

gwn kappen met het 12V spul uit china en gaan voor echte leds.
heb je ook niet zoveel ampere nodig.
 
Ik heb de ledstrip doorgemeten en hij verbruikt 2A op volledige sterkte.

Maar ik denk dat je gelijk hebt en dat ik over moet gaan naar 24V leds, en dan desnoods met 2 adapters.
 
Interessant! Een aanstuurbare Arduino-gebaseerde LED controller zou hier ook heel welkom zijn. Ik heb mijn project nog niet publiek staan, maar ben aan iets soortgelijks bezig. Ik kan al temperatuur, ph waarden en lek-detectie uitlezen. Dat gaat richting de cloud en vanuit daar naar een mobiele app (Android maar zeer eenvoudig portable naar andere OS-en). Ik kan ook relays aansturen vanaf mijn mobiele app.

Ik werk met een Raspberry die op zijn beurt verbinding kan maken met 1 of meerdere modules, op dit moment via Bluetooth. Zo heb ik nu dus een sensor module (bij mn bak) en eentje die de lek-detectie op zich neemt (in de kast) + 4 relays aanstuurt. Het systeem is uitbreidbaar, dus je kunt zoveel modules koppelen als je maar zou willen (bijvoorbeeld voor meerdere bakken). Als jij een Arduino gebaseerde LED controller schrijft kan ik die redelijk eenvoudig inpluggen in het systeem en aansturen. Het 'moeilijkste' stukje is dan nog het schrijven en een UI om licht-programmaatjes mee te maken, de rest heb ik al grotendeels :)

Ik ga binnenkort de boel op GitHub zetten en open source maken, dan kun je er wat mij betreft gebruik van maken. Liever natuurlijk dat je dan je files bijdraagt aan het project zodat we er een grote blije open source omgeving van kunnen maken, maar dat moet je zelf weten :) Als ik het niet vergeet zal ik je even updaten als alles live staat.
 
NLAnaconda zei:
Waarom? Zou je dat eens willen onderbouwen?

Je kunt dan met 1 kanaal een ring sturen die de zon en maan kan simuleren..

Als je iets aan LEDs wil doen, zou ik ff op kijken aqua terra leds.
Tenzij je natuurlijk zelf met epoxy aan de gang durft te gaan.
 
@jsiegmund Alles wat ik maak is gewoon open source en mag je natuurlijk gebruiken. Wat besturing betreft heb ik eenzelfde idee als jij dat hebt. Via het internet en dan de controle via een website en/of app. Leuk project.
Voor mij is het voorlopig wachten tot ik het spul binnen krijg.
Waarom heb je eigenlijk voor een Raspberry gekozen?

@tom, ik heb gekeken maar dat spul is mij veel te duur. Ook zie ik niet het voordeel met betrekking tot een aantal ledstrips. En wat bedoel je met epoxy? De meeste ledsstrips zijn waterdicht.
 

Terug
Bovenaan