Zaloguje się
or
Tel +48 698 615 740

Moduł przekaźnika ESP-01 (ESP8266, WiFi) Sterowanie za pomocą aplikacji mobilnej

12 marca, 2022

W tym artykule dowiecie się w jaki sposób sterować przekaźnikiem wbudowanym w moduł ESP-01 za pomocą aplikacji mobilnej. Do stworzenia aplikacji wykorzystamy środowisko MIT APP Inventor.

Spis treści

  • Krótki opis
  • Niezbędne elementy
  • Kod źródłowy i konfiguracja modułu
  • Aplikacja mobilna
  • Pliki do pobrania

Krótki opis

Narzędzie programistyczne MIT APP Inventor dzięki kompatybilności z elektroniką, pozwala na stworzenie aplikacji komunikującej się z modułem ESP8266 za pomocą WiFi. Do konfiguracji modułu wykorzystamy gotowy szkic zawarty w bibliotece ESP8266WiFi, który działa w oparciu o stworzony serwer pod adresem IP odpowiadającym naszemu ESP. Na potrzeby ukazania poprawności działania układu do sterowania wykorzystamy diodę LED.

Niezbędne elementy

  • Adapter USB/UART do ESP8266.
  • dowolne źródło zasilania prądem DC w zakresie od 5 do 12 V w celu zasilania modułu ESP-01,
  • dowolne źródło zasilania 5 V DC diody ,
  • moduł Relay ESP-01,
  • moduł WiFi ESP8266,
  • dioda LED.

Schemat połączenia

Kod źródłowy i konfiguracja modułu

Aby poprawnie skonfigurować moduł ESP8266 należy zewrzeć ze sobą pin GPIO2 adaptera z masą w celu wprowadzenia go w tryb konfiguracji. Wybór odpowiednich pinów przedstawiony jest na zdjęciu poniżej.

Jeżeli piny zostały odpowiednio ze sobą zwarte, możemy przejść do wgrywania odpowiedniego programu do naszego modułu. W tym celu należy dodać nasz moduł do Arduino IDE jako osobną płytkę. Uruchamiamy środowisko Arduino, klikamy w zakładkę Plik->Preferencje. Naszym oczom ukaże się następujący widok.

W pole “Dodatkowe adresy URL do menadżera płytek” wpisujemy następujący link http://arduino.esp8266.com/stable/package_esp8266com_index.json i zatwierdzamy przyciskiem OK.

W kolejnym kroku wybieramy opcję Narzędzia->Płytka:->Menadżer płytek. Naszym oczom okaże się widok menadżera płytek.

W pole wyszukiwarki wpisujemy “ESP8266” i instalujemy odpowiednią paczkę.

Jeżeli wszystkie kroki wykonaliśmy poprawnie, to w widoku Narzędzia->Płytka: powinniśmy mieć możliwość wyboru różnych modułów z rodziny ESP8266. Wybieramy opcję Generic ESP8266 Module.

Aby wczytać przykład użyty w artykule, należy uprzednio pobrać i zainstalować bibliotekę ESP8266WiFi. Gotowy plik znajduje się na końcu artykułu. Jeżeli biblioteka została pomyślnie zainstalowana, to przechodzimy do wgrania szkicu. Wybieramy kolejno: Plik->Przykłady->ESP8266WiFi->WiFiManualWebSerwer.

Wgrany szkic wymaga kilku zmian w celu skonfigurowania modułu pod naszą sieć WiFi.

#include <ESP8266WiFi.h>
#ifndef STASSID
#define STASSID "Nazwa twojej sieci"
#define STAPSK  "haslo do sieci"
#endif
#define RELAY_PIN 0
const char* ssid = STASSID;
const char* password = STAPSK;

WiFiServer server(80);

Najistotniejszym elementem jest wpisanie przy definicji STASSID nazwy sieci WiFi do której podłączony będzie nasz telefon. Adekwatnie w polu STAPSK wpisujemy hasło do tej samej sieci. Dodatkowym elementem jest zdefiniowanie nazwy RELAY_PIN która odpowiada za wyjście GPIO0 naszego modułu, pod które podpięty jest przekaźnik. Domyślnie szkic wykorzystuje port GPIO2, który umożliwia jedynie sterowanie wbudowaną w moduł diodą.

void setup() {
  Serial.begin(115200);

  // prepare LED
  pinMode(RELAY_PIN, OUTPUT);
  digitalWrite(RELAY_PIN, 0);

W funkcji setup() ustawiamy stan pinu RELAY_PIN na wyjście oraz początkowo ustawiamy stan przekaźnika na niski. Ta linijka jest jedynie opcjonalna i może zostać usunięta.

  // Set LED according to the request
  digitalWrite(RELAY_PIN, val);

Teraz przechodzimy do dolnej części kodu gdzie wyszukujemy funkcji odpowiadającej za zmianę stanu naszego przekaźnika w zależności od naciśniętego przycisku. Zmieniamy wartość z LED_BUILTIN na RELAY_PIN.

// Match the request
  int val;
  if (req.indexOf(F("/gpio/0")) != -1) {
    val = 0;
  } else if (req.indexOf(F("/gpio/1")) != -1) {
    val = 1;
  } else {
    Serial.println(F("invalid request"));
    val = digitalRead(RELAY_PIN);
  }

Działanie programu opiera się na utworzeniu serwera o adresie IP odpowiadającemu naszemu modułowi. Każdy z przycisków tworzy wirtualne przekierowanie na stronę, a program czyta koniec jego adresu w celu zweryfikowania który przycisk został wciśnięty. I tak dla przykładu przekierowanie na stronę http://192.168.1.73/gpio/1 sprawia że program przeczyta wartość /gpio/1, co odpowiada stanowi wysokiemu diody. Sprawa przekierowania zostanie szerzej wyjaśniona w rozdziale o aplikacji mobilnej. Jeżeli poprawnie ustawiliśmy wszystkie parametry, to wpinamy moduł ESP8266 do adaptera i wgrywamy program. Podczas wgrywania szkicu uruchamiamy monitor portu szeregowego dla liczby bodów 115200 i odczytujemy wartość IP naszego modułu.

Aplikacji mobilna

Tak jak wspomniałem na początku artykułu, do napisania aplikacji wykorzystamy narzędzie MIT App Inventor. W tym celu wchodzimy na stronę https://appinventor.mit.edu/ i klikamy przycisk Create Apps!. Rejestrujemy się lub logujemy za pomocą konta google i tworzymy nowy projekt. Naszym oczom ukaże się następujący widok :

W polu user interface wybieramy button i przeciągamy na pustą przestrzeń na ekranie telefonu. Kolejnym krokiem jest dodanie z zakładki Connectivity elementu “Web“. Jeżeli wszystko wykonaliśmy poprawnie, to nasz interfejs i lista komponentów powinny przedstawiać się następująco :

Następnie przechodzimy do konfiguracji naszym przycisków. W tym celu naciskamy przycisk “Blocks” widoczny w prawym górnym rogu strony. W zakładce blocks wybieramy Button 1 i przenosimy na pustą przestrzeń pierwszy blok od góry.

Z zakładki Web wybieramy blok SET URL oraz blok JOIN z zakładki text.

W miejsce pustych pól join dodajemy dwa puste pola tekstowe w miejsce których wpisujemy kolejno nasz adres w formacie : http://’adres ip modułu esp’, a dla drugiego pola wpisujemy /gpio/1. Na końcu wybieramy funkcję GET z zakładki Web i umieszczamy ją poniżej. Gotowy blok przedstawia się następująco :

Kopiujemy blok i postępujemy adekwatnie dla przycisku realizującego włączenie przekaźnika.

Szerszy opis możliwości stylizacji i tworzenia zaawansowanych bloków znajdziecie w bogatej bazie poradników wpisując w google frazę “MIT App Inventor tutorial”. Aby uruchomić aplikację na telefonie należy pobrać ze sklepu google play aplikację o nazwie ‘MIT AI2 Companion‘. W strukturze naszego projektu klikamy w zakładkę Connect i wybieramy AI Companion. Ukaże nam się kod, który po wpisaniu w aplikacji mobilnej połączy nas z aktualnie używanym projektem.

Po stworzeniu aplikacji podpinamy nasz moduł ESP8266 do modułu przekaźnika, wpinamy odpowiednie zasilanie i układ sterowania przekaźnikiem jest gotowy. Więcej o zasilaniu przekaźnika znajdziecie w poprzednim artykule.

Pliki źródłowe

Sticky
Możliwość komentowania Moduł przekaźnika ESP-01 (ESP8266, WiFi) Sterowanie za pomocą aplikacji mobilnej została wyłączona
Mateusz Pacia

Mateusz Pacia

Skończyłem studia na politechnice Wrocławskiej na kierunku Mechatronika. Zajmuje się tworzeniem i programowaniem układów z wykorzystaniem mikrokontrolerów STM32 i Arduino. W wolnych chwilach programuje w języku PHP i Java.

Comments are closed.

Strona korzysta z plików cookies w celu realizacji usługi i zgodnie z Polityką Plików Cookies. Możesz określić warunki przechowywania lub dostępu do plików cookies w Twojej przeglądarce.