Postat i: paludarium, terrarium | Etiketter: arduino, sekundtimer, terrarium, timer, vivarium
Postat i: Akvarium, paludarium, terrarium | Etiketter: arduino, DIY, magnetventil, sekundtimer, solenoid valve, terrarium, timer, vivarium
Har funderat och funderat och tillslut så blev det lite omdesign av vattensystemet ..

Det nya systemet använder sig av 6 (alt fem st) magnetventiler. Hellst vill jag byta ut ”Ventil osmos ut” mot en vanlig backventil men jag är osäker om jag hittar någon som pallar trycket från pumpen (runt 9bar!) Jag ska leta efter en sådan för då slipper jag beställa ytterligare en magnetventil (har fem stycken hemma).
Ventilerna kommer att styras i par så att när de två gröna är PÅ (dvs vatten går från ”tank in” -> pump -> terrariet) så är de två röda AV. På samma sätt så är de gröna AV när de två röda är PÅ (när ”tank ut” är full och ska tömmas). Systemet kommer att prioritera vatten in före vatten ut (så långe fuktsensorn inte flaggar för kritiska nivåer såklart!)
De gula ventilerna styrs separat och påverkar/ påverkas inte av de gröna och röda.
Igår vart jag till Borlänge och köpte 25m pvc-slang (6mm) och snabbkopplingar till mina ventiler. Nu väntar jag bara lite elektronikprylar från ebay sen är det bara att köra på!
Saker som är beställda:
En billig programmerare så att jag framöver kan gå ifrån arduino plattformen och börja programmera mikrokontrollerna helt utan arduinos begränsningar. Det ska bli skoj att lära sig!
Kommer att sats på SMD (surface mount device) komponenter. Vet inte om jag är fingerfärdig nog att löda dessa men det får bli en utmaning
Postat i: Akvarium, paludarium, terrarium | Etiketter: arduino, elektronisk ventil, mpx2010dt, osmosis, solenoid valve, styrsystem, terrarium
Har funderat en hel del på hur jag ska automatisera vattenhanteringen. Som det är nu så fyller jag en 10l dunk med vatten. Mitt styrsystem sätter igång pumpen och det börjar ”regna” i terrariet. När vattennivån i botten når en viss nivå så rinner det automatiskt ut mha gravitationen till en 10l dunk. När denna bli full så tömmer jag den manuellt. Styrsystemet har en uppskattad kontroll på vätskenivån i ”IN-dunken” men ingen koll på nivån i ”UT-dunken”.
Om jag genom för ombyggnationen enligt skissen ovan så kommer system vara helt självgående när det gäller vattenhantering och regnsystem. Så här hade jag tänkt mig..
- Dra en 6mm slang direkt från badrummet ut till terrarielådan
- Koppla denna slang till en elektronisk ventil som slås på om vätskenivån i ”in-dunken” går under en viss nivå (nivån mäts med en trycksensor)
- Från ventil går vattnet via mitt osmosis-filter till ”in-dunken”, ”smutsvattnet” från filtret går ner i ”ut-dunken”
- Både in och ut-dunken har två sensorer kopplade till sig. Dels trycksensorn som håller koll på när dunkarna ska fyllas alt. tömmas. Dels en fuktsensor som ska monteras i toppen på vardera dunk som säkerhetsåtgärd. Dvs når vattnet en övre nivå så tillåts ingen fyllning. Förhoppningsvis så behövs inte fuktsensorn men jag är osäker på hur trycksensorn kommer att hantera nivåuppskattningen då lufttrycket i omgivningen varierar från dag till dag.
- Båda dunkarna kopplas till en trevägsventil som tillåter pumpen att ta vatten från båda dunkarna. Pumpen kopplas sedan till ytterligare en trevägsventil som gör att jag kan ställa om vattnet ska gå till regnsystemet eller till utloppet i badrummet.
Trycksensorn är på väg. Jag sitter och sneglar lite på ventiler på ebay men har inte lagt någon beställning än.
Får jag allt att fungera som jag vill så blir terrariet helt automatiserat förutom utfodringen av djuren
Postat i: Akvarium, paludarium, terrarium | Etiketter: arduino, mpx2010, timer


