Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 24 gru 2024, o 00:41


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 21 ] 
Autor Wiadomość
PostNapisane: 5 lis 2013, o 18:01 
Offline
Użytkownik

Dołączył(a): 31 paź 2013
Posty: 33
Lokalizacja: Wrocław
Pomógł: 0

Zamierzam zbudować inteligentne podlewanie ogrodu. Z grubsza chodzi oczywiście o to żeby nie podlewać jeśli w ciągu ostatniej doby były opady deszczu.

Kupiłem czujnik wilgotności oraz zespół dwóch przekaźniczków do płytki Arduino.
Do tej pory nauczyłem się zaledwie sterować włączaniem się przekaźnika gdy czujnik jest suchy a także miganiem diody (gdy sucho).
Zrobiłem to żeby nauczyć się wstępnie programowania bo jestem zielony (jak każdy kto kiedyś zaczął). Mam dopiero niecały miesiąc więc jestem malutki :oops:

Na tym etapie myślę że warto zapytać kolegów o koncepcję ogólną programu. Chodzi o to żeby nie tworzyć niepotrzebnych rzeczy które potem się wyrzuci do kosza (chociaż zdaję sobie sprawę że i tak pewnie sporo w koszu wyląduje).
Nie wiem na przykład czy potrzebne jest dołączenie zegara czasu rzeczywistego na osobnej płyteczce.... itd

Założenia mam ogólnie takie :
1 - Program działa w pętli dobowej i bada opady deszczu uzależniając od tego podlewanie ogródka.
2 - Konieczne będzie badanie ilości opadów ale w sposób w miarę uproszczony. Program musi natomiast jakoś zliczać czas trwania okresu kiedy jest mokro i na tej podstawie decydować czy podlewamy.
3 - mogą być zadane jakieś stałe okresy podlewania (wcześniej kupiłem zwykły zegar elektroniczny aby ustawić np 3 cykle podlewania w ciągu dnia) ale uzupełnione o te warunki że jeśli uznamy że było niedawno dosyć mokro to nie trzeba podlewać.
4 - Na wyjściu przekaźnika umieszczam zwykły elektrozawór od pralki który kupiłem za 25 zł i jest już zamontowany w ogrodzie w wodoszczelnej puszce elektrycznej :-)

Poniżej zamieszczam kod o którym wspomniałem napisany na podstawie przykładu zamieszczonego przez SunRivera tu: topic3336.html

Kod został utworzony w celach nauki programowania a więc nie chodzi o to żeby sie na nim opierać.

Proszę po prostu o podpowiedzi jak się za temat zabrać.

KOD:
Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lis 2013, o 20:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8589
Pomógł: 337

Może zrobię tak trochę złośliwie a może i nie ale ja zrobiłbym to tak :

Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


tak na szybko i nie musi działać bo nie sprawdzałem , ale chciałem coś pokazać ....
już ty wiesz co :)

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lis 2013, o 10:07 
Offline
Użytkownik

Dołączył(a): 31 paź 2013
Posty: 33
Lokalizacja: Wrocław
Pomógł: 0

:shock: No nie wiem Sun co chciałeś pokazać bo kod jak dla mnie jest dość skomplikowany i sporo czasu upłynie zanim coś takiego skonstruuję.
Chyba że chodziło właśnie o pokazanie że to zbyt skomplikowany projekt jak na początkującego ...

Widzę że jest jakaś biblioteka "Time" co sugeruje że nie muszę dołączać żadnego zegara w formie dodatkowej płytki...

Widzę tu termometry które chyba nie będą mi potrzebne a nie widzę co jest czujnikiem wody który właśnie chcę zastosować. Bardzo mnie interesuje mierzenie opadów i podlewanie w zależności od nich. Temperatury już raczej mniej. Chcę wykorzystać podlewaczkę tylko w okresie letnim bo mi słońce pali posadzone żywopłoty.

Oczywiście w miarę upływu czasu fajnie by mieć taką stację pomiarową która mierzy temperatury i może nawet nasłonecznienie. Fulwypas ale na razie muszę mieć prostą maszynę.

Z tego kodu wnioskuję że go nie skumam... Wydrukowałem i będę zgłębiał ale wolał bym żebyś walił prostym tekstem a nie robił tajemnice :-P

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 lis 2013, o 00:36 
Offline
Nowy

