Am facut si eu primul senzor de temperatura, deocamdata e instalat pe protoboard cu ecranul TFT (cu SD card inclus) de la Adafruit revandut de Arduino Italia. Am intampinat cateva probleme, le voi exemplifica mai jos cu ceva poze.
1. Arduino Leonardo, ei bine, pe net se gaseste varianta mufata, sau nemufata. La varianta cumparata de mine de la un magazin de mult, 1+ an, avea mufele lungi acelea pe laterale, dar nu si cupla de pe pinii de SPI !!
Insa, cele pe net care se vand mufate, am vazut ca apar cu o cupla tata pentru cei 6 pini, dar nu am cabluri de conectat protoboard-ul decat tata - tata. Si cum nu mai aveam rabdare sa cumpar si o cupla din aceea, am tabarat pe niste placute cu led pe care le, sa le iau mufa, sa-mi fac montajul:
Rezultatul intermediar e foarte placut insa, folosind ecranul
http://arduino.cc/en/Guide/TFT si un LM35 (0-100 C):
Observatii:
a) ecranul acela Arduino TFT, functioneaza, dar e facut special pentru Adruino Robot. Adica nu merge ca shield pentru Leonardo / Uno. Aveam sentimentul ca ar merge, dar nu. In plus, are nevoie de pinii SPI - altfel spun ca viteza de randare este foarte lenta. Asa ca acum avand si cupla SPI, am putut sa trag fire si sa ma joc cu el, merge. Insa, parerea mea, si pe SPI, framerate-ul este de 0.5 cadre pe secunda, adica are nevoie de cel putin de 2 secunde ca sa afiseze un bitmap de 160x128 px pe ecran. Functiile de drawText / Line, etc, par a fi mai rapidute un pic.
b) cu toate ca functioneaza, are un defect din fabricatie si cam in stanga jos exista o zona de cativa pixeli care se vede un pic mai inchis la culoare, chiar daca ar trebui sa fie albi. Quality control: slabut.
c) Ecranul NU merge cu ultimul Arduino IDE stabil cu biblioteca de TFT integrata. Apar 4 dungi orizontale negre pe fond alb

ca in poza de mai jos. Dupa un mini heart attack, am gasit pe net ca e din cauza ca Arduino TFT au schimbat un pic chip-ul fata de ceea ce Adafruit a facut, si initializarea nu se face corect - trebuie luata cea mai noua biblioteca TFT de la Arduino de pe site, sau ultimul Arduino IDE nightly (care include bibiloteca). Cum timpul e pretios, am mers sa iau doar biblioteca (n-am chef de buguri nightly), si apoi codul sursa exemplu a functionat corect.
Ce rulez acum pe el (doar sa afiseze temperatura) este o varianta simplificata a tutorialului de aici:
http://www.instructables.com/id/Mini-Arduino-enviroment-monitor/ care e insa facuta pentru ecranul de la Adafruit si a trebuit sa modific ca in loc de tft.initR (care apeleaza direct API Adafruit) sa foloseasca tft.begin() care face setup-ul ecranului Ardiono, altfel, tot 4 linii negre obtineam ...
d) Biblioteca de SD card (pentru data logging), adauga cam 10K la fisierul binar (din vreo 29k disponibili pe Leonardo). Adica daca vrei sa afisezi o poza mica, un bitmap de 48x48 pixeli, fisierul .rom are 25k, foarte putin spatiu de manevra.
Raman la concluzia ca Arduino a pornit cu o idee faina, si a ajuns o jegmaneala si pierdere de timp.
Anticipam frustrarea cu limitarile si costurile, asa ca montajul o sa ajunga un termometru de camera. De ce?
Am comandat un pcDuino3 la 80 euros. 1Gb ram, 1Gb CPU, 4Gb flash, Wifi + Gigabit Ethernet, SDCard socket pana la 32Gb, SATA, iesire HDMI, 3 porturi USB din care unul USB OTG, iesire audio SI: pinii pentru shield-uri Arduino, cu porturi memory mapped (le citesti si scrii de pe /proc/ ). Ruleaza Ubuntu 12.04 sau Android 4.2. Cand o sa vina o sa deschid un topic de DIY cu pcDuino
Deci nu ma voi mai intoarce ever la Arduino. Insa, pana vine pcDuino si cei 5 senzori DS18B20 izolati la apa - urmeaza sa ma joc cu LM35 ca senzor de temperatura de acvariu. Vreau sa-l izolez, am cumparat si cei 2 condensatori + rezistenta care filtreaza oscilatiile LM35 cand e conectat la cablu lung (care incepe sa devina un "condensator" ne-neglijabil). Am gasit si un algoritm interesant pe net de facut average (altfel temperatura citita sare aiurea) - am implementat doar filtrul median + medie , nu si IIR Butterworth dar o sa il incerc:
http://www.elcojacobs.com/eleminating-noise-from-sensor-readings-on-arduino-with-digital-filtering/
Singura problema cu pcDuino este ca placa are 3.3V. Ma tenta sa folosesc acest TFT la pcDuino, dar
http://arduino.cc/en/Main/GTFT spune clar ca merge la 5V. Pe de alta parte, ei spun ca e pe baza ecranului TFT facut de Adafruit, iar acel ecran pare a merge la 3.3V. Acum nu stiu daca ecranul e acelasi, sau daca au facut un ecran care sa se comporte identic ca API dar electric e diferit, si vrea doar 5V. Nu mai dau banii pe Arduino insa, asa ca daca nu merge, nu voi lua nimic de la Adafruit, o sa folosesc ecranelul de Nokia 5110 care a sosit.
La cele 4 acvarii, in 2 ani am avut probleme cu 2 incalzitoare. Unul nu mai incalzea, dar se aprindea si se stingea, alttul a ramas blocat si noroc ca am pus mana pe acvariu si am simtit ca e mai cald decat de obicei. Vreau ceva care sa ma alerteze daca apare o problema (o sa fie un buzzer integrat in sistem) si vreau sa le citesc temperaturile si de pe telefonul mobil. Nu stiu cat ar iesi fisierul .rom pe un Adruino cu asa ceva (sdcard pt data logging, tft library, ethernet si un server care asculta), dar pe pcDuino nu ma va mai interesa