BLOGCZEJNalpha

Inteligentny dom #6

logo.png

Cześć, czas na kolejny wpis dotyczący inteligentnego domu.
Do tej pory udało nam się poznać sporo ważnych klocków, które będziemy razem składać by powstał system do zarządzania domem. Ja przy tym bardzo dużo się uczę, pokonując kolejne problemy z moim BBB. Niestety egzemplarz, który mam jest dość leciwy, poza tym nie wiem co było z nim robione zanim ja się za niego wziąłem. Stąd też liczne problemy. Na chwilę obecną udało mi się jednak przywrócić do normalnej pracy. Chociaż powoli rozglądam się za Rasberry.

Wróćmy jednak do dalszego programowania

Odczyt z czujników analogowych

Dość ważnym aspektem we wszelkiej maści systemach, czy to zarządzającym domem czy też w robotyce jest to, by móc odbierać i przetwarzać sygnały z czujników. I tutaj, podobnie jak z PWMem jeśli nauczymy się tego dla jednego czujnika bardzo łatwo zaadoptować nam to będzie dla czujników innego rodzaju.

Do naszych testów weźmiemy czujnik temperatury model TMP36

20181004_175600.jpg

Jest to bardzo tani element, który w dość przyjemny sposób współpracuje z BBB.
Przykładowe podłączenie na zdjęciu poniżej:

20181004_180748.jpg

Ważne jest aby środkową nóżkę podłączyć do jednego z następujących pinów:

  1. "AIN4", "P9_33"
  2. "AIN6", "P9_35"
  3. "AIN5", "P9_36"
  4. "AIN2", "P9_37"
  5. "AIN3", "P9_38"
  6. "AIN0", "P9_39"
  7. "AIN1", "P9_40"

To właśnie one mają wbudowany przetwornik analogowo cyfrowy, dzięki któremu możemy odbierać sygnały ciągłe (analogowe) i przetwarzać je na cyfrowe. Rasberry PI niestety nie ma takiego przetwornika i należałoby tutaj użyć dodatkowego układu.

Do naszego podstawowego układu dołożymy jeszcze przycisk. Dzięki temu będziemy mogli przy okazji zobaczyć w jaki sposób można wykorzystać łącznik w naszych aplikacjach. Docelowo może to być system monotorujący otworzenie drzwi czy okna.

20181004_183712.jpg

Napiszmy coś!

Ok, mamy poskładany układ, postarajmy się teraz coś napisać. Tym razem kod wrzucę w formie screena gdyż przy używaniu znaczników jakoś dziwnie mi się to wszystko rozjeżdza.

kod1.PNG

Analizując krok po kroku zobaczcie, że znow nie ma tu wielkiej filozofii. Mamy jedna główna pętle, która robi odczyt z czujnika, zapisuje ją do zmiennej odczyt. Zmienna ta nie jest temperaturą w stopniach Celsiusa dlatego też musimy ją przeliczyć zgodnie z tym co wyczytać można w manualu czujnika.

Następnie sprawdzamy, czy przycisk jest włączony. Jeśli tak, wypisuje temperaturę w konsoli.
Sprawdźmy jak to wygląda po uruchomieniu skryptu:

puste.PNG

A teraz spróbujmy nacisnąć przycisk:

temp.PNG

Podsumowanie

Tak przygotowany program, jak sami możecie zobaczyć działa zgodnie z założeniem. Sprawdzanie stanu przycisku przy każdej pętli programu nie jest jednak zbyt optymalne. Im bardziej będziemy iść w rozbudowę naszego programu tym więcej rzeczy będziemy musieli optymalizować. Obsługę pewnych rzeczy (jak przyciski) możemy zlecić innym narzędziom, które są stosowane w mikrokontrolerach. Ten temat jednak poruszę w nowym wpisie gdzie powoli zaczniemy układać nasze klocki w całość.
Pozdrawiam!

KOMENTARZE