Dołączył(a): 04 lis 2013
Posty: 4
Pomógł: 0

Witajcie wszyscy. To mój pierwszy post na tym forum. Jestem wielkim laikiem w temacie AVR. Mam nadzieje że się czegoś nauczę, choć idzie mi to strasznie opornie. Bibloteka time.h służy do wykonywania zadań w przesunięciu czasowym. Chodzi o wielozadaniowość. Że się tak zapytam, jak będziesz decydował na jak długo ma być otwarty zawór ?? Bo decyzję czy zawór jest otwarty czy zamiknięty podejmuje czujnik.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 lis 2013, o 11:56 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2590
Pomógł: 128

Jesli chodzi o funkcjonalnosc to moze sterownik Neptun czymś Ciebie jeszcze natchnie :)

sterownik24.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lis 2013, o 10:27 
Offline
Nowy

Dołączył(a): 11 lis 2013
Posty: 4
Pomógł: 0

Nie skonstruowałem (jeszcze) podlewaczki tego typu, ale mam pewne uwagi/idee:
1) mierzymy wilgotność w określonych odstępach czasu (np. co pięć minut) i jeśli przekracza pewien próg dodajemy 1 do licznika opadów. Kiedy przychodzi czas podlewania sprawdzamy wartość tego licznika, podlewamy lub nie (można też od tego uzależnić długość podlewania) i zerujemy go. Ten sposób rozumowania powinien być (w miarę) sensowny jeśli mierzysz wilgotność powietrza. Można też użyć ilorazu (ile_razy_było_mokro)/(ile_razy_mierzyliśmy) jeśli potencjalne podlewania nie mają być w równych odstępach czasu (uwaga na int/int żeby nie zawsze było zero ;) ).
2) jeśli mierzysz wilgotność gleby, to po prostu mierzysz ją tuż przed podlewaniem i jak jest dość mokro to nie podlewasz (lub uzależniasz czas podlewania od zmierzonej wilgotności).
3) kwestia użycia zewnętrznego zegara RTC zależy w dużym stopniu od stabilności źródła zasilania - jeśli chcesz prawie wcale do tego nie zaglądać a zdarzą się przerwy w zasilaniu arduino, to jednak lepiej mieć RTC i liczyć wszystko względem czasu z RTC. Choć z drugiej strony jeśli te przerwy zdarzać się będą sporadycznie (nie częściej niż raz na tydzień), to nawet jeśli podlewanie przesunie się z tego powodu o np. 4 godziny to chyba też nic się nie stanie. Tak czy siak bez zewnętrznej pamięci po przerwie w zasilaniu program wystartuje "na czysto" od zera.
4) co się dzieje, jeśli otworzysz elektrozawór i wtedy akurat zabraknie prądu? (podłącz arduino i elektrozawór na jednej listwie i sprawdź i napisz tutaj jeśli możesz - ja planuję zrobić system automatycznego podlewania roślin w mieszkaniu, a nie chciałbym zalewać sobie parkietu).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lis 2013, o 11:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8589
Pomógł: 337

Cytuj:
4) co się dzieje, jeśli otworzysz elektrozawór i wtedy akurat zabraknie prądu? (podłącz arduino i elektrozawór na jednej listwie i sprawdź i napisz tutaj jeśli możesz - ja planuję zrobić system automatycznego podlewania roślin w mieszkaniu, a nie chciałbym zalewać sobie parkietu).



nie mam pojęcia .... nigdy nie budowałem tego typu urządzenia poza jednym systemem podlewania i zraszania trawników , a w domu nie mam roślin bo i tak by padły :P

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2013, o 11:27 
Offline
Użytkownik

Dołączył(a): 31 paź 2013
Posty: 33
Lokalizacja: Wrocław
Pomógł: 0

Domiss napisał(a):
Nie skonstruowałem (jeszcze) podlewaczki tego typu, ale mam pewne uwagi/idee:
1) mierzymy wilgotność w określonych odstępach czasu (np. co pięć minut) i jeśli przekracza pewien próg dodajemy 1 do licznika opadów. Kiedy przychodzi czas podlewania sprawdzamy wartość tego licznika, podlewamy lub nie (można też od tego uzależnić długość podlewania) i zerujemy go. Ten sposób rozumowania powinien być (w miarę) sensowny jeśli mierzysz wilgotność powietrza. Można też użyć ilorazu (ile_razy_było_mokro)/(ile_razy_mierzyliśmy) jeśli potencjalne podlewania nie mają być w równych odstępach czasu (uwaga na int/int żeby nie zawsze było zero ;) ).

W tym kierunku zacząłem parę dni temu właśnie kombinować. Myślę nad pętlą czasu mniejszą niż cała doba. Boję się po prostu że to może bardziej skomplikować program. Chyba będę podlewał co 6 godzin. Myśle że godzina podlewania wystarczy. Pomiędzy podlewaniami będę sprawdzał co 10 minut czy ziemia jest wilgotna. Jeśli np było mokro 6 razy po 10 minut no to nie trzeba podlewać bo to właśnie godzina mokrości.

Domiss napisał(a):
2) jeśli mierzysz wilgotność gleby, to po prostu mierzysz ją tuż przed podlewaniem i jak jest dość mokro to nie podlewasz (lub uzależniasz czas podlewania od zmierzonej wilgotności).

Tego właśnie nie chcę bo to właściwie sprowadza "podlewaczkę" do roli włącz/wyłącz w zależności od tego czy jest mokro czy nie. W tej sytuacji może się okazać że tej wody będzie za dużo w ciągu doby - szkoda roślin no i wody :-)
Takie podlewanie można zrobić na samym czujniku spiętym razem z przekaźnikami i zegarem któy kupiłem za 15 zł... Nie potrzeba Arduino
Domiss napisał(a):
3) kwestia użycia zewnętrznego zegara RTC zależy w dużym stopniu od stabilności źródła zasilania - jeśli chcesz prawie wcale do tego nie zaglądać a zdarzą się przerwy w zasilaniu arduino, to jednak lepiej mieć RTC i liczyć wszystko względem czasu z RTC. Choć z drugiej strony jeśli te przerwy zdarzać się będą sporadycznie (nie częściej niż raz na tydzień), to nawet jeśli podlewanie przesunie się z tego powodu o np. 4 godziny to chyba też nic się nie stanie. Tak czy siak bez zewnętrznej pamięci po przerwie w zasilaniu program wystartuje "na czysto" od zera.

Też zaczynam sie skłaniać ku rezygnacji z zegara. Natomiast kwarc chyba raczej pomoże (jeśli zastosuję na końcu sam procek z czujnikami bez płytki Arduino)
Domiss napisał(a):
4) co się dzieje, jeśli otworzysz elektrozawór i wtedy akurat zabraknie prądu? (podłącz arduino i elektrozawór na jednej listwie i sprawdź i napisz tutaj jeśli możesz - ja planuję zrobić system automatycznego podlewania roślin w mieszkaniu, a nie chciałbym zalewać sobie parkietu).


To będzie chwilowo trudne bo zawór mam już zamontowany na wsi w domku a w ciągu tygodnia siedzę we Wrocławiu
ale...
myśle że ten zawór jest otwarty TYLKO wtedy gdy dopływa do niego prąd. To są zaworki od pralki i nie mają raczej stanów stabilnych a więc jak nie ma prądu to nie płynie woda. To coś jak przycisk (nie wyłącznik) - tak długo jak go naciskamy to przewodzi prąd a jak puścimy to przestaje przewodzić.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lis 2013, o 18:00 
Offline
Użytkownik

Dołączył(a): 31 paź 2013
Posty: 33
Lokalizacja: Wrocław
Pomógł: 0

Zmagań ciąg dalszy.

Będę podlewał co 6 godzin. Myśle że godzina podlewania wystarczy (linia kropelkowa a więc woda się sączy).
Cykl ma się powtarzać co 6 godzin i w ten sposób ziemia będzie podlana 4 razy w ciągu doby.

Pomiędzy podlewaniami będę sprawdzał co 10 minut czy ziemia jest wilgotna. Jeśli np było mokro 6 razy po 10 minut no to nie trzeba podlewać bo to właśnie godzina mokrości.

Męczę się teraz nad "licznikiem" czyli prostym fragmentem programu który będzie zliczał te impulsy (czujnik daje logiczną jedynkę gdy jest mokro).
Licznik ma zliczyć co najmniej 6 impulsów wysokich co będzie oznaczało że przynajmniej 6 razy po 10 minut było mokro. Myślę że nie ma znaczenia kiedy to mokrość wystąpi w ciągu okresu 6 godzin.
Jeśli zliczy minimum 6 impulsów to NIE PODLEWA a w przeciwnym razie podlewa przez godzinę.

Program powinien chyba przez 5 godzin zajmować się tylko sprawdzaniem stanu wilgotności i zliczaniem tych impulsów a następnie przez godzinę podlewać.
Może to być prosta pętla i nie musi mieć żadnych wówczas skomplikowanych przerwań. Można chyba zastosować wówczas zwykłe "delay".
Trzeba by jakoś "zerować" co 10 minut czujnik wilgotności no bo jeśli będzie ciągle mokry to nie nastąpią impulsy co 10 minut tylko jeden impuls będzie trwał w nieskończoność...

Jeśli ktoś może pomóc w przełamaniu impasu w programowaniu to będę wdzięczny.
Mam wrażenie że poszukuję od paru dni informacj w necie jak rozwiązać trywialny temat

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lis 2013, o 18:38 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8589
Pomógł: 337

chyba nie bardzo rozumiem co chcesz zrobić .

ale wydaje mi się że skoro czujnik wystawia ci 1 jak jest mory to jedynie go możesz zrestetowac osuszając go :P

ale jakie ma to znaczenie ?? żadne
bo skoro chcesz sprawdzać co 10 min czy ma 1 czy 0 no to sprawdzasz
czy :

PIN_CZUJ = 1 jak tak to zmiena np MOKRO ++ i delay 10min , a potem sprawdzasz zmów czy 1 i jak tak to MOKRO ++
i tak w koło .... aż do czasu gdy MOKRO = 6 jeśli mokro = 6 to wywołasz funkcje PODLEJ
jeśli sprawdzisz np 5x że jest MOKRO i MOKRO = 5 , a tym razem było else SUCHO to ustawiasz MOKRO = 0 i sprawdzasz sobie dalej
wkoło chyba jasno ... rozpisałem ...

załatwisz to pętlą IF ... ELSE ...

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lis 2013, o 21:00 
Offline
Użytkownik

Dołączył(a): 31 paź 2013
Posty: 33
Lokalizacja: Wrocław
Pomógł: 0

Do momentu Twojego postu SunRiver wysmażyłem poniższy kod. Zacząłem tworzyć zmienną stan czujnika oraz licznik czujnika. Być może nie do końca z sensem patrząc na Twój post.
Po linii 23 powinny nastąpić rzeczy których jeszcze nie napisałem bo na razie nie potrafię. Poniżej tej linii jest jakby ten sam kod który miałem do tej pory. Wywaliłem tylko migającą diodę z CAŁEGO kodu bo nie chciałem zaciemniać sprawy

Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Wklejam go bo może przynajmniej powiesz mi (lub ktoś inny) czy idę dobrym tropem. Muszę przeanalizować co napisałeś. Mam 99 % pewności że dobrze gadasz tylko że...
Funkcję PODLEJ (czy jak to sobie w programie zrealizujemy) chcę wywoływać ZAWSZE co 6 godzin (a nie wtedy kiedy było sucho) bo bym zlewał ziemię zawsze.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lis 2013, o 08:49 
Offline
Użytkownik

Dołączył(a): 31 paź 2013
Posty: 33
Lokalizacja: Wrocław
Pomógł: 0

Sun - a czy delay może być na pewno 10 minut? Podpowiadają mi że nie i żebym zapomniał o tym i podłączył zegar czasu rzeczywistego i bibliotekę jakąś użył "czasową". Wolę to zrobić tak jak mówisz bo chcę zrobić prymityw.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lis 2013, o 10:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8589
Pomógł: 337

no dobrze by było użyć RTC do tego celu np DS1307

albo zainteresuj sie ta biblioteka:
http://playground.arduino.cc/Code/Timer

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lis 2013, o 12:38 
Offline
Użytkownik

Dołączył(a): 31 paź 2013
Posty: 33
Lokalizacja: Wrocław
Pomógł: 0

Dobra - zamówiłem gotowca z http://allegro.pl/show_item.php?item=3705868943

