W poniższym projekcie autor zaprezentował, jak połączyć dwa moduły Arduino z pomoc komunikacji radiowej (bezprzewodowej). Autor wykorzystuje w poniższym projekcie umiejętności zdobyte podczas jego poprzednich projektów, aby skonstruować bezprzewodową stację meteorologiczną opartą o moduł RF433 do bezprzewodowej transmisji informacji, które następnie wyświetlane są na LCD podłączonym z pomocą interfejsu I²C.
Krok 1: lista potrzebnych elementów
Oto czego potrzebujemy do złożenia układu:
Dwa Moduły Arduino, autor wykorzystał jeden moduł UNO i jeden NANO
Dwie płytki stykowej
Parę modułów nadawczo-odbiorcych RF433
Sensor temperatury LM35
LCD z interfejsem szeregowym I²C
Kabelki do połączenia wszystkiego w całość
Moduły RF433 wykorzystane w tym projekcie idealnie nadają się do opisywanych zastosowań. Moduł nadawczo-odbiorczy ma około 14 metrów zasięgu bez anteny i nawet do 31 m, jeśli podłączymy do obu modułów w systemie anteny w postaci 17,4 cm przewodu. Oczywiście to tylko liczby z karty katalogowej i realne osiągi mogą się od tego różnić, w zależności od napięcia zasilania, temperatury i przeszkód terenowych po drodze. No ale ta czy inaczej, to bardzo dobry układ, ja za jednego dolara...
Krok 2: podłączenie termometru LM35 i transmitera RF
Do tej części układu autor wybrał moduł Arduino UNO z uwagi na możliwość podpięci do niego zewnętrznego źródła zasilania. Najpierw do wyprowadzeń VCC i GND podłączamy płytkę stykową. Na płytce stykowej umieszczamy układ LM35 i podłączamy jego odpowiednie piny do zasilania (patrz zdjęcie powyżej). Środkowy pin układu podłączamy do wejścia A0 w Arduino.
Następnie na płytce umieszczamy moduł RF433-TX, umieszczając go tak, aby jego piny DATA VCC i GND były ustawione w kierunku modułu Arduino. Zasilanie podłączamy do GND i VCC, a pin DATA łączymy z 12 cyfrowym pinem Arduino.
Krok 3: Sketch nadajnika
Kodowanie w projekcie rozpoczynamy od załadowania biblioteki VirtualWire, która posłuży nam do oprogramowania komunikacji pomiędzy modułami RF433.
Następnie definiujemy kilka zmiennych;
Następnie znajduje się funkcja setup, w której definiujemy podłączenie danych z modułu TX i ustawiamy prędkość transmisji na 2000 bps:
W funkcji loop znajduje się główna pętla programu. Odczytuje on temperaturę z sensora, przechowuje jej wartość w przygotowanej ku temu zmiennej i konwertuje wartość do stopni Celsjusza mnożąc przez 0,48828125
Następnie zmieniamy wartość z typu float na macierz znaków, którą wyślemy do odbiornika:
kompletny kod programu nadajnika i biblioteka VirtualWire pobrać można z poniższych linków:
http://www.instructables.com/files/orig/FMO/G20M/IFD6KIDP/FMOG20MIFD6KIDP.ino
http://www.instructables.com/files/orig/FD7/L29W/IFD6KIE6/FD7L29WIFD6KIE6.zip
Krok 4: Połączenie Arduino NANO, odbiornika i LCD z interfejsem I²C
Teraz zajmujemy się podłączeniem do Arduino NANO odbiornika sygnału radiowego i wyświetlacza LCD. Podłączamy NANO do płytki stykowej, na niej umieszczamy moduł odbiorczy RF433. Podłączamy go do zasilania, a pin DATA do 12 pinu cyfrowego Arduino. Następnie podobnie robimy z LCD z interfejsem szeregowym - podłączamy zasilanie, a piny SDA i SCL wyświetlacza podpinamy do, odpowiednio, 4 i 5 pinu Arduino.
Krok 5: Oprogramowanie odbiornika
W tym programie dzieje się trochę więcej. Pisanie zaczynamy od załadowania bibliotek:
Następnie definiujemy kilka stałych i zmiennych i inicjalizujemy LCD:
W funkcji setup onfigurujemy LCD, załączamy podświetlenie i stawiamy pin odczytu danych radiowych na 12 pin Arduino. Konfigurujemy też radio, ustawiając prędkość odczytu na 2000 bps i rozpoczynamy nasłuchiwanie.
W głównej pętli programu sprawdzamy czy nie otrzymaliśmy transmisji z nadajnika i jeśli tak się stanie, na wyświetlacz LCD przesyłamy "The temp is:" w pierwszej linijce i temperatura odebrana z nadajnika w drugiej
Program pobrać można także tutaj: http://www.instructables.com/files/orig/FAG/SN8C/IFD6KRAN/FAGSN8CIFD6KRAN.ino
Źródło: http://www.instructables.com/id/Arduino-weather-station-with-RF433-MHz-modules/?ALLSTEPS
Krok 1: lista potrzebnych elementów
Oto czego potrzebujemy do złożenia układu:
Dwa Moduły Arduino, autor wykorzystał jeden moduł UNO i jeden NANO
Dwie płytki stykowej
Parę modułów nadawczo-odbiorcych RF433
Sensor temperatury LM35
LCD z interfejsem szeregowym I²C
Kabelki do połączenia wszystkiego w całość
Moduły RF433 wykorzystane w tym projekcie idealnie nadają się do opisywanych zastosowań. Moduł nadawczo-odbiorczy ma około 14 metrów zasięgu bez anteny i nawet do 31 m, jeśli podłączymy do obu modułów w systemie anteny w postaci 17,4 cm przewodu. Oczywiście to tylko liczby z karty katalogowej i realne osiągi mogą się od tego różnić, w zależności od napięcia zasilania, temperatury i przeszkód terenowych po drodze. No ale ta czy inaczej, to bardzo dobry układ, ja za jednego dolara...
Krok 2: podłączenie termometru LM35 i transmitera RF
Do tej części układu autor wybrał moduł Arduino UNO z uwagi na możliwość podpięci do niego zewnętrznego źródła zasilania. Najpierw do wyprowadzeń VCC i GND podłączamy płytkę stykową. Na płytce stykowej umieszczamy układ LM35 i podłączamy jego odpowiednie piny do zasilania (patrz zdjęcie powyżej). Środkowy pin układu podłączamy do wejścia A0 w Arduino.
Następnie na płytce umieszczamy moduł RF433-TX, umieszczając go tak, aby jego piny DATA VCC i GND były ustawione w kierunku modułu Arduino. Zasilanie podłączamy do GND i VCC, a pin DATA łączymy z 12 cyfrowym pinem Arduino.
Krok 3: Sketch nadajnika
Kodowanie w projekcie rozpoczynamy od załadowania biblioteki VirtualWire, która posłuży nam do oprogramowania komunikacji pomiędzy modułami RF433.
Kod: C / C++
Następnie definiujemy kilka zmiennych;
Kod: C / C++
Następnie znajduje się funkcja setup, w której definiujemy podłączenie danych z modułu TX i ustawiamy prędkość transmisji na 2000 bps:
Kod: C / C++
W funkcji loop znajduje się główna pętla programu. Odczytuje on temperaturę z sensora, przechowuje jej wartość w przygotowanej ku temu zmiennej i konwertuje wartość do stopni Celsjusza mnożąc przez 0,48828125
Kod: C / C++
Następnie zmieniamy wartość z typu float na macierz znaków, którą wyślemy do odbiornika:
Kod: C / C++
kompletny kod programu nadajnika i biblioteka VirtualWire pobrać można z poniższych linków:
http://www.instructables.com/files/orig/FMO/G20M/IFD6KIDP/FMOG20MIFD6KIDP.ino
http://www.instructables.com/files/orig/FD7/L29W/IFD6KIE6/FD7L29WIFD6KIE6.zip
Krok 4: Połączenie Arduino NANO, odbiornika i LCD z interfejsem I²C
Teraz zajmujemy się podłączeniem do Arduino NANO odbiornika sygnału radiowego i wyświetlacza LCD. Podłączamy NANO do płytki stykowej, na niej umieszczamy moduł odbiorczy RF433. Podłączamy go do zasilania, a pin DATA do 12 pinu cyfrowego Arduino. Następnie podobnie robimy z LCD z interfejsem szeregowym - podłączamy zasilanie, a piny SDA i SCL wyświetlacza podpinamy do, odpowiednio, 4 i 5 pinu Arduino.
Krok 5: Oprogramowanie odbiornika
W tym programie dzieje się trochę więcej. Pisanie zaczynamy od załadowania bibliotek:
Kod: C / C++
Następnie definiujemy kilka stałych i zmiennych i inicjalizujemy LCD:
Kod: C / C++
W funkcji setup onfigurujemy LCD, załączamy podświetlenie i stawiamy pin odczytu danych radiowych na 12 pin Arduino. Konfigurujemy też radio, ustawiając prędkość odczytu na 2000 bps i rozpoczynamy nasłuchiwanie.
Kod: C / C++
W głównej pętli programu sprawdzamy czy nie otrzymaliśmy transmisji z nadajnika i jeśli tak się stanie, na wyświetlacz LCD przesyłamy "The temp is:" w pierwszej linijce i temperatura odebrana z nadajnika w drugiej
Kod: C / C++
Program pobrać można także tutaj: http://www.instructables.com/files/orig/FAG/SN8C/IFD6KRAN/FAGSN8CIFD6KRAN.ino
Źródło: http://www.instructables.com/id/Arduino-weather-station-with-RF433-MHz-modules/?ALLSTEPS
Fajne? Ranking DIY
