Srpanj 06, 2025, 09:56:18 prijepodneNajnoviji Član: lfrketic

Autor Tema: Aquaduino  (Posjeta: 3744 vremena)

0 Članova i 1 Gost pregledava ovu temu.

Offline overload0303993

  • Trade Count: (0)
  • Punopravni član
  • ***
  • Postova: 300
  • Spol: Muški   Dob: 32
  • Lokacija: Koprivnica
Aquaduino
« u: Srpanj 10, 2014, 01:47:05 prijepodne »
Pozdrav svima.
Kod kuće imam jedan akvarij koj već dulje vrijeme nije u najboljem stanju. Gotovi su mi ispiti pa sam odlučio zamijeniti 30w T8 za led lampe i preurediti cijeli akvarij. S obzirom da sam od nedavno računalni inžinjer odlučio sam testirati ono što su me učili, ali na način da radim baš suprotno. Učili su me da kod mikrokontrolera kod treba biti efikasan mali i brz, dok sam međuvremeno radio na web developmentu, bankarskim sistemima i drugim projektima više razine od malih mikrokontrolera.
Ideja je uzeti arduino i napisati kod koji je strukturiran, fleksibilan na nadogradnje i izmjene i omogućuje svakoj osobi da ga lako prilagodi za svoje potrebe neovisno o korištenima senzorima, gumbima, rotacijskim enkoderima ili LCDima.

Ideja je ova:
6500K led žaruljice 12x50cm traka = 12x9w =12x36x25lumen
RGB 4x90cm = 4x8w = 4x54x13lumen

6500K LED lampice služe za klasično svjetlo šireg spektra dok s RGB ćemo simulirati zoru, sumrak, mjesečinu. Dodat ćemo i mogućnost različitih vremenskih prognoza: sunčano i oblačno koji se nasumično odabire pomoću vjerojatnosti.
Kod biljaka i algi u jezercu primjetio sam jednu pojavu: bilje kao kompleksniji fotosintetski organizam otporniji je na promjene u spektru svjetlosti, dok alge to može jako pogoditi, pa možda uspijem to simulirati u akvariju, ako ne bar će biti zanimljivo vidjeti. A kasnije možda dodam i mjesečeve mjene.

Kako bi mogli imati toliko slabo svjetlo po noći izmjenit ću da modulacija radi na 1024 razine a ne na 256.

LCD + kontrola postavki sustava
Kako bismo mogli pregledati osnovne informacije ili namještati ponašanje koristit ću LCD i rotacijski enkoder, po poćetnoj ideji, omogućit ću da svatko može umjesto rotacijskog enkodera koristiti gumbe ili bilo koj svoj način unosa ili ispisa. Struktura menija će biti višerazinska  i fleksibilna.

Termometar
Temperaturna sonda će dobavljati temperaturu zraka, vode, a možda i radijatora od ledica. Možda kasnije implementiram i infracrvenu temperaturnu sondu, ali moji ds18b20 su precizni, vodootporni i jeftini.

RTC

Hranilica
Imam staru hranilicu mehaničku na baterije, koju namjeravam rastaviti i prespojiti na mikrokontroler.

Ledice će biti napajane od starog kompjuterskog napajanja koje po 12V šalje 15 A i odma imam 5V za arduino.

Pitanje je ovo:
Jel želite da za vrijeme rada objavljujem sav svoj kod sa objašnjenjima da si može tko god želi implementirati sa minimalnim izmjenama. Po potrebi mogu objasniti arduino kao zasebni jezik kako koristim njegove specifičnosti, a ne lagati da je on C. I uz rad objavim koju slikicu projekta?

Mogu objasniti i kako se prepravlja napajanje od starog računala te kako hakirat hranilicu i digitalizirat ju sa cijelim sustavom?


Offline overload0303993

  • Trade Count: (0)
  • Punopravni član
  • ***
  • Postova: 300
  • Spol: Muški   Dob: 32
  • Lokacija: Koprivnica