Czy będę mógł użyć w takim razie boblioteki Timer (tu są łatwe przykłady - http://playground.arduino.cc/Code/Timer#Examples) bez konieczności uczenia się odwołań do tej biblioteki?

Tu jest przykład na to jak zrobić chyba dokładnie taki 10 minutowy delaj za pośrednictwem tej biblioteki
Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lis 2013, o 13:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8589
Pomógł: 337

dokładnie i działa bez RTC

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lis 2013, o 19:55 
Offline
Użytkownik

Dołączył(a): 31 paź 2013
Posty: 33
Lokalizacja: Wrocław
Pomógł: 0

Na dziś pomijam bibliotekę Timer i próbuję prymitywnie jak mi SunRiver podpowiadał bo takie było moje założenie

Napisałem kawałek kodu który ma zliczać impulsy i od tego uzależniać włączenie lub wyłączenie przekaźnika. Na początek miało zliczać co 5 sekund żebym mógł szybko pobawić się wyjmując czujnik ze szklanki z wodą
Dodałem zatem "licznikCzujnika" i "led" abudowany w Arduino żeby mi wskazywał kiedy skończy się czas obserwowania czujnika

Taka pętla powinna powstać (najprymitywniejsza ofkors) dla 5 godzin obserwacji czujnika a potem 1 godziny podlewania (jeśli nie było mokro dłużej niż 6 x na 10 minut (czyli godzinę mokro)

To co napisałem działa ale nie do końca.
Wtykam kabel USB do kompa żeby zasilić płytkę z poniższym kodem. Czujnik zamoczony jest w wodzie. Program czeka parę sekund, błyska moją diodą na pinie 13 i ... włącza przekaźnik.
Potem TRZY razy błyska diodą czyli pokonuje pętelkę zliczania impulsów i WYŁĄCZA PRZEKAŹNIK no bo czujnik jest mokry a więc pewnie - zlicza 3 impulsy które zadałem w programie i stwierdzając że jest mokro - nie podlewa.\

Niestety dalej próbuję wyjąć czujnik z wody i tu ... program się chyba zatrzymuje bo dioda na pinie 13 przestaje błyskać co 5 sekund i nic się nie zmienia.

Włożenie czujnika z powrotem do wody powoduje wznowienie błyskania diodą i pewnie zliczanie impulsów

Całą sprawę trochę komplikuje mi budowa czujnika i przekaźnika. Czujnik pokazuje stan niski jak jest mokro i przekaźnik włączany jest za pomocą stanu niskiego .... to mi miesza w łepetynie

No a oto kod "Zdziś"
Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lis 2013, o 19:51 
Offline
Użytkownik

Dołączył(a): 31 paź 2013
Posty: 33
Lokalizacja: Wrocław
Pomógł: 0

Zdecydowałem się na zmianę podejścia do tematu.
Wydaje mi się że mimo wszystko łatwiej będzie nieco bardziej profesjonalnie niż prymitywnie czyli...

Po pierwsze nie chcę żeby pętla była prymitywna i kolejne kroki wstrzymywane funkcją delay (w sposób prostacki czy też wykorzystujący bibliotekę Time)

Po drugie chcę wykorzystać RTC czyli Zegar Czasu Rzeczywistego który już kupiłem, podłączyłem i sobie działa (jako zegarek sterowany Arduinem) bo skoro on sobie chodzi to czemu się do niego nie odnieść podczas pisania kodu.

Po trzecie chcę (a może to było to "po pierwsze") wykorzystać "przerwania" aby pętla sobie biegła i pracowała ale pewne funkcje były wykonywane w czasie jej pracy (konkretnie funkcja sprawdzania czy były opady w międzyczasie)

Zatem wyobrażam sobie że program powinien wyglądać tak
1 - Istnieje pętla w której podlewamy rośliny co 6 godzin przez godzinę (i tu wykorzystać chcę RTC czyli odczytywać faktyczny czas). Podlewanie uzależnione jest od zebranych w międzyczasie informacji na temat opadów.
2 - Co jakiś czas (np co 10 minut) wykonywane są pomiary wilgotności gleby i zliczane są do jakiejś zmiennej (i tu wykorzystujemy "przerwania")

i tutaj podrzuciłem sam sobie pod nogi kłody w postaci :
Na czym k***czę polegają te biblioteki (w ogóle) ???
Jakich rozkazów należy użyć aby odczytywać czas z zegara w tej mojej pętli

W związku z tym postanowiłem nawinąć osobny temat w stylu "Co to są te biblioteki i z czym to się je?"
naprawdę nie znalazłem w necie takiego tematu ... Wszyscy piszą o tym jaką bibliotekę do czego wykorzystać... ale nie ma info dla maluczkich - z czego to się tak naprawdę składa i jak się z tym komunikować. Wiem że istnieją pliki "***.h" oraz "***.cpp
itd
Wszystkich którzy mogą pomóc zapraszam do tego tematu topic4835.html

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 lis 2013, o 08:34 
Offline
Użytkownik

Dołączył(a): 31 paź 2013
Posty: 33
Lokalizacja: Wrocław
Pomógł: 0

W oczekiwaniu na dopływ wiedzy postanowiłem popchnąć projekt "manualnie".
Programowanie to najtrudniejsza dla mnie sprawa ale nie należy marnować czasu - może im bardziej zaawansowany będzie projekt tym łatwiej będzie komuś pomóc mi w programowaniu :-)

Docelowo PODLEWACZKA ma być umieszczona na osobnej płytce aby nie wyrzucać Arduino do kosza :-)

Zatem na płytkę przeniosłem procesor z zasilaniem oraz RTC (czyli zegar) a do tego dołączyłem wyświetlacz.
Aby do granic możliwości oszczędzać energię naszej biednej planety (nie - nie jestem z Grinpis) dołączyłem przycisk który podświetla wyświetlacz jeśli koniecznie tego chcemy (pod wyświetlaczem)
Zegar wykonany jest na kostce DS1307 (najpierw kupiłem gotowca ale tu chcę także mieć wszystko "na piechotę"). Schematy podłączeń są dostępne w necie wystarczy wpisać DS1307 i popatrzeć na grafiki.

Do zegara dołączony jest akumulatorek, dwa rezystory 10k oraz kwarc 32 768 kHz. Całość kosztuje max 10 zł WRAZ Z AKUMULATORKIEM. Elementy te widoczne są z lewej strony procesora.
Poniżej tych elementów pozostawiłem nieco miejsca na kilka przycisków które chodzą mi po głowie...

Procesor otoczony jest przeciętą na pół podstawką tak zaby można było wetknąć tam kable np do programowania zegara (tak właśnie go zaprogramowałem)
Zamierzam docelowo zastosować też słabszy procesor niż Atmega 328.

Po prawej stronie procesora widoczny jest wyświetlacz a poniżej niego moduł zasilania z układem scalonym LM7812 i 4 kondensatory filtrujące a także okrągły prostowniczek (mostek Graetza).
Z płytki odchodzą dwa białe przewody do podłączenia transformatorka sieciowego. Na razie cała płytka zasilana jest z baterii (a zegar z akumulatorka).

To co widać na zdjęciu musi zostać uzupełnione o moduł zawierający przekaźnik sterujący zaworem wody (na wyjściu procesora).
Do procesora będzie musiał być dołączony na wejściu - czujnik wilgotności gleby.

Program będzie musiał opierać się na odczytach z zegara. W tym miejscu muszę poznać obsługę programową tegoż.. i liczę tu na pomoc szanownych kolegów. Być może w wątku topic4835.html

Obrazek

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lis 2013, o 21:13 
Offline
Nowy

Dołączył(a): 11 lis 2013
Posty: 4
Pomógł: 0

To może ja tak bardzo mniej więcej zobrazuję mój pomysł, ale zgodnie z założeniami autora tematu, czyli przez 6 godzin zbieramy co dziesięć minut dane i potem podlewamy (albo nie).

Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 gru 2013, o 17:09 
Offline
Użytkownik

Dołączył(a): 31 paź 2013
Posty: 33
Lokalizacja: Wrocław
Pomógł: 0

Witam wszystlich i spieszę poinformować że plotki o mojej śmierci są mocno przesadzone.

Faktem jest że prawdopodobnie niewielu to interesuje :-D

Projekt nie został zarzucony a także nie zniechęciłem się mimo że "obiecanki macanki a głupiemu do rana stoi..."

Stwierdziłem że postawię poprzeczkę jeszcze wyżej (z powodów egoistycznych ofkors) - uczenie się softu do Arduino po polsku jest karkołomne - łatwiej znaleźć informacje na temat C lub C++ i w tym kierunku zmierzam. Zatem chcę programować suchego procka.

to na razie...

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 gru 2013, o 17:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8589
Pomógł: 337

hmm... w sumie to jakoś nigdy się nie uczyłem arduino
ot tak sobie pisze .... podobnie jak w C

:)

ale zaiste się cieszymy i szczekamy na wyniki ....

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 21 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO