Spisu treści:

Jak zrobić własną bramkę WIFI, aby podłączyć Arduino do sieci IP?: 11 kroków (ze zdjęciami)
Jak zrobić własną bramkę WIFI, aby podłączyć Arduino do sieci IP?: 11 kroków (ze zdjęciami)

Wideo: Jak zrobić własną bramkę WIFI, aby podłączyć Arduino do sieci IP?: 11 kroków (ze zdjęciami)

Wideo: Jak zrobić własną bramkę WIFI, aby podłączyć Arduino do sieci IP?: 11 kroków (ze zdjęciami)
Wideo: ILU POLICJANTÓW POTRZEBA ABY OBEZWŁADNIĆ OJCA BEZ SPRZĘTU 2024, Lipiec
Anonim
Jak zrobić własną bramę WIFI, aby podłączyć Arduino do sieci IP?
Jak zrobić własną bramę WIFI, aby podłączyć Arduino do sieci IP?

Jak wiele osób uważa, że Arduino jest bardzo dobrym rozwiązaniem do robienia automatyki domowej i robotyki

Ale jeśli chodzi o komunikację, Arduino są po prostu wyposażone w łącza szeregowe.

Pracuję nad robotem, który musi być na stałe połączony z serwerem obsługującym kod sztucznej inteligencji. Próbowałem użyć sieci RF, tak jak to robię w przypadku domotyki, ale nie jest ona wystarczająco wydajna. Ponieważ robot się porusza, nie mogę korzystać z nakładki Ethernet Arduino Shield. Arduino Wifi Shield są drogie i wydaje mi się starą konstrukcją.

Potrzebowałem czegoś, co może w bardzo prosty i wydajny sposób wymieniać dane z serwerem.

Dlatego zdecydowałem się zaprojektować Gateway w oparciu o bardzo tani i energooszczędny mikrokontroler ESP8266

Tutaj dowiesz się, jak zbudować komponent elektroniczny i pobrać oprogramowanie.

Użyłem tej bramy do automatyki domowej i do Robotic.

Jest to część globalnej infrastruktury automatyki domowej, którą możesz zajrzeć tutaj

Zrobiłem kolejną instrukcję, która używa tarczy ESP8266 i unika lutowania

Kieszonkowe dzieci

Napisałem inną instrukcję na ten temat

Krok 1: Jak to działa?

Jak to działa ?
Jak to działa ?

Gateway oparty jest na module ESP8266

Moduł ten jest połączony z jednej strony łączem szeregowym z drugiej strony do sieci IP z Wifi.

Działa jak czarna skrzynka. Pakiety danych przychodzące z łącza szeregowego są wysyłane do portu IP/Udp i odwrotnie.

Wystarczy ustawić własną konfigurację (IP, WIFI…) przy pierwszym włączeniu Gateway.

Może przesyłać zarówno surowe dane ASCII, jak i dane binarne (bez HTTP, JSON…)

Przeznaczony jest do łączenia obiektów z oprogramowaniem serwerowym domowej roboty, które wymagają szybkiego i częstego przesyłania krótkich pakietów danych.

Najłatwiej jest go używać z Arduino Mega, które mają więcej niż jeden UART (na przykład Arduino Mega), ale może działać również z UNO.

Krok 2: Jakie są główne funkcje?

Przeważnie jest to czarna skrzynka, która konwertuje i wysyła dane szeregowe do pakietu UDP w obie strony.

Posiada 3 diody LED, które wskazują stan i ruch bramki.

Zapewnia GPIO, które może być używane przez Arduino do oczekiwania na połączenie bramy WIFI i IP.

Działa w 3 różnych trybach ustawianych za pomocą przełączników:

  • Tryb bramy, który jest trybem normalnym
  • Tryb konfiguracji używany do ustawiania parametrów
  • Tryb debugowania, który służy do debugowania

Większość parametrów można dostosować do własnych potrzeb.

Krok 3: Zbuduj materiał

Budowa materiału
Budowa materiału

Oprócz Arduino będziesz potrzebować

  • 1 x moduł ESP8266 - wybieram MOD-WIFI-ESP8266-DEV firmy Olimex za około 5 euro, który jest dość łatwy w obsłudze.
  • Źródło zasilania 1x5 v
  • 1 x regulator mocy 3.3v - używam LM1086
  • 1x100 mikrofaradów kondensator
  • 1 x moduł ULN2803 APG (można zastąpić 3 x tranzystorami)
  • 8 x rezystory (3 x 1K, 1 x 2K, 1 x 2,7k, 1x 3,3K, 1x 27K, 1x 33k)
  • 3 x LED (czerwony, zielony, niebieski)
  • 1 x płytka do krojenia chleba;
  • niektóre przewody i złącza

