5 Dni z przekaźnikiem Nettigo – Dzień 5 – Składanie

Dziś wpis dla tych, którzy kupili moduł przekaźnika i chcieliby go poskładać.

W zestawie dostajesz:

  1. Płytkę drukowaną (to żółte)
  2. Przekaźnik (ten biały klocek)
  3. Złącze zaciskowe na 3 przewody (to niebieskie z 3 dziurkami)
  4. Złącze zaciskowe na 2 przewody (to niebieskie z 2 dziurkami)
  5. Rezystor 10 k Ohm (prosty element z kolorową obudową oznaczony kolorami – brązowy, czarny, czarny, czerwony, brązowy)
  6. Rezystor 220 Ohm (prosty element oznaczony kolorami – czerwony, czerwony, czarny, czarny, brązowy)
  7. Diodę krzemową (podobne do rezystora, tylko czarne z jedną szarą kreską)
  8. LED (czerwony element z 2 nierównymi nóżkami)
  9. Tranzystor (czarny element z 3 wyprowadzeniami)

Pozwoliłem sobie narysować małą ściągę, która będzie pomocna przy składaniu płytki.

Jeśli nie jesteś pewny oznaczeń rezystorów, możesz ich wartość zmierzyć za pomocą multimetru.

Do lutowania przydały mi się następujące narzędzia:

  • Lutownica (nagrzewa się i roztapia cynę. Trzeba wiedzieć za który koniec łapać. Łapanie za zły koniec może się źle skończyć).
  • Cyna (spoiwo lutownicze do trwałego łączenia elementów z płytką na gorąco)
  • “Trzecia ręka” (zestaw szczypczyków z lupą połączonych razem) – do wygodnego podtrzymywania płytki, żeby skupić się na lutowaniu.

Gdy zgromadzisz już to wszystko, pora zabrać się do pracy.
Ja zaczynam od lutowania najniższych elementów – diody D1 i rezystorów.

Wyginam im nóżki w ten sposób by pasowały w miejsce otworów na płytce.

Elementy umieszczam na płytce w ten sposób.

  • Diodę krzemową w miejsce D1 – musisz uważać by pasek na diodzie był w tym samym miejscu co oznaczenie paska na płytce. Na zdjęciu pasek skierowany jest w górę do zewnątrz płytki.
  • Rezystor 10 kOhm w miejsce R1
  • Rezystor 220 Ohm w miejsce R2

Od dolnej strony płytki, w miejscu lutowania rozginam nóżki elementów do zewnątrz, by elementy nie wypadały i nie przesuwały się podczas lutowania.

Teraz chwila prawdy.

Do punktu lutowniczego dotykam rozgrzaną lutownicą. Z drugiej strony do grotu lutownicy (zaostrzonej końcówki), możliwie blisko ostrza dotykam cyną – tak by spływała i wypełniała punkt lutowniczy.

Cyny nie może być za mało bo powstają nietrwałe zimne luty. Nie może jej być też za dużo, bo powstaje brzydki bąbel, który może powodować zwarcia z innymi elementami.

Nie powinieneś też przykładać lutownicy zbyt długo do końcówki lutowniczej. Element, który lutujesz może się zbytnio rozgrzać i uszkodzić. Lepiej zachować odrobinę cierpliwości i gdy lutowanie nie wychodzi odczekać chwilę aż element ostygnie.

Po wlutowaniu, odstające nóżki przewodów obcinam nad punktami lutowniczymi. Można do tego użyć specjalnych szczypiec. Ja używam starych obcinaczek do paznokci #cebula.

Kolejne elementy, które wlutowałem to dioda LED i tranzystor.

Tranzystor umieściłem w miejscu T1. Trzeba go włożyć tak, by ścięta strona jego obudowy była w tym samym kierunku co jej wizerunek nadrukowany na płytce.

LED wkładasz tak, by krótsza noga katody wchodziła w otwór przy krawędzi płytki, a dłuższa anody, wchodziła od środka płytki.

Kolejnym elementem do zamontowania są zaciski przewodów.

Mogą one łatwo wypadać, dlatego warto przytrzymać je jednym z zacisków “trzeciej rączki”.

Teraz brakuje nam tylko jednego, najważniejszego i największego elementu – przekaźnika.

Bardzo łatwo go włożyć, bo pasuje tylko w jedną stronę do płytki.