Aquaduino
« Odgovori #1 u: Srpanj 10, 2014, 02:05:27 prijepodne »
Da ne bi ostalo sve na priči, 12 rigidnih LED 7020 traka je dobilo aluminijsku ploču. Ploča je 2mm debela 100x30cm i ojačana je sa dvije aluminijske kanalice da se ne vija. Trake su učvršćene termoljepilom. S obzirom da će na jednoj strani akvarija biti pygmaea helvola, odlučio sam omogućiti da jedna strana akvarija svjetli jače, pa će lijeva i desna strana biti razdvojene. Sutra ću vjerojatno tek krenuti s arduinom.


Offline VlatkoZ

  • Trade Count: (0)
  • Punopravni član
  • ***
  • Postova: 406
  • Spol: Muški   Dob: 53
  • Lokacija: Zagreb - Špansko
Odg: Aquaduino
« Odgovori #2 u: Srpanj 10, 2014, 06:42:00 prijepodne »
Pozdrav,
ako ti nebi bio problem stavljaj i opiši sve što radiš po koracima.
Ima dosta ljudi koji bi nešto napravili ali im to nije struka pa zapnu na početku.

Offline overload0303993

  • Trade Count: (0)
  • Punopravni član
  • ***
  • Postova: 300
  • Spol: Muški   Dob: 32
  • Lokacija: Koprivnica
Odg: Aquaduino
« Odgovori #3 u: Srpanj 12, 2014, 01:41:51 prijepodne »
Evo, ideja je bila da krenem s menijem.

ZAHTJEVI:
- kreiranje strukturu menija po želji
- prikaz podataka bilokojom komponentom (LCD 1602, 2004, 640x480...)
- screen saver s osnovnim podatcima
- opcije kontrole termometra, hranilice, sata... i mogućnost dodavanja novih komponenti bez ikakvih problema

Kako biste razumjeli kod, ali i općenito programiranje na arduinu kako biste mogli napisati svoje komponente  (recimo želite kod upotrijebiti za doziranje gnojiva).

Neću ulaziti u najjednostavije stvari kao što su petlje ili tipovi podataka, kad bismo ulazili u te detalje bilo bi predugo.

Za početak objasnit ću kako napraviti liste, stogove, što su pointeri i kako baratati njima, te koristit ćemo klase u arduinu i objasniti što su polimorfni pozivi i na koji način će nam koristiti.

POINTERI:
Pointeri za razliku od drugih varijabli ne sadržavaju podatak koji se koristi već adresu gdje se on nalazi. Na taj način možemo mijenjati sadržaj varijable iz različitih lokacija. On je definiran zvjezdicom *, a od nekog podatka možemo dobiti njegovu lokaciju znakom &. To nam i nije toliko važno kod malih varijabli, ali kasnije ćemo definirati velike varijable koje ne želimo cijele premještati ni kopirati.
Primjer:
int a=10;
int *b=&a;

KLASE:
Klasama se definiraju objekti koji sadrže određene atribute (varijable ili drugi objekti) te metode (funkcije koje rade nad tim objektom i njegovim atributima). Ako definiramo neki atribut ili motodu kao private ne vidi se izvan te klase, a public je vidljiv.
Primjer:
class Dog{
private:
    String name;
public:
    String bark(){
       return "Vau Vau";
    }
    String getName(){
        return name;
    }
}
Dog snuppy;
void setup(){}
void loop(){
     snuppy.bark();
}