Tylko podczas etapów budowania będziesz potrzebować

  • 1 x FTDI 3.3 v do konfiguracji
  • Lutownica i cyna

Przed lutowaniem ważne jest, aby ustawić wszystkie elementy na płytce stykowej i sprawdzić, czy wszystko jest w porządku.

Krok 4: Zacznijmy od elektroniki na tablicy do krojenia chleba

Zacznijmy od elektroniki na tabliczce do krojenia chleba!
Zacznijmy od elektroniki na tabliczce do krojenia chleba!

Układ elektroniczny jest dostępny w formacie Fritzing

Możesz go pobrać tutaj krok 1:

github.com/cuillerj/Esp8266IPSerialGateway/blob/master/GatewayElectronicStep1.fzz

Po prostu zrób tak, jak schemat, dbając o napięcie.

Pamiętaj, że ESP8266 nie obsługuje napięcia wyższego niż 3,3v. FTDI musi być ustawione na 3,3v.

Krok 5: Przejdźmy do oprogramowania

Przejdźmy do oprogramowania!
Przejdźmy do oprogramowania!

Zacznijmy od strony Gateway

Kod napisałem przy pomocy Arduino IDE. Potrzebujesz więc ESP8266, aby był znany jako płyta przez IDE. Wybierz odpowiednią tablicę z menu Narzędzia / Tablice.

Jeśli nie widzisz żadnego ESP266 na liście, oznacza to, że być może będziesz musiał zainstalować ESP8266 Arduino Addon (tutaj znajdziesz procedurę).

Cały potrzebny kod jest dostępny na GitHub. Czas go pobrać!

Znajduje się tam główny kod bramy:

Oprócz standardowego Arduino i ESP8266 zawiera główny kod, który wymaga tych dwóch: LookFoString, który służy do manipulowania ciągami i jest dostępny:

ManageParamEeprom, który służy do odczytu i przechowywania parametrów w Eeprom i jest tam:

Gdy już uzyskasz cały kod, nadszedł czas, aby wgrać go do ESP8266. Najpierw podłącz FTDI do portu USB komputera.

Proponuję sprawdzić połączenie przed próbą wgrania.

  • Ustaw monitor szeregowy Arduino na nowy port USB.
  • Ustaw prędkość na 115200 zarówno cr nl (domyślna prędkość dla Olimex)
  • Włącz płytkę stykową (ESP8266 jest dostarczany z oprogramowaniem obsługującym polecenia AT)
  • Wyślij „AT” za pomocą narzędzia szeregowego.
  • Musisz w zamian otrzymać „OK”.

Jeśli nie, sprawdź połączenie i spójrz na specyfikacje ESP8266.

Jeśli masz "OK", jesteś gotowy do przesłania kodu

  • Wyłącz płytkę stykową, poczekaj kilka sekund,
  • naciśnij czarny mikro-przełącznik ESP8266. To normalne, że na monitorze szeregowym pojawiają się śmieci.
  • Naciśnij na upload IDE jak dla Arduino.
  • Po zakończeniu przesyłania ustaw prędkość szeregową na 38400.

Zobaczysz coś jak na zdjęciu.

Gratulujemy pomyślnego przesłania kodu!

Krok 6: Zróbmy konfigurację

Zróbmy konfigurację!
Zróbmy konfigurację!

configGPIO musi być ustawione na 1, aby wejść w tryb konfiguracji

Najpierw przeskanuj WIFI wpisując polecenie: ScanWifi. Zobaczysz listę wykrytych sieci.

  • Następnie ustaw swój identyfikator SSID, wpisując „SSID1=twoja sieć”
  • Następnie ustaw hasło, wpisując „PSW1=twoje hasło”
  • Następnie wpisz „SSID=1”, aby zdefiniować bieżącą sieć
  • Wpisz „Uruchom ponownie”, aby połączyć bramkę z siecią WIFI.
  • Możesz sprawdzić, czy masz adres IP, wpisując „ShowWifi”.
  • Niebieska dioda LED będzie się świecić, a czerwona dioda LED będzie migać.

Czas zdefiniować swój adres IP serwera, wpisując 4 podadresy (serwer, który będzie uruchamiał kod testowy Java). Na przykład:

  • "IP1=192"
  • "IP2=168"
  • „IP3=1”
  • „IP4=10”