Har funderat på hur jag ska lösa problemet med vattennivån i mina två regndunkar. Som det är nu så räknar jag i förväg ut hur många liter per minut som system gör av med då regnsystemet är igång. Detta funkar iof men känns lite B. Så nu ska jag göra om systemet lite så att trycksensorer känner av vattennivån i båda dunkarna och varnar/ stänger av om nivån når kritiska nivåer.
Så 5 st mpx2010dp är köpta från ebay. Dom kostar ~300kr/st att köpa i Sverige men jag hittade 5st för 270kr på ebay (nya i kartong!) 1 beställde även 20st op-amp (operation amplifier) som jag behöver för att använda trycksensorerna tillsammans med min timer.
Ska bli mycket spännande att se detta blir..
Spanar även på tempgivare samt fuktighetssensorer.. Men det blir ett senare projekt!
Har köpt nytt lysrör och monterar in 4st nya lampor i locket. Har även skaffat nya fläktar.
Postat i: paludarium
http://photosynth.net/view.aspx?cid=dae98e2e-a1a8-46c4-a1ee-60037571b123
Har lagt timer-kodningen åt sidan en stund för at pilla på en databas samt ett (två) GUI (gränssnitt). Databasen blev en lokal mysql-databas och gränssnitten är ett för webben och ett för telefonen.
http://timer.deaddarlings.se är web gränssnittet.
men så har jag även börjat snickra på ett GUI till min iphone. Just nu lägger jag mer kraft på iPhone GUIt för att det är coolare
Nu blir det att jobba vidare med dessa för att sedan göra klart kopplingen mellan timern och databasen. När det är klart ska jag börja skissa på en PCB och förhoppningsvis beställa och färdigställa ett stand-alone-bygge.
Postat i: terrarium | Etiketter: arduino, databas, duemilanove, ethernet, mega, mysql, php, terrarie, timer, w5100, wiznet
Ah! Är sjuk! Det är typ tredje eller fjärde gången som jag varit hemma från jobbet i år! Det är mycket ovanligt för mig att vara sjuk så ofta! Jäkla otur!
Fördel med att vara sjuk då? Man kan ligga i sängen och koda på timern all vaken tid! Har gjort stora framsteg de senaste dagarna.
För det första så är SQL-databasen upp och rullar! Rätt mycket av PHP-kodningen är typ klar. Jag kan skicka data, hämta data, skapa användare och kolla om användare existerar m.m.
Sen fick jag för mig ge mig på hatprojektet! Att få den jäkla internetkopplingen att fungerar på mitt lilla kort. Det första jag möttes av är att internet-biblioteket från arduinon är uppdaterad och fungerar MYCKET bättre! Skoj! Så jag koda på och ALLT fungerar! Nu har jag kod till arduinon som både hämtar och skickar data till SQL-servern (via php-skripten då). Då var det dags att implementera i timerkoden. Det gick inte alls. All kod som fungerade att köra separat fungerade helt plötsligt inte tillsammans med timerkoden. Ah! Så frustrerande! Det funkar i ett läge min inte i ett annat!?!
Tillslut kom jag på att kolla hur mycket minne jag använder (timerkoden är rätt fet!) och WOPS där hade vi felet! Min arduino hade helt enkelt för lite minne för att göra allt jag ville. Tur då att jag har skaffat på mig en Arduino MEGA
53 utgångar istället för 13 hehe. Men då kom nästa problem. Internet ville inte funka. Det var något med att SPI-biblioteket använder olika utgångar på de olika korten. Ja ja en stunds googlande så fick jag allt att funka med lite omkopplingar.
Så nu rullar timern, MED koppling med databas, på Arduino MEGA och det finns MASSOR med minne att bygga vidare på! Skitskoj!
Nu blir det att sova en stund sen kanske koda vidare ikväll. Förhoppningsvis är jag bra nog att jobba imorgon! *håller tummarna*
Postat i: terrarium | Etiketter: arduino, interpolering, kod, regnperiod, simulering, terrarium
Det var lite krångligare än förväntat att implementera min regnperiodssimulering till hårdvaran (arduinon) men nu funkar det!
Ovan graf är gjord från data som mitt kretskort spottat ur sig! Och grafen stämmer precis med min simulering i FreeMat! Det som återstå att fixa med är skalningen. Måste testa mig fram lite där ..
Kod från main-loopen:Serial.println(rain.simScale(i));
rain.setSim(true);
rain.setSimChart(0,180);
rain.setSimChart(1,110);
rain.setSimChart(2,105);
rain.setSimChart(3,170);
rain.setSimChart(4,245);
rain.setSimChart(5,300);
rain.setSimChart(6,250);
rain.setSimChart(7,160);
rain.setSimChart(8,75);
rain.setSimChart(9,60);
rain.setSimChart(10,80);
rain.setSimChart(11,170);
for(int i=0; i<365; i++){
}
Kod för simuleringen:
double palumonEngineRainFog::simScale(int dayOfYear)
{
int max=0;
for(int i=0;i<12;i++){
if(_simChart[i]>max) max=_simChart[i];
}
if(dayOfYear>365) return 0;
double scale = 1;
int dayPerMonth = 30;
int currentMonth = ceil(dayOfYear/dayPerMonth);
double step = (dayOfYear-((ceil(dayOfYear/dayPerMonth)-1)*30))/dayPerMonth;
if(currentMonth==0) scale=interpolate(_simChart[1],_simChart[0],step);
else if(currentMonth==11) scale=interpolate(_simChart[0],_simChart[11],step);
else if(currentMonth>11) scale=interpolate(_simChart[0],_simChart[0],step);
else if(currentMonth!=0) scale=interpolate(_simChart[currentMonth+1],_simChart[currentMonth],step);
return (scale/max); //skalad
//return scale; //oskalad
}
double palumonEngineRainFog::interpolate(int value1, int value2, double step){
step = (1-cos(step*M_PI))/2;
return ((value1*(1-step)+(value2*step)));
}
Oj vad klockan sprang iväg. Nu måste jag sova.
Postat i: terrarium | Etiketter: arduino, freemat, interpolation, matlab, suriname, terrarium, timer
Har länge funderat på hur jag ska kunna simulera regnperiod utifrån nederbördsdata för en specifik regnskog. Jag har hittat data och idag har jag fixat ihop lite kod för att simulera detta i min timer.
Först och främst behövs en function för att interpolera (http://sv.wikipedia.org/wiki/Interpolation) fram värden utifrån den nederbördsdata som jag hittat.
Orkar inte lägga ner tid på denna funktion så det blev en liten fuskvariant
function utdata = interpolate(value1,value2,step)
step2=(1-cos(step*pi))/2;
utdata=value1*(1-step2)+value2*step2;
Sen själva koden för att generera data för ett helt år..
dayOfYear = 152;
data = 1:365;
sim = 1:12;
max = 0;
step = 0;
sim(1) = 180;
sim(2) = 110;
sim(3) = 105;
sim(4) = 170;
sim(5) = 245;
sim(6) = 300;
sim(7) = 250;
sim(8) = 160;
sim(9) = 75;
sim(10) = 60;
sim(11) = 80;
sim(12) = 170;
for i=1:12
if(sim(i)>max)
max=sim(i)
end
end
%sim=sim/max; %skalar så att max = 1
for i=1:365
month = ceil(i/30);
if(month13)
step=1;
end
if(month>=12)
month=12;
data(i) = interpolate(sim(1),sim(month),step);
elseif(month data(i) = interpolate(sim(month+1),sim(month),step);
end
end
plot(1:365,data,'c')
Dessa funktioner ska nu implementeras i timern, ska även se till att det går att skala ner hur pass mycket som regnperioden påverkar systemet (så att det inte går helt torrt vissa perioder!)
Ovan syns den plot som min lilla kod spottar ut sig om man matar den med nederbördsdata från Suriname! Coolt!











