[ bandovicvladimir @ 11.10.2016. 14:33 ] @
Ideja je da se ostvari komunikacija između mikrokontrolera (arduino) sa jedne strane, i kotla odnosno njegovog fabričkog mikrokontrolera sa druge strane, a sve u cilju praćenja vitalnih parametara u toku rada kao i zbog samog upravljanja kotlom (paljenje, gašenje, regulacija temperature itd...). U nekom od narednih postova ću ostaviti kompletnu specifikaciju komponenata da biste u samogradnji mogli da realizujete ovaj vid upravljanja kotlom pomoću telefona.



U samom kotlu je ugrađena upravljačka ploča italijanskog proizvođača Micronova (model i023). Na njoj se nalazi konektor CN13 koji je namenjen za povezivanje servisnog instrumenta koji se koristi za očitavanje i upisivanje parametara rada kotla.



Zamisao je da arduino simulira rad ovog servisnog instrumenta, pa da se na taj način očitavaju i upisuju željeni parametri rada. Glavna ploča "priča" sa instrumentom posredstvom (TTL 5V) serijske komunikacije (baud rate 1200, 8 data bits, 2 stop bits, no parity, no flow control) s tim da je tip realizacije half-duplex što znači da se ista žica koristi i za slanje i za primanje (TxRx).



Da bismo razdvojili poruke koje kotao šalje od onih koje mi šaljemo ka kotlu, neophodno je napraviti kolo koje "prevodi" komunikaciju sa jedne žice na strandardnu gde imamo posebnu žicu za slanje a posebnu za primanje.



Pre nego što mnogo dublje uđem u problematiku oko uspostavljanja komunikacije između arduina s jedne strane i fabričkog mikrokontrolera u kotlu s druge, najpre bih se osvrnuo na to kako će da izgleda aplikacija pomoću koje će se obavljati interakcija sa kotlom, kao i koje će sve opcije biti dostupne krajnjem korisniku.
Sasvim slučajno, pre nešto više od godinu dana sam saznao za platformu Blynk (http://www.blynk.cc/).



Ovaj servis se sastoji iz tri komponente. Prva komponenta su biblioteke koje se uključuju u projekat prilikom programiranja našeg mikrokontrolera. Druga komponenta je klijentska aplikacija koja se skida sa play/app store-a u zavisnosti da li imate android ili iOS. I treća komponenta je serverska aplikacija koja uvek mora biti dostupna preko web-a i koja je praktično spona između klijentske aplikacije na vašem telefonu/tabletu i mikrokontrolera koji "priča" sa kotlom. Obzirom da naš mikrokontroler mora da komunicira sa serverom moramo mu omogućiti internet vezu. Da li će to biti žično povezivanje (ethernet), bežično (wifi) ili posredstvom mobilne mreže (gsm/gprs) to je stvar ličnog izbora. Smatrao sam da je wifi povezivanje najkomfornije za implementaciju. U odnosu na ethernet, kod koga je neophodno dovođenje mrežnog UTP kabla od rutera do kotla (osim ukoliko se ne koristi neko od rešenja za umrežavanje putem strujne instalacije), kod wifi povezivanja nema kablova pa bi bez ikakvog dodatnog angažovanja sve trebalo da funkcioniše. Prve eksperimente sam radio sa mikrokontrolerom koji ima fabrički wifi modul (NodeMCU koji je baziran na ESP8266), i nisam bio zadovoljan stabilnšću veze. Iako je signal gotovo uvek bio odličan, relativno često sam imao pucanje veze tako da sam ubrzo digao ruke od wifi povezivanja i prešao na žičnu vezu - ethernet.



Zbog veće količine raspoložive programske memorije odlučio sam se da osnova bude Arduino Mega 2560 sa W5100 Ethernet shield-om. Crvenom bojom na slici je obeleženo mesto na koje se montira pločica sa propratnim elementima (1wire/2wire intefejs, priključne stezaljke za temperaturne sonde...) koja je trenutno u fazi izrade.

Kada instalirate Blynk aplikaciju na svom telefonu, ukoliko ste developer, možete da besplatno registrujete nalog i da onda kreirate projekte. Aplikacija ima dva režima (edit mod i play mod). U edit modu, vi praktično kreirate interfejs aplikacije - dodajete dugmiće, slajdere, pokazivače vrednosti, virtualne terminale itd.. dok u play modu aplikacija radi ono što ste programski definisali da radi. Ono što je zanimljivo je da kada recimo kreirate projekat, možete da omogućite ostalim ukućanima da i oni učitaju vaš projekat. Za ovo čak ne moraju da budu registrovani, nego je dovoljno da iz aplikacije skeniraju bar kod koji im stigne na mejl kada vi odlučite da im omogućite pristup. Na ovaj način oni imaju potpuno ravnopravnu kontrolu (nad grejanjem u našem slučaju) ali samo vi kao autor možete da menjate sam projekat. Oni mogu da budu samo korisnici. :)



Inicijalna zamisao, kada sam počeo da razrađujem ideju praćenja i upravljanja kotlom, je bila da omogućim sebi da upalim i ugasim kotao, promenim zadatu temperaturu vode i da dobijem neki vid obaveštenja ukoliko se desi neka greška (recimo upali se alarm "No pellet" ili tome slično). Kako sam vremenom sve više parametara uspevao da "mapiram" tako su se i želje za ostalim funkcionalnostima javljale, pa sam onda dodao praćenje režima rada, pritiska vode u instalaciji, temperature izduvnih gasova, očitavanje poruka ispisanih na displeju kotla a kasnije i dodavanje spoljnih sondi za merenje temperature u kući, u kotlarnici kao i spoljne temperature. Kasnije sam uspeo da "mapiram" vrednosti za hrono mod koje bi omogućile lakše podešavanje programiranog paljenja i gašenja ali sam odustao od implementacije jer fabričko rešenje ima falinke o kojima sam pisao u jednom od prethodnih postova (ukoliko nema struje u vreme kada je kotao programiran da se upali, nakon što dođe struja on se neće upaliti iako je unutar intervala kada bi grejanje trebalo da radi) pa sam na kraju odlučio da u potpunosti isključim fabrički hrono mod i da programirano paljenje i gašenje ide sa arduina. Mogućnosti su neograničene. Moguće je u bunker za pelet postaviti infracrveni senzor za merenje udaljenosti pa na taj način pratiti nivo peleta u bunkeru... Konačno, "mapirao" sam sve parametre iz sekcije "Factory Settings" ali sam je stavio na dno liste prioriteta jer zahteva izuzetno mnogo pisanja koda da bi bilo moguće sa telefona menjati ove postavke a ako ćemo iskreno ovi parametri ne bi ni trebalo da se menjaju, pa je jednostavnije ako baš nešto treba promeniti odraditi to na samom kotlu.
[ drvlada75 @ 12.10.2016. 05:12 ] @
Šta drugo reći osim jednog velikog ALAL VERA!!!
[ Dragan976 @ 12.10.2016. 07:27 ] @
Kralju !
[ Java Beograd @ 12.10.2016. 07:32 ] @
Bemtilebac ! Car !
Ako već nisi, ponudi ovo proizvođačima. Kapiram da je cena proizvodnje (hardare + software) minimalna, a kupci, kad vide ovu mogućnost ima da odlepe. Platiće i 500€ više zarad ovoga. Možeš dobar biznis da napraviš, i naplatiš svoje znanje.

Mojne da iznosiš više detalja. Neko će ti ukrati ideju.
[ bandovicvladimir @ 12.10.2016. 08:37 ] @
Ponudio sam ja ovo ljudima iz Kepo-a ali su oni u tom trenutku već započeli razvoj svog rešenja. Videh nedavno na playstore-u njihovu aplikaciju što znači da su zaokružili proizvod. Fabričko rešenje košta 11.900 dinara. Ja bih mogao da prodajem ovo "moje" značajno jeftinije ali mi nije to cilj. Pojedinac, entuzijasta nema ni vreme ni resurse da se ozbiljno bavi razvojem da bi aplikacija vremenom bila još bolja a verujem da je krajnjim korisnicima to osnovni cilj. Imam predosećaj da bi i ostali proizvođači zauzeli sličan stav ako bi im ponudio, a ovako ja recimo mogu ovde da okačim sve na izvol'te, oni (proizvođači) ako su pametni iskoristiće informacije i napraviće/poboljšaće svoje proizvode. Oni koji su vični samogradnji će sami otići na ebay, poručiti od braće Kineza par komponenata za sitne pare i napraviti sebi upravljanje, a siguran sam da će mi dobar broj poslati poruku da su zainteresovani i biće spremni da plate nešto više da se ne bi sami cimali oko toga.
[ bakara @ 12.10.2016. 11:23 ] @
Ovo je odlicna stvar, topujem temu
[ bandovicvladimir @ 12.10.2016. 22:47 ] @
Kao što rekoh, na kotlu postoje dve memorije RAM i EEPROM. Svaka memorija ima određen broj memorijskih lokacija i u svakoj memorijskoj lokaciji se nalazi neka vrednost. Postoje komande READ i WRITE. Logično, sa komandom READ očitavamo vrednost sa određene memorijske lokacije, dok sa komandom WRITE upisujemo željenu vrednost na određenu memorijsku lokaciju. Komunikacija se vrši slanjem i primanjem niza bajtova. Kako bajt ne mora po pravilu da ima odgovarajući ljudima čitljiv simbol u ASCII tabeli, sve bajtove navodim u njihovom heksadecimalnom obliku.

OČITAVANJE VREDNOSTI

Komanda READ treba da sadrži dva bajta.
Prvi bajt određuje memoriju iz koje želimo da očitamo vrednost. Za očitavanje iz RAM-a je prvi bajt 0x00, a iz EEPROM-a 0x20
Drugi bajt određuje memorijsku lokaciju iz koje želimo da očitamo vrednost.

Metod utvrđivanja koji se parametar nalazi na kojoj memorijskoj lokaciji sam opisao u prvom postu ali nije isključeno da od proizvođača do proizvođača ove vrednosti variraju tako da bi trebalo "ukrstiti" vrednosti za Alfaplam i MBS obzirom da podaci koje navodim važe isključivo za Kepo. Na slici je prikazana oficijelna SeramiNet aplikacija kao i spisak sa memorijskim lokacijama nekoliko ključnih parametara koje je moguće očitati iz RAM-a.



Recimo hoćemo da očitamo trenutni režim rada kotla. Komanda koju šaljemo je:

0x00 0x21

0x00 - Vrednost očitavamo iz RAM memorije pa je zato 0x00
0x21 - Memorijska lokacija za režim rada

Nakon što kroz serijski interfejs pošaljemo kotlu komandu koja sadrži ova dva bajta, kotao "odgovara" takođe sa dva bajta. Prvi bajt u odgovoru je čeksum (heksadecimalni zbir bajtova u komandi koju ste poslali kao upit i vrednosti parametra koji se nalazi na toj memorijskoj lokaciji) dok je drugi bajt u odgovoru sama vrednost koja nam ustvari treba. Ukoliko je drugi bajt u odgovoru 0x00, što je u decimalnom obliku 0, to znači da je kotao ugašen, dok bi recimo da je drugi bajt u odgovoru bio 0x04 značilo da je kotao u aktivnom režimu rada jer 4 odgovara tom režimu u spisku sa slike.

UPISIVANJE VREDNOSTI

Komanda WRITE treba da sadrži četiri bajta.
Prvi bajt je zbir bajta 0x80 i bajta koji određuje memoriju u koju upisujemo (0x00 za RAM, 0x20 za EEPROM)
Drugi bajt određuje memorijsku lokaciju u koju želimo da upišemo neku vrednost.
Treći bajt je vrednost koju želimo da upišemo (konvertovana u heksadecimalni oblik)
Četvrti bajt je čeksum koji je heksadecimalni zbir prva tri bajta.

Recimo da je kotao ugašen (trenutni režim 0) i da želimo da ga upalimo (režim 1 je za startovanje). Komanda koju šaljemo je:

0x80 0x21 0x01 0xA2

0x80 - Zbir 0x80 i 0x00 (za RAM) je 0x80
0x21 - Memorijska lokacija za režim rada
0x01 - Vrednost koju želimo da upišemo je 1 odnosno 0x01
0xA2 - Heksadecimalni zbir prva tri bajta daje 0xA2

Nakon slanja komande za upis nove vrednosti, kotao "odgovara" sa dva bajta. Prvi bajt u odgovoru je memorijska lokacija u koju ste upisali novu vrednost, a drugi bajt je sama vrednost koju ste upisali, što je na neki način potvrda da je kotao prihvatio komandu.
[ JECHAM @ 22.10.2016. 17:44 ] @
Znači li to da ako hoću android/internet upravljanje- kontrolu moram da kupim neki kotao samo na pelet(Kepo , Alfaplam , MBS) ili može i na pojedine gorionike(npr. domaći PltGrnk ili Ekopel)
Pozdrav
[ drvlada75 @ 22.10.2016. 18:48 ] @
@JECHAM Pretpostavljam da ovaj uredjajcic radi sa uredjajima (kotlovima i pecima) gde je ugradjena Micronovina elektronika
[ JECHAM @ 23.10.2016. 14:57 ] @
Možda bi mogla i sa drugim verzijama koje imaju slobodan Rx i Tx priključak
[ drvlada75 @ 23.10.2016. 18:25 ] @
@JECHAM Nije nemoguce da ce raditi ako imaju isti program na istim adresama u EEPRPOMu. Mada, ja opet mislim da svako od proizvodjaca razvija svoje plocu, elektroniku i program. Ovde je potrebno pogoditi program i lokaciju parametra u bajt!
[ bandovicvladimir @ 25.10.2016. 07:01 ] @
Upravo tako kako je drvlada75 rekao. Proizvođači imaju dve opcije kada dođu u situaciju da reše sistem upravljanja. Prva opcija je da razvijaju svoje upravljanje od nule, a druga je da kupe već gotovo rešenje. Ukoliko ne postoje neki specifični zahtevi koje ne poseduje nijedno gotovo rešenje onda ima logike razvijati svoje od nule, međutim to je dugotrajan proces koji strahovito mnogo košta. To je razlog zašto se najveći broj broj domaćih proizvođača odlučuje da koristi već provereno gotovo rešenje.

Sve ovo gorenavedeno se odnosi isključivo na kotlove koji za upravljanje koriste Micronova upravljačku elektroniku. Ako uzmemo u obzir da italijanski proizvođač Micronova snabdeva na desetine, možda i stotine, proizvođača kotlova na globalnom nivou nije isključeno da postoji još sijaset kotlova kod koga bi bilo moguće primeniti ovo rešenje za kontrolu na daljinu, međutim verovatnoća da je neki drugi sistem upravljanja osmišljen identično kao ovaj i da je sve kompatibilno je toliko mala da bih bez mnogo razmišljanja mogao da kažem da ovo ne bi radilo ni na jednom drugom kotlu osim ovih koji koriste Micronova elektroniku i to isključivo model i023.
[ JECHAM @ 27.10.2016. 14:33 ] @
Odlično.
Arduino već imam i nešto malo sam čačkao sa njim.
Znači da razmišljam samo o Alfa Commo Compact20(25) ili Kepo MC20.
[ bhgsmservis @ 07.11.2016. 10:55 ] @
Odlicna tema :)
Vec duze vrijeme razmisljam kako ovo napraviti.
Nadam se da ce biti projekat.

Pozdrav
[ JECHAM @ 02.12.2016. 22:07 ] @
Dal je gotov projekat.
Kako se prodaje komplet ili dodatak za arduino posebno, program...?
[ bandovicvladimir @ 05.12.2016. 06:36 ] @
Program još uvek nije u fazi da bih mogao da ga okačim ovde kao "ready to use". Poslednjih dana nisam imao slobodnog vremena da se bavim testiranjem ali se nadam da ću do Nove godine završiti softverski deo.

Što se tiče hardvera, inicijalna zamisao je bila da se koristi Arduino Mega 2560 koji ima značajno više memorije od Una (256kB naspram 32kB), ali je i skuplji. Aktuelna verzija programa sa najvećim delom planiranih funkcionalnosti zauzima oko 35kB pa se nosim mišlju da probam da optimizujem kod. Recimo izbacivanjem DHCP-a iz biblioteke za ethernet bih mogao da "uštedim" nekoliko kB tako da bi u toj varijanti bilo izvodljivo da se koristi Uno a ne Mega ali se postavlja pitanje da li je pametno stavljati fiksnu IP adresu u mikrokontroler kad nisu svima ruteri konfigurisani da koriste isti opseg lokalnih adresa (192.168... itd). S druge strane, ograničenje u raspoloživoj memoriji bi značilo da neke buduće funkcionalnosti ne bi bile moguće na Unu jer nema mesta za njih.

Ja sam pobornik žične veze. Siguran sam da mnoge potencijalne korisnike ovo odvraća jer nisu svi izgoreli od želje da provlače UTP kabl od rutera do kotla pa moram da razmotrim i opciju wifi povezivanja.

Plastično kućište sa fotografije iz prvog posta otpada jer dobavljač iz Francuske neće da šalje u Srbiju iz svog evropskog skladišta nego zahteva da poručim iz SAD a nema nikakav low cost šiping tako da troškovi dostave daleko prevazilaze cenu samog kućišta. Našao sam neko kućište od aluminijama. Daleko je kvalitetnije i ima već pripremu za kačenje na zid ali nema izbušene otvore. Ako ne nađem neko baš povoljno lasersko isecanje i graviranje verovatno će biti bušeno ručno. :)

Elektronika za sada izgleda ovako (od priručnog materijala), verovatno će biti malo drugačija kad budem trebao da radim "serijsku proizvodnju". :)




Kao što sam već rekao, sve što je neophodno da u samogradnji napravite upravljanje će biti ovde okačeno čim bude završeno. Da ne bismo rizikovali da tema bude ugašena, za sva komercijalna pitanja kucajte na fejsu upravljanjegrejanjem
[ bandovicvladimir @ 09.12.2016. 05:56 ] @
Eksperimentalno očitavanje sadržaja sa displeja :)
Na drugoj slici, aplikacija SeramiNet i detektovan tekst u ASCII formatu u RAM memoriji.





[Ovu poruku je menjao bandovicvladimir dana 09.12.2016. u 07:19 GMT+1]
[ JECHAM @ 27.11.2017. 21:15 ] @
Vladimire dal ste završili ovaj projekat?
Ima li prodaje gotovog uređaja i pojedinačno delova i programa.
Ja kupio Alfin Commo Compact 23, tako da odgovara verzija elektronike.
[ bandovicvladimir @ 28.11.2017. 07:02 ] @
Pozdrav! Nažalost zbog nedostatka slobodnog vremena sam morao da prekinem razvoj aplikacije pre nego što sam je doveo do faze koja bi bila upotrebljiva za krajnjeg korisnika. Ukoliko nađem vremena objaviću kompletan kod za mikrokontroler, pa da svako sa malo znanja iz te oblasti može u samogradnji napraviti uređaj za sebe. S druge strane, jedan od razloga zbog kojih sam praktično odustao od daljeg razvoja, je što je proizvođač mog kotla Kepo, početkom godine izašao sa svojim rešenjem za upravljanje putem aplikacije dok vidim da i Alfai MBS sada imaju tu opciju ali mislim da je wifi modul kod Alfe nešto skuplji nego kod Kepo-a. Neka me Željko ispravi ako grešim, to je zvanično rešenje Micronove, proizvođača elektronike koja upravlja kotlom koji se nalazi i u Kepo kotlovima, kao i u Alfaplamovim jer je i izgled same aplikacije kao i funkcionalnosti identičan osim što se logo i kolorit razlikuju.

https://play.google.com/store/...id=com.forstehkotlovi.mqttdemo
https://play.google.com/store/...com.ForstehDemoClient.alfaplam
https://play.google.com/store/...s?id=com.ForstehDemoClient.mbs

Žao mi je što nisam završio ovaj projekat jer je imao rešenja koja su umnogome poboljšavala funkcionalnost samog kotla. Recimo, moj koncept bi rešio problem koji nastaje kada u sred rada nestane struje. Elektronika kotla jeste "pametna" ali ne dovoljno da zna da treba da po dolasku struje automatski odradi Cleaning Final i da ponovo upali kotao i da nastavi da radi po zadatim parametrima. Ne znam zaista da li ove aplikacije imaju neki vid obaveštenja kada se ovako nešto desi jer to nije klasičan alarm, a bezveze je ako korisnik treba da periodično da provearava da li je sve ok i da li kotao radi. Takođe, bilo bi dobro da putem aplikacije može da se podešava chrono mod jer štelovanje na samom kotlu nije baš najsrećnije rešeno pa verujem da ga relativno mali broj ljudi koristi za često menjanje. Meni lično bi ta opcija baš trebala jer supruga i ja radimo u tri smene i na nedeljnom nivou menjam postavke jer se intervali kada je potrebno grejanje razlikuju u zavisnosti u kojoj smo smeni. Takođe, praćenje ambijentalne temperature je relativno jednostavno za praćenje, a naročito je zanimljivo pratiti uporedo i spoljnu temperaturu, pa grafički prikazivati međusobnu zavisnost ovih temperatura.

[Ovu poruku je menjao bandovicvladimir dana 28.11.2017. u 08:17 GMT+1]
[ kepo01 @ 29.11.2017. 13:46 ] @
Pozdrav Vlado,

proizvodjac uredjaja za upravljanje kotlom putem wifi, je domaca firma Forsteh doo.

Oni su prostudirali Micronovu, i proizvodjacima kotlova sa njihovom elektronikom su ponudili njihov proizvod. Zato je Alfa, MBS i Kepo koristi isti proizvod.
[ PELETMASTER @ 22.10.2019. 13:37 ] @
Alfa plam sada koristi wifi uređaje direktno od proizvođača elektronike iz Italije.
ja sam kupio grande i dobio san kroz neku akciju besplatno uređaj.