Może tytuł trochę dziwny, ale że jestem początkujący, a to co chcę wykonać to nie miganie LEDami chciał bym prosić bardziej doświadczonych o podpowiedzi odnośnie jak rozwiązać zadanie które sobie postawiłem.
Nie wiem może to głupie co napiszę ale urządzenie które buduję jest dla mnie w ramach nauki języka C postawiłem sobie takie zadnie. Nie jest to żadna praca zarobkowa czy zaliczenie. Jeśli powstanie chętnie zaprezentuję w dziale DIY forum.
Może na początek co chcę zrobić.
Zrobić chcę urządzenie które będzie mierzyło temperaturę (i może coś jeszcze wilgotność ciśnienie atmosferyczne ale teraz nie jest to ważne) u mnie w domu i na dworze, czyli do urządzenia będą
podłączone jakieś czujniki to będzie właśnie występujący w opisie programu pomiar lokalny. Do urządzenia będą przesyłane także dane z jednego, na razie, czujnika zdalnego będzie on wysyła dane przez internet (czujnik+uC+Atnel WiFi= czujnik zdalny). Dane z czujników np. temperatura opatrywane będą datą, czasem i zapisywane na karcie SD w jakiś najprostszy sposób i prezentowane na LCD 4x16 znaków. Urządzenie będzie posiadać jakieś menu z funkcjami nie mam jeszcze
pomysł co tam będzie ale z czasem pewnie coś przyjdzie do głowy. Urządzeni będzie miało też jeszcze jedną funkcję ostatni zapis danych na karcie będzie można podejrzeć na stronie www. No i to w zasadzie jak na razie wszystko co miało by się kręcić w tym urządzeniu.
Schemat blokowy może niezbyt rozbudowany jest na rysunku 1.
Program schematycznie przedstawiłem na rysunku 2.
A więc będzie to wyglądać tak: Włączamy urządzenie na LCD wyświetlają się jakieś informacje startowe np. wersja SW autor itp. następnie ma być dokonane sprawdzenie połączenia internetowego na razie nie ważne jak. Jeśli internet jest ok to następuje nastawienie zegara RTC (czekam na dawcę czasu
) Jeśli brak połączenia internetowego to urządzenie uruchamia się dalej wchodząc w główny etap jego działania. No i tu sprawa wygląda tak jeśli nie ma żadnych
żądań z Uart i klawiatury to ma nastąpić: sprawdzenie czujników lokalnych (tych podłączonych do urządzenia) wykonanie pomiarów,opatrzenie pomiarów datą i godziną z RTC i zapisanie ich do karty
SD, po zapisaniu ma być dokonany odczyt wszystkich danych które mają się wyświetlić na LCD, następnie ma nastąpić przerwa 15 minut w której, co jakiś czas będzie monitorowane napięcie akumulatora i ogniwa słonecznego które będzie ładowało akumulator, napięcie będzie wyświetlane na LCD poza tym nic się nie będzie działo. Oczywiście nie tak do końca bo jeśli do uart przyleci np. żądanie o stronę www no to ma nastąpić odczyt danych z karty SD (raczej tylko ostatniego pomiaru) i wysłanie ich w formie strony www. Jeśli zaś przylecą dane z zewnętrznego czujnika to dane zostają opatrzone datą godziną i mają być zapisane do karty SD. W tym samym czasie jeśli
zostanie wciśnięty klawisz to ma rozpocząć się procedura odpowiadająca temu co ma się stać po jego naciśnięciu czyli np. przejście do menu.
No i tu jest główne pytanie jak rozwiązać działanie tego głównego programu. Po pierwszych poradnikach z modułami wifi zastanawiam się, czy nie podzielić tego na główną pętlę gdzie będzie wykonywanie pomiaru z czujników lokalnych wyświetlanie pomiarów i zapis do karty SD. A po za tym stworzenie pewnych trzech zdarzeń dwóch pochodzących z Uart czyli przyjście danych z czujnika i przyjście zapytania o stronkę www, no i trzecie zdarzenie to naciśniecie jakiegoś klawisza
np. wejście do menu.
Wiem że trzeba jeszcze rozstrzygnąć kilka kwestii typu co zrobić jeśli przyjdzie czas pomiaru lokalnego i napłyną dane z uart lub zostanie naciśnięty klawisz. Z drugiej strony przez 15 minut
praktycznie nie będzie się działo nic tylko pomiar napięcia przetwornikiem ADC.
Zielonej książce zaciekawił mnie też projekt LCD HD44780- warstwy + obiekty.
Ponieważ jako początkujący mam jeszcze dużo materiału do przerobienia, proszę Szanownych Kolegów o kilka zdań na temat mojego kierunku myślenia, oraz o podpowiedzi i o może zmianę mojego kierunku myślenia.
Dziękuję
Rafciu
RYSUNEK 1
RYSUNEK 2