Przekaźnik też warto przytrzymać zaciskiem “trzeciej rączki”. Uważaj by przylegał równo do płytki na całej powierzchni.

Tak wyglądają moje luty. Nie są idealne. Na usprawiedliwienie powiem, że pierwszy raz pracowałem z nową lutownicą ;-).

To moje urządzenie po zmontowaniu. Prezentuje się bardzo ładnie i jest niezwykle małe. Jestem z niego dumny!

Kolejna chwila prawdy – czy zadziała?!

Moduł przekaźnika podłączyłem do Arduino wg schematu z dnia 2. Szybko napisałem program, który włącza i wyłącza przekaźnik co sekunda, żeby sprawdzić czy wszystko działa.
Pełna satysfakcja – przekaźnik przyjemnie pstryka, a LED mruga.

Teraz w nagrodę można zjeść te legendarne cukierki, które przychodzą w paczkach z Nettigo.

Jeśli jesteś odważny podziel się z nami zdjęciem, jak wyszło lutowanie twojego przekaźnika w komentarzach. 

Udanego składania życzy
sprae

5 Dni z przekaźnikiem Nettigo – Dzień 4 – Arduino Yun

Arduino YUN to płytka oparta na standardzie Arduino UNO. Zatem cały schemat połączeń przekaźnika jest identyczny z tym zaprezentowanym w dniu 2.

Arduino YUN to więcej niż zwykłe Arduino, dlatego postanowiłem poświecić mu jeden z dni z przekaźnikiem.

YUN, oprócz standardowego kontrolera AVR, ma w sobie dodatkowy komputer z Linuksem na bazie procesora MIPS. Komputer ten może łączyć się z internetem poprzez port Wi-Fi lub złącze Ethernet. Za pośrednictwem specjalnych bibliotek, mały kontroler Arduino łączy się z Linuksem i odbiera różne dane.

Najpopularniejszym sposobem odbierania danych jest protokół REST. Chodzi w nim o to, że komunikujesz się z Arduino za pomocą adresów WWW, a on odsyła informacje do przeglądarki.

Służy do tego biblioteka YunServer i YunClient. Elementy tej biblioteki czytają fragment linku wysłanego do Arduino i wysyłają to co ma się pojawić w przeglądarce.

Wykorzystując te biblioteki napisałem program, który steruje przekaźnikami podłączonymi do YUN do pinów cyfrowych 2, 3, za pośrednictwem linków.

#include <YunServer.h>
#include <YunClient.h>

YunServer server;

// Piny do których podłaczone są przekaźniki 2 i 3
byte relayPins[] = {2, 3};

void setup()
{
  server.listenOnLocalhost();
  server.begin();

  // Ustawianie pinów przekaźników jako wyjście
  for (byte i=0; i<sizeof(relayPins); i++)
  {
    pinMode(relayPins[i], OUTPUT);
  }
}

void loop()
{
  YunClient client = server.accept();
  if (client)
  {
    // Jeśli ktoś wywołał adres to włącza funkcje obsługi przekażnika
    relayHandle(client);

    client.stop();
  }

  delay(50);
}

void relayHandle(YunClient client)
{
  // Odczytywaie numeru przekanika
  byte index = client.parseInt();
  byte mode;
  
  // Reakcja na błędny numer przekaźnika
  if (index == 0 || index >= (sizeof(relayPins)))
  {
    client.println(F("Error!"));
  }

  // Sprawdzanie czy chcesz odczytać stan czy zapisać
  if (client.read() == '/')
  {
    // Zapis stanu
    byte mode = client.parseInt();
    digitalWrite(relayPins[index-1], mode);
  }

  else
  {
    // Odczyt stanu
    mode = digitalRead(relayPins[index-1]);
  }

  // Wyłanie wyników pracy przekaźników
  client.print(F("Relay: "));
  client.print(index);
  if (mode == 0)
  {
    client.println(F(" Off"));
  }

  else
  {
    client.println(F(" On"));
  }
}

Program działa tak, że wpisując do przeglądarki:

http://myArduinoYun.local/arduino/1/1

Zostanie włączony pierwszy przekaźnik podłączony do pinu 2. W przeglądarce pojawi się napis:

Relay: 1 On

Wpisując:

http://myArduinoYun.local/arduino/1/0

Ten przekaźnik zostanie wyłączony, a w przeglądarce pojawi się napis:

Relay: 1 Off

Zapewne już zauważyłeś, że pierwsza cyfra adresu odpowiada za numer przekaźnika, a druga za jego stan – 0 wyłączony, 1 włączony.

Idąc za ciosem, gdy wpiszesz:

http://myArduinoYun.local/arduino/2/1

włączysz drugi przekanik, podłączony do pinu 3.

W programie jest zmienna globalna

// Piny do których podłaczone są przekaźniki 2 i 3
byte relayPins[] = {2, 3};

do której nawiasów klamrowych {} możesz dopisać numery kolejnych pinów do których są podłączone przekaźniki, rozdzielając je przecinkiem.

Program działa dość prosto. W funkcji loop, sprawdzane jest czy program odebrał link. Jeśli tak to obiekt client jest czymś podobnym do obiektu Serial. To co się z niego odbiera to tekst adresu, który odebrało Arduino (cały napis znajdujący się za “http://myArduinoYun.local/arduino/”). U nas odbieramy “{numer}/{numer}”.

To co się wysyła do obiektu client, zostanie odebrane przez przeglądarkę i wyświetlone przez nią. Wysyłać można standardowo np. poprzez client.println(“Napis”);.

Metoda client.stop(); kończy połączenie z przeglądarką.

W programie jest jeszcze jedna opcja. Wpisując adres:

http://myArduinoYun.local/arduino/1

Otrzymasz tylko informację czy przekaźnik nr 1 jest włączony czy nie.

Dzięki Arduino Yun i modułowi przekaźnika Nettigo możesz sterować urządzeniami za pomocą przeglądarki WWW. Tradycyjnie używając linków na stronie, albo wykorzystując Ajax w JavaScript.

sprae

5 Dni z przekaźnikiem Nettigo – Dzień 3 – Raspberry PI

Hej. Dziś o podłączaniu modułu przekaźnika Nettigo do Raspberry PI.

Podłączenie tu również jest bardzo proste. Wszystko podłączamy do złącza GPIO Raspberry.

  • Sygnał Vcc przekaźnika podłączyłem do wyjścia 5V Rasbperry
  • Sygnał GND podłączyłem do pinu GND w Raspberry
  • Sygnał IN przekaźnika podłączyłem do wybranego piu GPIO. W moim przypadku jest to sygnał GPIO 18.

W Raspberry PI mamy możliwość programowania w wielu językach. Każdy, kto zetknął się z programowaniem, będzie mógł wybrać coś dla siebie.

Pierwszy przykład zademonstruje w domyślnym języku programowania maliny – Pythonie.

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)

GPIO.setup(18, GPIO.OUT)

while True:
	GPIO.output(18, GPIO.HIGH)
	time.sleep(10)
	GPIO.output(18, GPIO.LOW)
	time.sleep(10)

Program włącza i wyłącza urządzenie podłączone do przekaźnika co 10 sekund. Moduł przekaźnika jest podłączony do pinu GPIO 18.

Na początku programu jest tradycyjne importowanie bibliotek używanych w skrypcie. Do sterowania pinami użyłem biblioteki RPi, która jest domyślnie zainstalowana w dystrybucji Raspbian.

Funkcja GPIO.setup(18, GPIO.OUT) ustawia pin GPIO 18 jako wyjście.

Funkcja GPIO.output(18, GPIO.HIGH) ustawia pin GPIO 18 w stan wysoki, co powoduje włączenie przekaźnika i włączenie urządzenia podłączonego do niego.

Funkcja GPIO.output(18, GPIO.LOW) ustawia pin GPIO 18 w stan niski. To powoduje wyłączenie przekaźnika i zarazem urządzenia do niego podłączonego.

Python to język bogaty w przeróżne biblioteki. Jeśli go znasz, możesz bez trudu rozwinąć ten program o sterowanie przekaźnikami przez sieć za pomocą modułu socket. Możesz stworzyć stronę internetową, którą będziesz mógł sterować urządzeniami za pomocą modułów Flask lub frameworka Django. Co tylko wymyślisz.

Większość entuzjastów Linuksa i administratorów lubuje się bardziej w komendach terminala Bash. Dla nich też znalazło się rozwiązanie do sterowania przekaźnikiem.

echo "18" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio18/direction

Te 2 polecenia ustawiają pin GPIO 18 jako wyjście.

echo "1" > /sys/class/gpio/gpio18/value

To polecenie ustawia wyjście GPIO 18 w stan wysoki, załączając przekaźnik.

echo "0" > /sys/class/gpio/gpio18/value

To polecenie ustawia pin GPIO 18 w stan niski, wyłączając przekaźnik i urządzenie do niego podłączone.

Podłączenie większej ilości przekaźników tak jak w przypadku Arduino nie jest problemem.

Wyprowadzenia Vcc i GND w obydwu przekaźnikach podłączyłem do tych samych pinów 5V i GND w Raspberry. Wyprowadzenia IN każdego z modułów trzeba podłączyć do innego wybranego pinu GPIO. W moim przypadku pierwszy przekaźnik podłączyłem do pinu GPIO 18, a drugi do pinu GPIO 23 w Malinie. Kolejne podłączasz do kolejnych.

Programowanie 2 przekaźników jest równie proste z tym, że Najpierw ustawiasz ich kolejne piny GPIO jako wyjścia, a potem sterujesz nimi, osobnymi poleceniami dla każdego pinu.

Przy podłączaniu większej ilości przekaźników trzeba mieć na uwadze to, że każdy z nich pobiera 53 mA prądu. Prąd dostępny w pinie 5V to prąd zasilacza Raspberry odjęć prąd, który pobiera Malina (500 mA model B i 300 mA model A).

Więcej o programowaniu pinów we wszystkich językach dostępnych na Raspberry Pi możesz się dowiedzieć z artykułu: RPi Low-level peripherals

Niedawno opisywałem też projekt Jasper, który umożliwia sterowanie Raspberry głosem. Tam też możesz dodać plugin do sterowania głosem urządzeń przez moduł przekaźnika.

Jeśli masz jakieś pytania lub wątpliwości, pisz śmiało w komentarzach. Chętnie na nie odpowiem.

sprae

5 Dni z przekaźnikiem Nettigo – Dzień 1 – Co to?

W ofercie Nettigo pojawił się moduł przekaźnika. Jest tani i kosztuje zaledwie 12 zł. Dziś opiszę po co on jest. W następnych dniach dowiesz się jak go podłączyć do różnych płytek i zaprogramować.

image

Przekaźnik to taki włącznik sterowany elektronicznie. Można go np. wpiąć zamiast włącznika twojej lampki nocnej. Z drugiej strony podłączasz twoją ulubioną płytkę – kompatybilną z Arduino albo Raspberry PI i możesz kontrolować przełącznik za pomocą programu, przez komputer lub przez internet telefonem.

image

Wyprowadzenia styków włącznika znajdują przy zaciskach J1. Gdy kontroler wysyła sygnał, to te styki są zwarte, a gdy nie wysyła to są rozwarte i podłączone urządzenie jest wyłączone.

Z drugiej strony są piny sterowania.

  • Vcc podłączasz do pinu zasilania 5V w kontrolerze
  • GND podłączasz do pinu GND w kontrolerze
  • IN podłączasz do dowolnego pinu cyfrowego lub GPIO

Sygnał IN działa tak, że gdy wyślesz mu stan LOW, to przekaźnik nie przewodzi prądu. Gdy wyślesz mu stan HIGH, przekaźnik przewodzi prąd.

Sygnał IN akceptuje poziomy stanów logicznych 5 V i 3.3 V więc wszystkie płytki oparte na AVR (Arduino UNO/LEONARDO/MEGA), jak i na ARM (Arduino DUE, Raspberry PI, Teensy) są obsługiwane.

Moduł przekaźnika wyposażony jest też w LED. Dioda świeci, gdy przekaźnik dostał sygnał i przewodzi prąd.

Moduł pobiera podczas pracy 53 mA prądu.
Jeśli zasilasz Arduino z wyjścia USB, to możesz pobrać z pinu POWER 5V mniej niż 500 mA. Czyli suma prądu pobieranego przez przekaźniki nie może przekraczać tej wartości.

500 mA / 53 mA = 9 przekaźników

Możesz podłączyć do takiego Arduino około 9 modułów.

Gdy zasilasz Arduino przez wtyk zasilacza, zasilaczem około 1 A, wtedy z pinu POWER 5V możesz pobrać około 700 mA prądu.

Gdy chcesz zastosować jeszcze więcej modułów, musisz zasilić je osobnym przewodem z zasilacza, który ma odpowiednią ilość amperów. Większą niż suma poboru prądu przez przekaźniki.

sprae