POLIMORFNI POZIVI
zamislijmo da imamo 2 vrste pasa, jedan je doberman, a drugi chihuahua, iako su oba psi, opet su drugačiji. Stoga definirat ćemo u klasi Dog sve što je zajedničko psima, klasi Chihuahua definirat ćemo njihove posebnosti a Doberman klasi ono što je posebno njima. virtual dodatak kod metoda znači da će kod različitih nasljeđenih klasa, kao što su kod nas Doberman i Chihuahua ta metoda drugačije biti implementirana.
class Dog{
   virtual String bark();
}
class Doberman:public Dog{
   virtual String bark(){
      return "VAU VAU";
}
class Chihuahua:public Dog{
   virtual String bark(){
      return "vau vau";
}

Dog *doggy;
Chihuahua zeus;
Doberman medo;

void setup(){
   doggy = &zeus;
   doggy->bark();
   doggy = &medo;
   medo->bark();
}
i ako pokrenemo ovaj kod vidjet ćemo da ista metoda je dala drugačiji rezultat.

LISTA
Polja nas ograničavaju svojom većinom, ali ako želimo da se izbornik lako može namještati, trebamo nešto što se lako može povećati i u ovisnosti o veličini menija, za to koristimo liste. Lista sadrži podatak koji želimo čuvati ali i pointer na sljedeći i/ili prošli element. Svaki put kad dodamo novi podatak, napravimo novi element i dojavimo susjednima gdje se nalazi.


STOG
Stog ćemo napraviti slično listi, ali važno je da ono što smo stavili prvo, mora izaći zadnje. Kao odjeljci u filteru, prvo stavite keramiku, onda spužva prva, pa druga... sve do vate, i onda ih morate i redom vaditi. To će nam trebati kod adresiranja u meniju.



u ovom linku je logika menija. Sutra ili preksutra će dobiti kontrolu preko rotacijskog enkoder i ispis na lcd1602 i onda će biti detaljnije testirano.
https://www.dropbox.com/sh/luwx1abky5mhdtj/AADtRX5-LCeOWJQ-VjsWzS_va










Offline krzljavi

  • Trade Count: (0)
  • Punopravni član
  • **
  • Postova: 41
  • Spol: Muški  
Odg: Aquaduino
« Odgovori #4 u: Srpanj 12, 2014, 08:41:50 prijepodne »
šteta što nema na HR....
sorry ovu temu ću pratiti sa zadovoljstvom obožavam kemijanja ali nisam do sada ništa razumio.
nisam ovo napisao da gubiš vrijeme objašnjavajući nego čisto da ti spomenem da ima nekoga tko prati a niš ne razumije...
jedva čekam da vidim kako radi...
sretno  :klap:

Offline overload0303993

  • Trade Count: (0)
  • Punopravni član
  • ***
  • Postova: 300
  • Spol: Muški   Dob: 32
  • Lokacija: Koprivnica
Odg: Aquaduino
« Odgovori #5 u: Srpanj 12, 2014, 09:38:36 prijepodne »
Problem je da bi svaki dio bio razumljiv treba se napisati esej,  pa je ovako potrebno neko predznanje.
ako tko ima pitanja nek slobodno pita, mogu detaljnije objasniti. A tko ne želi, na kraju će postojati arduino datoteka u kojoj sam odkomentirate koje funkcionalnosti trebate.

Offline overload0303993

  • Trade Count: (0)
  • Punopravni član
  • ***
  • Postova: 300
  • Spol: Muški   Dob: 32
  • Lokacija: Koprivnica
Odg: Aquaduino
« Odgovori #6 u: Srpanj 13, 2014, 00:59:55 prijepodne »
Danas sam radil više poslova, jedan je dao zanimljive rezultate. Imam staru hranilicu wave pa sam ju odlučio rastvoriti i pregledati što mogu napraviti da se automatizira.
Prednji sat, kako se okreće aktivira prekidač koji se nalazi u zarezu u jednoj križnoj plastici. Dok se to dogodi aktivira se motor koji okreće posudu s hranom, dok posuda napravi jedan krug izbaci prekidač.

Preradio sam da radi s mikrokontrolerom, bateriju sam maknuo i napajam motorić s mikrokontrolera (3.3v smanji se na 1.5V otpornikom). Prekidač se aktivira kada napravi cijeli krug i dojavi mikrokontroleru da prestane vrtiti. Da se prekidač ne bi nakon kruga blokirao tako da upadne u zarez, zarez sam zbrusio pa je prekidač spreman za novo hranjenje.


Offline Monstrum

  • Trade Count: (0)
  • Punopravni član
  • ***
  • Postova: 233
  • Spol: Muški   Dob: 43
Odg: Aquaduino
« Odgovori #7 u: Srpanj 13, 2014, 09:04:25 prijepodne »
zanimljivo ... pratim
"When I die bury me upside down, so the world can kiss my ass."

Offline www_www

  • Trade Count: (0)
  • Punopravni član
  • **
  • Postova: 75
  • Spol: Muški   Dob: 55
  • Lokacija: Grobnik, Rijeka
Odg: Aquaduino
« Odgovori #8 u: Srpanj 13, 2014, 15:15:40 poslijepodne »
bravo!!!!!!!! odlican projekat, pratim :up:
Kad se jede...JEDEM
Kad se pije...PIJEM
Kad se radi...NE SMETAM

Offline sidsloth

  • Trade Count: (0)
  • Punopravni član
  • ***
  • Postova: 137
  • Spol: Muški   Dob: 46
  • Lokacija: Mihovljan-Čakovec
Odg: Aquaduino
« Odgovori #9 u: Srpanj 13, 2014, 23:56:05 poslijepodne »
Potpuno se slažem sa "Kržljavim". Ovo bu nadasve zanimljivo pratiti kak bu se razvijalo,ali imam osječaj da budu začas i ribice na daljinski! :-) 

Offline overload0303993

  • Trade Count: (0)
  • Punopravni član
  • ***
  • Postova: 300
  • Spol: Muški   Dob: 32
  • Lokacija: Koprivnica
Odg: Aquaduino
« Odgovori #10 u: Srpanj 14, 2014, 02:23:38 prijepodne »

Potpuno se slažem sa "Kržljavim". Ovo bu nadasve zanimljivo pratiti kak bu se razvijalo,ali imam osječaj da budu začas i ribice na daljinski! :-)

Opasno mi je davati takve ideje :)

Mali update, odlučio sam da neću voditi tutorial za arduino. Neki koncepti koje koristim u kodu nisu za početnike i predugo bi trajalo objasnjavanje, a gotove biblioteke koje napravim možete koristiti bez da imate pojma o čemu se radi iznutra. Iako ako netko ima pitanja, tu sam.
Trenutno izrađujem dijelove i dok bude nečeg sočnog za pokazati objavim video ili slike sa uputama.


Offline krzljavi

  • Trade Count: (0)
  • Punopravni član
  • **
  • Postova: 41
  • Spol: Muški  
Odg: Aquaduino
« Odgovori #11 u: Srpanj 14, 2014, 07:27:15 prijepodne »
vidiš vidiš, lako kad imaš ideja a još kad znaš...
pratim i dalje  :klap: :klap:

Offline VlatkoZ

  • Trade Count: (0)
  • Punopravni član
  • ***
  • Postova: 406
  • Spol: Muški   Dob: 53
  • Lokacija: Zagreb - Špansko
Odg: Aquaduino
« Odgovori #12 u: Srpanj 14, 2014, 10:40:24 prijepodne »
Super, ipak ima zainteresiranih.
Napravi kako si zamislio a ako ce netko imati pitanja postavit ce naknadno.
U svakom slucaju pratim daljnje objave. :up: :up:

Offline overload0303993

  • Trade Count: (0)
  • Punopravni član
  • ***
  • Postova: 300
  • Spol: Muški   Dob: 32
  • Lokacija: Koprivnica
Odg: Aquaduino
« Odgovori #13 u: Srpanj 17, 2014, 02:51:46 prijepodne »


Hranilica je ugrađena, ali ne i skroz pričvršćena, gumb za gašenje s led lampicom je stavljen te rotacijski enkoder za kontrolu menija je ugrađen. Čekam još LCD iz britanije i tranzistore iz kine da mogu dovršiti. Do tada nastavljam s pisanjem koda.

Offline dejo_17

  • Trade Count: (0)
  • Punopravni član
  • ***
  • Postova: 114
  • Spol: Muški   Dob: 35
  • Lokacija: Rijeka
Odg: Aquaduino
« Odgovori #14 u: Rujan 03, 2014, 21:35:05 poslijepodne »
Nesto slicno sam i ja počeo. Ti si definitivno puuuuuuno dalje otišao sa idejama i sa izvedbom. Pogotovo mi se svida random boja svijetla ovisna o vremenskim prilikama. Strava. Moglo bi se ubacit i da oponasa vrijeme koje je stvarno vani.

Mene je malo usporilo ljeto i ljencarenje po vrucinama. Planiram nastaviti ubrzo.

Moja zamisao je bila napraviti sto samostalniji akvarij jer imam potrebu za tim s obzirom na prirodu moga posla. Jednostavno mjesec i pol dana uopce nisam doma.

Planirao sam potpuno automatizirati izmjenu vode, kotrolirati svijetlo, protok filtera, temperaturu i hranjenje, sve automatizirati, omoguciti manualno i automatsko podesavanje svjetla, automatsko hranjenje, izbaciti upozorenje kada protok filtera padne ispod neke razine, automatski ukljuciti hladenje kada ljeti poraste temperatura, mozda ph kontrola, takoder lcd za prikaz najvaznijih podataka...
Vec imam float switcheve, solenoide, flow metere, napajanje, lcd, temp senzor itd itd itd, samo treba nastavit s poslom.

Slag na kraju i vrhunac svega bila bi kontrola svega putem interneta sto uopce nije problem napraviti sa arduinom.

Skoro bi se moglo reci da smo imali identicnu ideju, ne znam koliko si duboko mislio ici.

U mom slucaju spojio bih dvije svoje velike ljubavi: akvarije i elektroniku i iskoristio znanje jednog i drugog.

p.s. mozda mogu dati misljenje u tvom (a samim time i u mom) slucaju: mislim da nam MOZDA arduino nece biti dovoljan za tako opsezan projekt, pogotovo tebi, jer namjeravas biti jako flexibilan. to jednostavno nije moguce jer arduino je mikrokontroler i nema dovoljno force niti rama za  vrtit tako velike kodove. rapsberry pi ili arduino due bi mogli bit rjesenje, neznam.
Grobnik, Rijeka
*****alkoholom protiv droge*****

Offline overload0303993

  • Trade Count: (0)
  • Punopravni član
  • ***
  • Postova: 300
  • Spol: Muški   Dob: 32
  • Lokacija: Koprivnica
Odg: Aquaduino
« Odgovori #15 u: Rujan 07, 2014, 01:36:49 prijepodne »
Dugo nisam bio na forumu, guzva mi je s poslom.
Akvarij svijetlo radi već neko vrijeme, ali nije skroz gotovo. Stalo je dok sam popunio svu memoriju na arduino leonardu. I nabavio sam megu, ali još neću počet s tim, definitivno ne naskoro.
Memorija je napunjena 80% zajedno s bootloaderom, imam programera, ali ako je već dotle došlo, ne bi bilo dovoljno. Još jedan problem je malloc memorija koju koristim za dinamički generirane objekte. Iako se uvijek kod ucitavanja koristi ista memorija, nekad zašteka, a nekad ne, znaci da gospodarenje dinamičnom memorijom jako loše, i treba imati puno memorije rezerve, znaci obavezno mega.
Još jedan problem su interrupt pinovi kojih nema dosta i prčkanje po timerima kako bi dobili led u boji s 65536 koraka po boji, te i2c komunikacija međusobno se smetaju.

Jedna od dobrih stvari koje sam uočio su alge. Imam jako malo bilja i zbog postepenog pojacanja i smanjenja svjetla koje je inace jako (bar mislim da zbog toga) alge nisu uspjele još početi rasti, nakon 3tjedna. Neko bilje sporije raste, a neko brže, fali im co2, a to ne želim dodavati.
 Čim smognem vremena postavit ću video jer sam snimio kretanje dana pod ubrzanjem.