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?

Czytaj więcej

Reklamy

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).

Czytaj więcej

Wielozadaniowość w Arduino?

Programowanie Arduino jest bardzo proste. Do takiego wniosku można dojść obserwując najprostsze przykłady programów. Spójrzmy chociażby na, prezentowany już wcześniej, program mrugający diodą podłączoną do wyjścia numer 13. Dla łatwiejszych dalszych rozważań został on jeszcze trochę uproszczony:

#define LED1 13

void setup() {                
  pinMode(LED1, OUTPUT); // ustawiamy pin 13 jako wyjście
}

int led1_state=0; // na początku zmienna będzie 0 (nie świeci)

void loop() {
  digitalWrite(LED1, led1_state); // ustawiamy stan wyjścia diody zgodnie 
                                  // z wartością zmiennej led1_state: 
                                  // 1 - świeci, 0 - nie
  delay(1000);             // czekamy sekundę
  led1_state=1-led1_state; // zmieniamy stan z 0 na 1 lub z 1 na 0
}

Nie ma w nim oczywiście nic wyszukanego – co sekundę zmieniamy stan wyjścia, a co za tym idzie diody świecącej. Przypominam, że 13 została wybrana nieprzypadkowo, ponieważ do tego wyjścia podłączona jest na stałe dioda znajdująca się na płytce Arduino.

Czytaj więcej

Łą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.

Czytaj więcej

Arduino – zdalne sterowanie urządzeniami elektrycznymi

Pisałem ostatnio o tanim zestawie do zdalnego sterowania gniazkami z Biedronki. Planowałem podłączyć przyciski pilota do Arduino przez jakiś moduł przekaźnikowy (jak Relay Shield) i nawet dla tego zastosowania przylutowałem byłem już kabelki do mikrostyków. Po pewnym czasie jednak stwierdziłem, że można poszukać tańszego rozwiązania. Na początku zmierzyłem napięcia między stykami przycisków – nieco ponad 12V (tyle co napięcie baterii). Przy okazji oznaczyłem te styki, na których jest napięcie. Później zrobiłem eksperyment i zasiliłem pilota napięciem 5V wprost z Arduino (w końcu bateria ma to do siebie, że jej napięcie z czasem spada, więc projektanci musieli to przewidzieć). Z niższym napięciem też zadziałało. Co więcej, nadal nie było problemów z zasięgiem. Uznałem więc, że trzeba sprawdzić co będzie, gdy do styku przycisku, na którym nie było wcześniej napięcia przyłożę je wprost z Arduino (na wszelki wypadek przez rezystor, zapewne niepotrzebnie). Bingo, zadziałało.

Czytaj więcej