Ostatnim wymaganym krokiem jest ustawienie portu nasłuchiwania serwera UDP poprzez wpisanie „listenPort=xxxx”.

Wpisz „ShowEeprom”, aby sprawdzić, co właśnie zapisałeś w Eeprom

Teraz podłącz GPIO2 do masy, aby wyjść z trybu konfiguracji

Twoja bramka jest gotowa do pracy

Istnieje kilka innych poleceń, które można znaleźć w dokumentacji.

Krok 7: Zróbmy stronę Arduino

Zróbmy stronę Arduino!
Zróbmy stronę Arduino!
Zróbmy stronę Arduino!
Zróbmy stronę Arduino!

Najpierw podłącz Arduino

Jeśli masz Mega, najłatwiej będzie zacząć. Niemniej jednak możesz użyć Uno.

Aby sprawdzić swoją pracę najlepiej posłużyć się przykładem.

Możesz go tam pobrać:

Zawiera kod SerialNetwork, który znajduje się tutaj:

Po prostu prześlij kod do swojego Arduino.

Zielona dioda LED miga za każdym razem, gdy Arduino wysyła dane.

Krok 8: Zróbmy po stronie serwera

Zróbmy po stronie serwera!
Zróbmy po stronie serwera!
Zróbmy po stronie serwera!
Zróbmy po stronie serwera!

Przykładem serwera jest program Java, który można pobrać tutaj:

Po prostu go uruchom

Spójrz na konsolę Java.

Spójrz na monitor Arduino.

Arduino wysyła 2 różne pakiety.

  • Pierwsza zawiera stan pinów cyfrowych od 2 do 6.
  • Druga zawiera 2 losowe wartości, poziom napięcia A0 w mV oraz przyrostową liczbę.

Program Java

  • wydrukuj otrzymane dane w formacie szesnastkowym
  • odpowiedź na pierwszy rodzaj danych losową wartością włączania/wyłączania, aby włączyć/wyłączyć diodę Arduino;
  • odpowiedz na drugi rodzaj danych otrzymaną liczbą i wartością losową.

Krok 9: Czas na lutowanie

Czas na lutowanie!
Czas na lutowanie!
Czas na lutowanie!
Czas na lutowanie!
Czas na lutowanie!
Czas na lutowanie!

Działa na płytce stykowej!

Nadszedł czas, aby uczynić go bardziej wytrzymałym, lutując części na płytce drukowanej

Oprócz tego, co zrobiłeś z płytką stykową, musisz dodać 3 złącza.

  • C1 1 x pin, który będzie używany do wejścia w tryb śledzenia sieci.
  • C2 3 x piny jeden, który będzie używany do przełączania między trybem pracy a konfiguracją.
  • C3 6 x piny jeden, który będzie używany do podłączenia bramki do Arduino lub FTDI.

C1 podłączony do GPIO2 musi być ręcznie uziemiony, jeśli chcesz aktywować śledzenie sieci.

C2 podłączony do GPIO 4 można ustawić w 2 różnych pozycjach. Jeden ustawiony na uziemienie w normalnym trybie pracy i jeden ustawiony na 3,3 V do wejścia w tryb konfiguracji.

Ustaw wszystkie elementy na płytce zgodnie ze schematem, a następnie zacznij lutować, aby uzyskać finalny produkt!

Krok 10: Zróbmy test końcowy

Image
Image

Uruchom program testowy Java.

Podłącz Arduino.

Włącz bramę.

Spójrz na konsolę Java, monitor Arduino, diodę Arduino i diody Gateway.

Krok 11: Możesz dostosować ten projekt do własnych wymagań

Jeśli chodzi o sprzęt

  • Jeśli wybierzesz inny ESP8266 będziesz musiał dostosować się do specyfikacji.
  • Jeśli wybierzesz inny regulator 3.3v, musi on dostarczać ponad 500mA i będziesz musiał dostosować kondensator.
  • Możesz modyfikować rezystory LED, aby dostosować jasność.
  • Możesz zgasić wszystkie diody LED, ale zalecam, aby przynajmniej czerwona była włączona.
  • Możesz wymienić ULN2803 na 3 tranzystory (lub mniej, jeśli zdecydujesz się nie trzymać 3 LED).
  • Testowałem, ale musi działać z płytami Arduino 3.3v. Wystarczy podłączyć Tx Rx do złącza 3.3v.

Odnośnie konfiguracji

  • Możesz przechowywać 2 różne SSID i przełącznik
  • Możesz zmodyfikować używane GPIO

Jeśli chodzi o oprogramowanie

Zalecana: