Spisu treści:

Szeregowa bramka UDP/IP dla Arduino oparta na ESP8266 Shield: 8 kroków
Szeregowa bramka UDP/IP dla Arduino oparta na ESP8266 Shield: 8 kroków

Wideo: Szeregowa bramka UDP/IP dla Arduino oparta na ESP8266 Shield: 8 kroków

Wideo: Szeregowa bramka UDP/IP dla Arduino oparta na ESP8266 Shield: 8 kroków
Wideo: BH1750 - najlepszy czujnik światła I2C plus rewelacyjna biblioteka w C dla AVR 2024, Lipiec
Anonim
Szeregowa bramka UDP/IP dla Arduino oparta na ESP8266 Shield
Szeregowa bramka UDP/IP dla Arduino oparta na ESP8266 Shield

Opublikowałem już w 2016 roku ten instruktażowy „Jak stworzyć własną bramę Wi-Fi, aby połączyć Arduino z siecią IP”. Odkąd zrobiłem kilka ulepszeń kodu i nadal korzystam z tego rozwiązania.

Niemniej jednak jest teraz kilka ekranów ESP8266, które pozwalają zrobić to samo bez lutowania, o ile nie używasz płyt Micro lub Nano.

Ta instrukcja wyjaśni, jak używać tych osłon ESP82 jako szeregowej bramy UDP/IP.

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

Więcej informacji o tarczy z tą instrukcją!

Kieszonkowe dzieci

1 Arduino Mega (najlepiej mieć co najmniej 1 Mega na rozwój i 1 Uno na fazę uruchamiania)

1 Rokoo ESP8266 ESP-12E UART WIFI konwerter

1 FTDI 3.3v

2 przewody płytki stykowej

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.

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

Przeważnie jest to czarna skrzynka, która konwertuje dane szeregowe na pakiety UDP na dwa sposoby.

Ale brama może również działać samodzielnie, wysyłając do serwera informacje wewnętrzne i odbierając z niego niektóre polecenia.

Arduino może wysyłać i odbierać wiadomości do/z serwera podłączonego przez Internet, po prostu drukując/odczytując łącze szeregowe. Nie ma potrzeby, aby deweloper Arduino zawracał sobie głowę protokołem IP.

Ponadto zapewnia GPIO, które może być używane przez Arduino do sprawdzenia, czy bramka jest prawidłowo podłączona do sieci WIFI, a bramka może automatycznie przełączać się między 2 różnymi SSID w przypadku awarii

Bramka ma 2 różne tryby pracy, które są wybierane przez ustawienie GPIO

Ustawiam GPIO na uziemienie i Gateway wchodzi w tryb konfiguracji.

Ustawiam GPIO jako wolne, a bramka przechodzi w tryb pracy bramy.

Ponadto konfiguracja Gateway UDP/IP może być zdalnie modyfikowana

Krok 3: Zbuduj materiał

Budowa materiału
Budowa materiału

Bardzo mało rzeczy jest wymaganych

1 ESP8266 Shield - znalazłem ten moduł szeregowej karty rozszerzeń WiFi UNO R3 ESP8266 za mniej niż 9 €

1 UNO, który jest docelowym celem Arduino!

1 Mega czyli narzędzie programistyczne arduino (można się bez niego obejść, ale jest to dość trudne do debugowania)

1 FTDI 3.3/5v do rozwoju

Niektóre przewody

Krok 4: Pobierz kod bramy

Pobierz kod bramy
Pobierz kod bramy

W tym kroku Arduino służy tylko do zasilania (za pomocą USB lub innego źródła zasilania) na nakładce ESP8266

Podłącz ESP8266 GPIO4 do masy (aby wejść w tryb konfiguracji)

Uważaj, aby ustawić FTDI na 3.3v zgodnie z wymaganiami tarczy

Podłącz FTDI do osłony (RX do TX)

Ustaw przełącznik tarczy na 1:wył. 2:wył. 3:wł. 4:wł.

Podłącz stronę USB FTDI do komputera

Zresetuj osłonę przyciskiem ESP-RST

Pobierz kod Gateway z GitHub

Otwórz Arduino IDE

  • Wybierz port monitora FTDI
  • Otwórz monitor szeregowy IDE - Ustaw prędkość na 38400
  • Wybierz ogólną płytkę modułu ES8266
  • Zaktualizuj oprogramowanie tarczy za pomocą kodu bramy;

Ustaw przełącznik 3: wył. 4: wył.

Otwórz monitor szeregowy IDE

Zresetuj osłonę przyciskiem ESP-RST

Na monitorze muszą być widoczne komunikaty zaczynające się od „Inicjalizacja EEPROM” „Inicjalizacja zakończona”….

Czas na konfigurację

Krok 5: Zróbmy konfigurację bramy

Podczas pobierania kodu bramy po raz pierwszy, eeprom ESP8266 zostanie zainicjowany z wartościami domyślnymi. Zobaczysz tego rodzaju komunikaty "ustaw parametr: x rozmiar: yy"

Możesz znaleźć te wartości w definicji kodu paramValue. Oczywiście możesz zmienić te domyślne wartości przed pobraniem kodu, ale możesz również ustawić konfigurację później za pomocą polecenia. Jest to lepsze, jeśli planujesz mieć wiele bramek i zachować tylko jedną wersję kodu.

Użyj portu szeregowego monitora do wysłania polecenia (ustaw na NL i CR).

Ponieważ identyfikator SSID nie jest obecnie zdefiniowany, poczekaj na „Nie można połączyć się z twojąsecondssid retry:5”

Następnie skanowanie WIFI rozpocznie się automatycznie

Czas ustawić identyfikatory SSID za pomocą następujących poleceń:

  • SSID1=Twój wybór1
  • PSW1=twójpsw1
  • SSID2=Twój wybór2
  • PSW2=twójpsw2
  • SSID=1 (aby wybrać, od którego SSID zacząć)
  • Uruchom ponownie Wifi

Po kilku sekundach możesz sprawdzić połączenie za pomocą polecenia „ShowWifi”. Musisz zobaczyć adres IP, który brama uzyskała z twojego serwera DNS. Jeśli tak, to czas iść dalej

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”

Wysyłając puste polecenie, zobaczysz wszystkie obsługiwane polecenia, których możesz później użyć, aby spełnić swoje wymagania. Wszystkie wartości parametrów są przechowywane w eepromie i należy wziąć pod uwagę ponowne uruchomienie.

Usuń przewód konfiguracyjny

Tarcza działa teraz jako brama

Krok 6: Pobierz przykład kodu Arduino

Pobierz przykład kodu Arduino
Pobierz przykład kodu Arduino

Najpierw pobierz główny kod Arduino z GitHub

Następnie pobierz kod Arduino, definicję poleceń i ten kod łącza szeregowego do swoich bibliotek

Następnie otwórz główny kod za pomocą nowego Arduino IDE

Wyłącz przełącznik osłony 1 i 2, aby zwolnić łącze szeregowe Arduino 0 dla połączenia USB

Zresetuj tarczę

Podłącz przewody FTDI do Mega Serial 2 (TX FTDI do RX Mega i tak dalej)

Uruchom nowe Arduino IDE (lub narzędzie TTY), podłącz FTDI Usb i zacznij monitorować łącze szeregowe

Prześlij kod Arduino do Mega

Włącz przełącznik osłony 1 i 2, aby podłączyć łącze szeregowe Arduino 0

Zresetuj tarczę

Musisz zobaczyć ten komunikat "rozpocznij drukowanie z usb" na monitorze

Krok 7: Zróbmy po stronie serwera

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

Po prostu uruchom i spójrz na konsolę Java i spójrz na monitor FTDI

Zobaczysz wymianę danych między serwerem a Arduino

Krok 8: Idź dalej

Iść dalej
Iść dalej
Iść dalej
Iść dalej

Ten przykładowy kod Arduino jest oparty na frameworku mojej infrastruktury automatyki domowej.

Jeśli jesteś zainteresowany tą infrastrukturą, daj mi znać. Opublikuję źródła.

Jeśli chcesz po prostu korzystać z bramki, możesz uprościć kod Arduino.

Po opracowaniu i przetestowaniu kodu na Arduino Mega, możesz go łatwo zastąpić Uno !

Ponadto możesz podłączyć przewód między Arduino GPIO 7 i ESP8266 GPIO 5, jeśli chcesz, aby Arduino sprawdziło połączenie Wifi

Zalecana: