samo utrzymująca się stacja meterologiczna

Masz problem z Arduino? Tutaj możesz szukać pomocy.
ODPOWIEDZ
radzisko123
Młodszy majsterkowicz
Posty: 20
Rejestracja: 7 lip 2016, 22:10

samo utrzymująca się stacja meterologiczna

Post autor: radzisko123 » 14 wrz 2016, 23:01

hej robie projekt który opiera sie na coś ala stacja metrologiczna z możliwością ładowania telefonu przez panele słoneczne z wbudowanymi ogniwami li-pol oraz sprawdzaniem jego stanu i aktualnych danych z czujników
ale napotkałem sie z problemem braku miejsca na wyświetlaczu nie chce używać wyświetlacza większego niż 20x4 i2c
a moduły podłączone to
rtc czasu i daty
dht 11
ogniwa podpięte przez dzielnik napięcia do arduino
ładowanie li-pol
moduł ładowania telefonu jeden do arduino oraz jeden do ładowania telefonu
panele słoneczne 2x 5v 500mA połączone równolegle
a jeszcze idą do mnie
moduł ruchu
oraz barometr
mam na razie program do wyświetlania godziny oraz temperatury oraz daty ale czały czas jest problem z przełączaniem określonych programów na wyświetlaczy tz
na 1
0.0 godzina 0,1 data 0,2 temperatura 0.3 wilgotność
na 2 pozycji
tylko data i dodzina
na 3 godzina oraz dane z ogniw
na 4 tylko godzina duża czcionka
a do sterowania mam mieć 3 przyciski nie chodzi tu o napisanie programu tylko pomysł jak można to zrobić jakie funkcje mi w tym pomogą

licze na waszą pomoc bo sam nie dam rady z moją wiedzą
:P

http://pastebin.com/r48Cju2F

tu jest mój aktualny program sorry za bałagan w nim ale to jest prototyp

Nie pisz posta pod postem.

Co miesiąc do wygrania nagrody o wartości ponad 1600 zł!


zgoda
Majsterkowicz
Posty: 60
Rejestracja: 23 cze 2016, 09:58

Re: samo utrzymująca się stacja meterologiczna

Post autor: zgoda » 14 wrz 2016, 23:44

Proponuję enkoder obrotowy zamiast guzików, całe ui tym obskoczysz i oprogramowuje się przyjemnie. Ul robisz jako serię ekranów przełączanych w lewo / w prawo itd. Generalnie można poszaleć.
radzisko123
Młodszy majsterkowicz
Posty: 20
Rejestracja: 7 lip 2016, 22:10

Re: samo utrzymująca się stacja meterologiczna

Post autor: radzisko123 » 15 wrz 2016, 09:59

no wolał bym wykonać na przyciskach takie samo działanie tylko trzeba podtrzymać stan raz wciśniętego przycisku aby program działał bez przerwy ale dobrym rozwiązaniem może być enkoder tylko ja dalej nie wiem jak zrobić program abym mógł sie przełączać pomiędzy programami jaka jest na to komenda i w ogóle czy ma to jest przełączanie się całego długiego programu
Awatar użytkownika
Marhef
Złota rączka
Posty: 1257
Rejestracja: 18 lis 2011, 02:18

Re: samo utrzymująca się stacja meterologiczna

Post autor: Marhef » 15 wrz 2016, 10:11

Co masz na myśli pisząc "jak zrobić program abym mógł sie przełączać pomiędzy programami jaka jest na to komenda i w ogóle czy ma to jest przełączanie się całego długiego programu"? Chodzi tylko o wyświetlanie danych, czy chcesz różne funkcje realizować?
zgoda
Majsterkowicz
Posty: 60
Rejestracja: 23 cze 2016, 09:58

Re: samo utrzymująca się stacja meterologiczna

Post autor: zgoda » 15 wrz 2016, 11:23

Oddzielnie zrób UI do wyświetlania, oddzielnie odczyty z wejścia (czujniki, RTC, etc). Enkoderem byś tylko zmieniał ekrany z wyświetlaniem, a odczyty robił w zadanych odstępach czasowych, np. temperatury nie musisz mierzyć częściej niż co 5-10 minut, tak samo ciśnienia atmosferycznego - one się nie zmieniają tak często, jak np. kierunek czy siła wiatru, które lepiej jest mierzyć jak najczęściej się da, ale z kolei przydatność takich informacji jak chwilowa prędkość wiatru sprzed sekundy czy dwóch jest praktycznie zerowa, do tego lepiej jest wyświetlać średnią z jakiegoś okresu. To jeżeli masz dużo prądu.

Jak chcesz mieć zasilanie z baterii, to zależy ci na najmniejszym możliwym poborze, więc kręcąc enkoderem zmieniasz ekran z funkcją, a przyciskiem dokonujesz pomiaru czy coś tam sobie odczytujesz, a po zadanym czasie gasisz ekran, zerujesz stan UI i kładziesz wszystko spać, żeby później na sygnał z enkodera obudzić wszystko gdy użytkownik chce sobie coś tam obejrzeć na urządzeniu.

I jeszcze jedna rzecz, która jest związana ze środowiskiem. Stacja pogodowa ma największy sens, gdy stan środowiska oglądasz sobie w domowym ciepełku, bez wychodzenia na dwór żeby odczytać cokolwiek (bo jak wyjdziesz, to już wiesz że jest zimno, mokro i wieje). Dlatego ja bym to zrobił tak, że stacja sama by tylko zbierała dane i przesyłała po jakimś radiu do urządzenia w domu, na którym będziesz miał ładny duży wyświetlacz i możesz poszaleć z wizualizacją. Generalnie szkoda wysiłku na robienie projektów bez sensu. ;)

EDIT: jak chcesz zobaczyć enkoder w akcji obsługi UI, to tu masz kompletny przykład, nawet z dynamicznymi pozycjami w menu (i jest wygaszanie/budzenie ekranu) -> https://bitbucket.org/zgoda/esp8266_beercounter
radzisko123
Młodszy majsterkowicz
Posty: 20
Rejestracja: 7 lip 2016, 22:10

Re: samo utrzymująca się stacja meterologiczna

Post autor: radzisko123 » 15 wrz 2016, 16:08

juz tłumacze sam program będzie sprawdzał stany na czujnikach oraz sterował ładowaniem baterii przez przekaźniki (chce całkiem odizolować arduino od solerek ) jak bateria są full ma wyłączyć tą baterie i ładować kolejną to ma działać cały czas bo ilość ogniw będzie sporo bo aż 6 sztuk więc tym że braknie napięcia sie nie martwie zawsze moge zrobić coś takiego że jak na wszystkich będzie 2,5v to załączy awaryjnie ładowarkę usb podpiętą do całości ładowanych ogniw.

Dane chce aby były cały czas sprawdzane dlatego że mają sie zapisywać na karcie pamięci żebym mógł to sobie potem sprawdzić co sie działo w tym czasie a chce tylko zmieniać wyświetlane dane.

Rozwiązanie z enkoderem możne być dobre a ilością kody nie musze sie martwić bo i tak chce wykorzystać do tego Arduino Mega ze względu na piny analogowe i też mogę zrobić aby podświetlenie włączało sie tylko wtedy jak jestem przy ekranie z wykorzystaniem czujnika ruchu np podchodzę to wyświetlacza to podświetlenie zapala sie na 5 minut i gaśnie i tak za każdym razem

Tylko problemem jest właśnie to jak napisać program pewnie musze posać osobne voidy oraz odwoływać sie do pinów ze jeżeli na pinie np. 8 jest stan wysoki to włącz "void zegarek" ale problemem jest to że jak to dam to nie będzie aktualizował danych no chyba że dam odświeżanie co sekundę .

Dlatego chciałem to rozwiązać przyciskami ale wtedy musiały by być czytane coś w ten sposób ze jak wcisnę raz przycisk to będzie dany program cały czas podtrzymywany dopiero jak wcisnę inny to przełączy program na kolejny wyłączając poprzedni .

A chce ro zrobić na 3 przyciskach na zasadzie przełączania sie pomiędzy programami przód tył domyślny na którym jest tylko data i godzina dlatego mniej więcej wiem jak to napisać ale czy to ma jakiś sens w tym co robie
zgoda
Majsterkowicz
Posty: 60
Rejestracja: 23 cze 2016, 09:58

Re: samo utrzymująca się stacja meterologiczna

Post autor: zgoda » 15 wrz 2016, 19:31

Dane zbierasz na przerwaniach z timera, a na przerwaniach z guzików przełączasz ekrany. Jak zrobisz 3 (lewo, prawo, ok/zatwierdź), to będziesz miał tak samo jak enkoder. W loop tylko sprawdzasz które przerwanie się wykonało i reagujesz albo robiąc odczyt z czujnika, albo zmieniając ekran. Na timerze możesz też zrobić sprawdzanie stanu naładowania baterii.

Jeżeli zależy ci na bardzo dużej dokładności pomiaru czasu w timerach, to będziesz potrzebował jakiegoś rtos i to już nie na arduino.

A propozycję żeby stacja zajęła się tylko zbieraniem danych z czujników i utrzymywaniem się przy życiu podtrzymuję, nawet gdyby to oznaczało wysyłanie danych sms-ami do centrali u ciebie w domu. ;)
ODPOWIEDZ

Strony partnerskie: