Elektronika

ESP8266 - tanie i łatwe w użyciu WiFi do Arduino i bez Arduino

Hit! Czegoś takiego mi było trzeba. W bardzo umiarkowanej cenie można kupić niewielki układ, który nie tylko połączy Arduino z siecią bezprzewodową (także w standardzie “n”), ale także w wielu przypadkach będzie pracować bez Arduino. Poznajcie ESP8266, układ który wprowadzi sporo zamieszania w “Interncie rzeczy”.

ESP8266

 

Parametry układu imponują (jak za tę cenę i na tę wielkość). Co więc przydatnego dostajemy? Na początek - całkiem szybki procesor (RISC, 80MHz) i wcale niemało pamięci. Przede wszystkim jednak wsparcie dla WiFi, a konkretnie dla protokołów 802.11 b/g/n, w tym zarówno dla łączenia się do sieci, jak i tworzenia Access Pointa, przy czy obługiwany jest zarówno WEP, jak i WPA, WPA2 i WPS. Do tego mamy port szeregowy, przez który będziemy się komunikować z Arduino i zestaw prostych komend AT, które pozwolą nam zrobić co chcemy nie obciążając za bardzo układu nadrzędnego. I to wszystko co do szczęścia trzeba, żeby wykorzystać ESP8266 do komunikacji Arduino ze światem przez Wifi. Nie wszystko jednak, co dostajemy od tegoż układu.

Arduino Pro Mini

Użytkuję Arduino już od dłuszego czasu. Szybki przegląd archiwum bloga, podpowiada mi, że od dwóch lat. Muszę przyznać, że jestem bardzo zadowolony z automatyki zbudowanej na jego bazie. Koncepcja i środowisko od początku bardzo mi się podobały, natomiast zaskoczyła mnie bardzo pozytywnie stabilność rozwiązania. Nic się nie zawiesza, jest bezobsługowe. “Produkcyjnie” w systemie automatyki domowej używam Arduino Mega (obsługujące głównie garaż, domofon i kotłownię) oraz Arduino Uno (do systemu nawadniania i kontroli części pomieszczeń w piwnicy). Oba wyposażone są w Ethernet Shield oparty na układzie w5100, który jest bardzo prosty w osbłudzie i niezawodny. Jednym słowem - rewelacja.

Arduino Pro Mini 5V i 3.3V

Zawsze nadchodzi jednak czas, gdy trzeba coś zmeinić. Główną wadą “pełnowymiarowych” Arduino, poza ceną, jest wielkość. Są projekty, przy których rozmiar urządzenia ma znaczenie. Oczywiście pewną drogą do miniaturyzacji i optymalizacji kosztowej jest wykorzystanie samych mikrokontrolerów Atmel i potrzebnych elementów elektronicznych do budowy układów pod konkretne potrzeby. Ja jednak wybrałem inną możliwość - Arduino Pro Mini i jego klony.

Sterowanie bramą Life przez telefon i Internet dzięki Arduino

Pisałem niedawno o pracach, które prowadziłem w garażu . Przypomnę, że zmiany miały związek z instalacją napędów firmy Life do bramy wjazdowej i bramy garażowej. Wypadałoby trochę ulepszyć to co wyprodukowała fabryka i podłączyć siłowniki do systemu automatyki domowej. Nie będzie to trudne.

Najstarsi czytelnicy bloga być może pamiętają, że dawno, dawno temu przygotowałem sterowanie bramą z napędem Somfy przez telefon. Opierało się ono na oprogramowaniu z projektu Domotic Home i wydawaniu komend przez pilota podłączonego do karty przekaźnikowej routera . Teraz będzie prościej i tak jak chciałem od początku. Przy starym napędzie zasilanie z garażu było poprowadzone do centralki przy bramie wjazdowej, natomiast ona sterowała oświetleniem przed garażem - były więc poprowadzone przewody spowrotem do garażu. Teraz oświetleniem będzie sterować bezpośrednio Arduino, więc pozostąły 3 wolne przewody idące do bramy - w sam raz do sterowania ruchem skrzydeł.

Life RG UNI 24 DL

Domofon Eura SD720D6 (ADP-05A7) w inteligentnym domu

Dawno, dawno temu zepsuł mi się wideodomofon Orno. Ponieważ wideo było i tak zupełnie nieprzydatne, więc zdecydowałem się na kupno taniego modelu firmy Eura - SD720D6 + AR8 (niemal bliźniaczy dla produktów Orno), który obecnie oznaczany jest przez producenta jako ADP-05A7. Dlaczego wybrałem akurat ten model? Bo bramofon ma dokładnie taką samą obudowę jak przy starym urządzeniu, a co za tym idzie nie trzeba było wiercić dodatkowych otworów, żeby go zainstalować. Być może rozsądniej było kupić od razu coś z RFID, ale podejście praktyczne (i brak możliwości pociągnięcia dodatkowych przewodów) przeważyło. To dodatkowo rozwiązanie ekonomiczne, bo zestaw kosztował około 100PLN.

Wnętrze domofonu Eura SD720D6+AR8

Bramofon z domofonem łączy się przy pomocy dwóch przewodów i obsługują one zarówno zasilanie, fonię jak i sygnał dzwonienia. Dodatkowo dwa przewody zasilają elektrozaczep przy furtce. Wadą standardowej instalacji tego zestawu jest zasilanie elektrozaczepu prądem stałym. Dlaczego jest to wada? W takiej konfiguracji otwieranie furtki jest zupełnie bezgłośne - osoba dzwoniąca nie wie, że może wejść, gdy się jej nie powie. Gdy zaś podamy prąd zmienny, to przy otwieraniu słychać charakterystyczne “buczenie” i każdy od razu wie, kiedy trzeba pchać furtkę. Właśnie dlatego osobne przewody idące do elektrozaczepu są zaletą - można podłączyć do nich dowolne źródło prądu. Kupując domofon warto zwrócić na to uwagę, bo dostępne są także modele, w których zasilanie elektrozaczepu pochodzi z bramofonu.

System nawadniania z Arduino - realizacja

Opisywałem ostatnio , jaka jest koncepcja przeniesienia mojego niewielkiego systemu nawadniania na nową platformę - Arduino . Mamy więc zebrane informacje, jaka będzie architektura i jakie elementy zostaną użyte. Co więcej, wszystko poza Arduino z osprzętem jest już gotowe. Pora więc zabrać się za montowanie całości i łączenie kabelków.

Ponieważ trudno zaakceptować wtykanie poszczególnych przewodów do złącz Arduino, więc najwygodniej jest zastosować moduł prototypowy And Proto Shield , który chwaliłem już wcześniej. Mimo, że na płytce nie będzie żadnych dodatkowych układów, to nawet dla pewnego umieszczenia przewodów we właściwych wejściach Arduino Uno, warto zastosować taki moduł. Docenia się to już po pierwszej konieczności odłączenia przewodów od Arduino i ponownego ich podłączenia.

Arduino - system podlewania

Ethernet Shield, czyli Arduino w Internecie

Ostatnio opisywałem mały router Edimaksa . Nie bez powodu. Zamierzam podłączyć Arduino do Internetu. Właściwie głównie do sieci lokalnej, ale z możliwością bezpośrednich zapytań “w świat”. Jak to zrobić? Przez Ethernet Shield - rozszerzenie nakładane na Arduino (kompatybilne zarówno z Uno jak i Mega ).

Arduino z Ethernet Shield

Komunikuje się ono przez interfejs SPI, który w Arduino Uno wyprowadzony jest na wyjścia 11, 12 i 13, natomiast w Mega na 50, 51 i 52. I tu może pojawić się pytanie, w jaki sposób jest w takim razie, shield jest kompatybilny z obydwoma płytkami. Jest, bo używa pinów oznaczonych jako ICSP, które są połączone z właściwymi wyjściami konkretnego Arduino. Warto to wiedzieć, bo na rynku jest jeszcze kilka “wynalazków” bez złącza ICSP, które używają zwykłych wyjść i nie współpracują poprawnie z wersją Mega (można je zmusić, ale nie w sposób elegancki). Oficjalna wersja działa w każdym razie poprawnie w każdym przypadku.

Czujnik zalania CZ 01

System nawadniania ogrodu powinien “wiedzieć”, kiedy pada deszcz. Gdy używałem karty przekaźnikowej (w wersji z cyfrowymi wejściami), to miałem do niej podłączony sensor opadów wykonany w oparciu o czujnik zalania CZ 01 firmy Sigma Projekt. Czujnik ten bardzo dobrze będzie współpracował z Arduino. Może nie jest to najprostsze możliwe rozwiązanie w przypadku niebieskiej płytki , ale do tej pory świetnie się sprawdzało i chcę je zachować.

Czujnik zalania CZ 01

Mój pierwszy "shield" do Arduino

Arduino to bardzo fajna zabawka. Świetnie wspomaga naukę podstaw współczesnej elektroniki. W budowaniu własnych układów szczególnie pomocna jest płytka stykowa . Dzięki niej można szybko i wygodnie tworzyć prototypowe urządzenia bez lutowania. Wtykamy tylko kabelki i elementy na płytkę, podłączamy do Arduino i już działa. Bardzo dobrze testuje się w ten sposób działanie różnych elementów elektronicznych oraz sprawdza, czy wymyślone koncepcje układów będą działać.

Tylko, że płytka stykowa nijak nie daje się użyć przy gotowym układzie - elementy można z niej wyszarpnąć, całość zajmuje dużo miejsca, same wady. Oczywiście, można powiedzieć, że Arduino do tego nie służy, że na gotowo można zbudować własny układ na mikrokontrolerze. Ale nie trzeba, bo Arduino nadaje się do gotowego układu, o ile ma elegancką powłokę (shield). Tylko, że amatorsko ciężko taką zrobić - trzeba zaprojektować i przygotować (lub zamówić) płytkę drukowaną, a potem polutować elementy (co w porównaniu z przygotowaniem płytki jest banalne). Czy aby na pewno trzeba?

Arduino w służbie inteligentnego domu - koncepcja

Minęło już trochę czasu odkąd testuję Arduino Uno R3 , więc pewnie pora zbudować koncepcję rozbudowy mojej niskobużetowej, amatorskiej instalacji inteligentnego domu , o której pisałem wcześniej. Chciałbym dołożyć dodatkowe funkcjonalności, a przy okazji pozbyć się jednej z kart przekaźnikowych na rzecz Arduino (skoro już jest, nie ma potrzeby mnożyć bytów). Nie chcę oczywiście odcinać się od routerów z OpenWRT i tego, co już osiągnąłem. Pora podsumować cały projekt, stan obecny i wizję przyszłości.

Stan obecny

Na początek małe podsumowanie (w skrócie) tego, jak system wygląda bez Arduino. Centralnym urządzeniem w środowisku automatyki domowej jest router TPlink TL-WR1043ND z zainstalowanym systemem OpenWRT. Dostarcza on Internet (sieć w ogólności) przewodowo do różnych punktów w domu i bezprzewodowo. Zlokalizowany jest w garażu, skąd rozchodzi się gwiaździście okablowanie do dużej części pomieszczeń w domu. Do routera podłączony jest dysk USB, który w przeszłości był źródłem dla odtwarzacza multimediów podłączonego do telewizora w salonie. W tej chwili z tej funkcji router został odciążony przez Iomega iConnect , stanowiący centrum składowania i serwowania danych. Do routera podłączona jest za to magistrala one-wire i kilkanaście termometrów w całym domu (w tym wiele w kotłowni do monitorowania kotła). Router gromadzi dane, rysuje wykresy i je udostępnia. Analizuje też temperatury z kotłowni i powiadamia smsem o różnych zdarzeniach, np. wygaśnięciu pieca. Router otwiera też bramę wjazdową, co opisywałem ostatnio i steruje ogrzewaniem (przełącza kocioł na ekogroszek w coś w rodzaju trybu bardzo oszczędnego).

Łączenie Arduino z OpenWrt

Od jakiegoś czasu “bawię się” Arduino, a swoje doświadczenia staram się tu opisywać. Pisałem też kiedyś o mojej koncepcji inteligentnego domu (lub jak kto woli domowej automatyki) w oparciu o OpenWRT. Do rozpoczęcia przygody z Arduino skłoniła mnie właśnie chęć rozbudowy tego systemu.

OpenWRT zainstalowany w routerze jest świetny, elastyczny, linuksowy, jednak trochę brakuje mu możliwości z realnym światem. Problem w dużej części rozwiązał zakup karty przekaźnikowej wyposażonej dodatkowo w wejścia, jednak cały czas mi czegoś brakowało.