Przewodnik dla początkujących po ESP8266 i tweetowaniu za pomocą ESP8266: 17 kroków (ze zdjęciami)
Przewodnik dla początkujących po ESP8266 i tweetowaniu za pomocą ESP8266: 17 kroków (ze zdjęciami)
Anonim
Przewodnik dla początkujących po ESP8266 i tweetowaniu za pomocą ESP8266
Przewodnik dla początkujących po ESP8266 i tweetowaniu za pomocą ESP8266

Dowiedziałem się o Arduino 2 lata temu. Zacząłem więc bawić się prostymi rzeczami, takimi jak diody LED, przyciski, silniki itp. Wtedy pomyślałem, że nie byłoby fajnie połączyć się, aby robić takie rzeczy, jak wyświetlanie dziennej pogody, cen akcji, rozkładów jazdy pociągów wyświetlacz LCD. Odkryłem, że można to zrobić, wysyłając i odbierając dane przez Internet. Więc rozwiązaniem było połączenie z internetem. Rozpoczęły się moje poszukiwania, jak podłączyć Arduino do Internetu oraz wysyłać i odbierać dane. Dowiedziałem się o modułach Wi-Fi w Internecie i stwierdziłem, że są bardzo kosztowne. Potem dowiedziałem się o ESP8266.

Mniej więcej rok temu dużo czytałem w internecie o module ESP8266 i kupiłem jeden, ale zabrałem się do pracy z nimi dopiero w zeszłym miesiącu. W tym czasie nie było dostępnych obszernych informacji. Jednak teraz jest dużo dokumentacji, filmów jest dostępnych w internecie na temat oprogramowania układowego, poleceń AT, projektów itp. Postanowiłem więc zacząć.

Napisałem tę instrukcję jako przewodnik dla początkujących, ponieważ napotkałem wiele problemów z okablowaniem i rozpoczęciem pracy z ESP8266. Postanowiłem więc napisać ten Instruktaż, aby inne osoby, które mają problemy ze swoimi modułami, mogły je szybciej rozwiązać

W tym Instruktażowym postaram się pokazać

  • Jak podłączyć ESP8266 i komunikować się z nim przez Arduino Uno.
  • Postaram się również pokazać, jak można za jego pośrednictwem przesłać tweeta za pomocą Thingspeak.

Co potrafi ESP8266? Ogranicza wyobraźnia. Widziałam w internecie projekty i tutoriale pokazujące jak sprawdzić temperaturę miasta, ceny akcji, wysyłać i odbierać e-maile, dzwonić i wiele więcej. Pokażę w ten instruktażowy, jak wysłać tweeta.

Krok 1: Rzeczy, których będziesz potrzebować

Rzeczy, których będziesz potrzebować
Rzeczy, których będziesz potrzebować

Oto rzeczy, których będziesz potrzebować. Większość z nich można kupić w dowolnym sklepie elektrycznym lub w Internecie (podałem linki w celach informacyjnych).

  • 1xESP8266(ESP-01) -ebay
  • 1xBreadboard adapter (dowiedz się, jak to zrobić tutaj lub użyj kilku przewodów połączeniowych)
  • 1xLM2596-ebay
  • 1xLogic konwerter poziomów -ebay
  • 1xArduino Uno
  • Kabel USB do Arduino Uno
  • 1xBreadboard-ebay
  • Przewody -ebay
  • IDE Arduino
  • Konto w Thingspeak

Całkowity koszt wyniesie około 600 Rs (około 9 USD). Wykluczyłem koszt Arduino Uno, ponieważ zależy to od tego, czy chcesz oryginał, czy klon. Najtańsze klony są dostępne w cenie około 500 Rs (około 4 USD).

Krok 2: Niektóre informacje na temat ESP8266

ESP8266 został wprowadzony na rynek w 2014 zaledwie rok temu, więc jest całkiem nowy. Chipy są produkowane przez firmę Espressif.

Korzyść

Największą zaletą ESP8266 jest być może jego koszt. Jest dość tani i można kupić kilka takich za jednym razem. Zanim się o tym dowiedziałem, nie mogłem nawet pomyśleć o zakupie modułu wifi. Były zbyt drogie. Nowe wersje ESP8266 są wypuszczane dość często, a najnowsza to ESP 12. Jednak w tej instrukcji skupię się tylko na ESP 01, który jest dość popularny. Co więcej, przy zakupie ESP8266 jest on fabrycznie załadowany z domyślnym oprogramowaniem układowym AT. dobrze jest zacząć, gdy tylko kupisz.. Jak zobaczysz z tego instruktażu, dość łatwo jest je połączyć.

Niekorzyść

Każde urządzenie ma swoje zalety i wady i ESP nie jest inny. ESP może czasami okazać się bardzo trudny i frustrujący w obsłudze. Ponieważ jest to całkiem nowe, trudno będzie uzyskać informacje na jego temat. Na szczęście społeczność pod adresem esp8266.com istnieje, co jest bardzo pomocne. Co więcej, czasami zaczyna również robić nieoczekiwane rzeczy, takie jak wyrzucanie śmieci przez połączenie szeregowe itp.

Zauważ, że w Internecie dostępnych jest wiele dokumentacji, a niektóre z nich są sprzeczne. Ta instrukcja nie jest inna. Podczas zabawy z moim ESP8266 odkryłem, że znacznie odbiega on od tego, co zostało wspomniane w Internecie też), ale działało dobrze.

Krok 3: Pinout ESP8266

Wyprowadzenie ESP8266
Wyprowadzenie ESP8266

ESP8266 ma 8 pinów, jak pokazano.

Gnd i Vcc należy jak zwykle podłączyć odpowiednio do masy i zasilania. ESP8266 działa na 3,3 V.

Pin RESET służy do ręcznego resetowania ESP. Zwykle powinien być podłączony do 3,3 V. Jeśli chcesz zresetować ESP, podłącz ten pin na chwilę do masy, a następnie z powrotem do 3,3 V.

CH_PD to wyłączenie chipa, które powinno być normalnie podłączone do 3,3V.

GPIO0 i GPIO2 są pinami wyjściowymi ogólnego przeznaczenia. Powinny one być normalnie podłączone do 3,3 V. Jednak podczas flashowania oprogramowania układowego podłącz GPIO0 do GND.

Piny Rx i Tx są pinami nadawczymi i odbiorczymi ESP8266. Działają na logice 3.3V, tj. 3.3V jest logiką WYSOKA dla ESP8266.

Szczegółowe połączenia znajdują się w dalszych krokach.

Krok 4: Czego należy używać do komunikacji z ESP8266?

Czego należy używać do komunikacji z ESP8266?
Czego należy używać do komunikacji z ESP8266?
Czego należy używać do komunikacji z ESP8266?
Czego należy używać do komunikacji z ESP8266?
Czego należy używać do komunikacji z ESP8266?
Czego należy używać do komunikacji z ESP8266?

Istnieje wiele urządzeń, które można wykorzystać do komunikacji z ESP8266, takich jak programatory FTDI, konwerter szeregowy USB na TTL, Arduino itp. Jednak użyłem Arduino Uno po prostu dlatego, że jest najłatwiejszy i prawie każdy go ma. masz Arduino, masz również Arduino IDE, a jego monitor szeregowy może być używany do komunikacji z ESP8266. Więc nie musisz wydawać pieniędzy na programistów FTDI itp.

Jeśli jednak chcesz lub masz już taki, możesz użyć programatora FTDI lub konwertera szeregowego USB na TTL (więcej o tym, jak je później podłączyć). Istnieje również wiele programów, takich jak RealTerm lub kit. w taki sam sposób, jak monitor szeregowy Arduino IDE.

Krok 5: Montaż ESP8266 na płytce do krojenia chleba

Montaż ESP8266 na płytce do krojenia chleba
Montaż ESP8266 na płytce do krojenia chleba
Montaż ESP8266 na płytce do krojenia chleba
Montaż ESP8266 na płytce do krojenia chleba

Zauważ, że piny ESP8266 nie są przyjazne dla płytki stykowej. Można to przezwyciężyć na 2 sposoby.

Użyj żeńskich i męskich przewodów połączeniowych, które mogą powodować bałagan lub

Zrób, jak pokazano w tej instrukcji lub

Użyj płyty adaptera, zrób ją sam (jest ich wiele na Instruktażach), która jest zgrabna.

Krok 6: Zasilanie

Zasilacz
Zasilacz

ESP8266 działa na zasilaniu 3,3 V. Nie podłączaj go do pinu 5 V na Arduino. Prawdopodobnie spali się.

Niektóre samouczki sugerowały wykonanie obwodu dzielnika napięcia za pomocą rezystorów 1k, 2k z 5V jako wejście i uzyskanie 3,3V na rezystorze 2k i dostarczenie go do Arduino. Jednak okazało się, że ESP nawet się nie włączyło, kiedy to zrobiłem.

Byłem w stanie zasilić go za pomocą 3,3 V na Arduino, ale stwierdziłem, że po pewnym czasie ESP nagrzewa się.

Możesz użyć regulatora napięcia 3,3V.

Lub możesz użyć konwertera obniżającego napięcie LM2596 dc-dc. Są one dość tanie. I użyłem ich. Podaj 5 V z Arduino na wejście. Dostosuj potencjometr na module, aż wyjście osiągnie 3,3 VI, że można zasilać ESP od jednego z nich na godziny. Wykonaj połączenia jak pokazano na rysunku.

Krok 7: Konwersja poziomu logicznego

Konwersja poziomu logicznego
Konwersja poziomu logicznego

Wspomniano, że ESP ma logikę 3.3V, podczas gdy Arduino ma logikę 5V.

Oznacza to, że w ESP 3,3V jest logiczne WYSOKIE, natomiast w Arduino 5V jest logiczne WYSOKIE. Może to powodować pewne problemy podczas łączenia ich ze sobą.

Odkryłem w Internecie, że podczas łączenia ESP Rx i Tx z Arduino należy zastosować konwersję poziomu logicznego.

W niektórych samouczkach wspomniano, że podczas łączenia pinów ESP Rx potrzebna jest konwersja poziomu logicznego.

Zauważyłem jednak, że zwykłe podłączenie pinów ESP Rx i Tx do Arduino nie powodowało żadnych problemów

Połączyłem Rx i Tx przez konwerter poziomów logicznych, a także sam Rx, ale nie uzyskałem żadnej odpowiedzi.

Zauważyłem jednak, że podłączenie pinu ESP Tx przez konwerter poziomów logicznych podczas bezpośredniego podłączania Tx również nie powodowało żadnych problemów

Tak więc konwerter poziomów logicznych może lub nie może być używany.

Użyj dowolnej metody, która działa dla Ciebie metodą prób i błędów.

Krok 8: Połączenia

Znajomości
Znajomości

Połączenia ESP8266 to:

ESP8266

Gnd ------------------- Gnd

GPIO2 --------------- 3,3 V

GPIO0 --------------- 3,3 V

Rx -------------------- Rx Arduino

Tx --------------------- Tx Arduino (bezpośredni lub przez konwerter poziomów logicznych)

CH_PD -------------- 3,3 V

RESET -------------- 3,3 V

Vcc------------------- 3.3 V

(Należy pamiętać, że w niektórych wersjach ESP Rx należy podłączyć do Arduino Tx, a ESP Tx należy podłączyć do Arduino Rx).

Jeśli używasz programatora FTDI lub konwertera szeregowego USB na TTL, podłącz odpowiednio ich Tx i Rx do Rx i Tx ESP8266.

Krok 9: Pierwsze kroki

Po wykonaniu połączeń wgraj

pusta konfiguracja()

{}

pusta pętla()

{}

czyli pusty szkic do Arduino..

Otwórz monitor szeregowy i ustaw go na „Zarówno NL, jak i CR”.

Poeksperymentuj z szybkością transmisji. Zwykle powinna ona wynosić 9600, choć czasami może to być 115200.

Krok 10: Polecenia AT

Polecenia AT
Polecenia AT

Mówiąc najprościej, komendy AT to komendy, które można wysłać do ESP8266, aby umożliwić mu wykonanie niektórych funkcji, takich jak restart, połączenie z wifi itp. ESP w odpowiedzi wyśle potwierdzenie w postaci tekstu. Poniżej wyjaśniłem niektóre Polecenia AT i sposób, w jaki ESP na nie reaguje. Zauważ, że przez wysyłanie mam na myśli wpisanie polecenia i naciśnięcie enter (powrót).

Wyślij AT przez monitor szeregowy

To polecenie jest używane jako polecenie testowe.

Jak ESP odpowiada: OK należy zwrócić.

Wyślij AT+RST przez monitor szeregowy

To polecenie służy do ponownego uruchomienia modułu.

Jak odpowiada ESP: ESP zwraca ładunek śmieci. Jednak poszukaj Ready lub ready.

Wyślij AT+GMR przez monitor szeregowy

Polecenie to służy do określenia wersji oprogramowania modułu.

Jak odpowiada ESP: Należy zwrócić wersję oprogramowania.

Oprogramowanie układowe to oprogramowanie, które jest instalowane na urządzeniu zwykle w jego pamięci ROM (pamięć tylko do odczytu), tj. nie powinno być często zmieniane lub wcale. Zapewnia kontrolę i manipulację danymi urządzenia. ESP8266 ma numer różnych oprogramowania układowego, z których wszystkie są dość łatwe do flashowania (instalowania).

Krok 11: Ogólna składnia poleceń AT

Podana jest ogólna składnia poleceń AT do wykonywania różnych funkcji:

AT+parametr=?

Gdy polecenie tego typu jest wysyłane przez monitor szeregowy, ESP zwraca wszystkie wartości, jakie może przyjąć parametr.

AT+parametr=wartość

Gdy polecenie tego typu jest wysyłane przez monitor szeregowy, ESP ustawia wartość parametru na val.

AT+parametr?

Gdy polecenie tego typu jest wysyłane przez monitor szeregowy, ESP zwraca bieżącą wartość parametru.

Niektóre polecenia AT mogą przyjmować tylko jeden z powyższych typów, podczas gdy niektóre mogą przyjmować wszystkie 3.

Przykładem polecenia, które jest możliwe we wszystkich powyższych 3 typach, jest CWMODE, które służy do ustawienia trybu Wi-Fi.

Wyślij AT+CWMODE=? przez monitor szeregowy

Jak ESP odpowiada: Wszystkie wartości, które może przyjąć ESP CWMODE (1-3), są zwracane konkretnie +CWMODE (1-3).

1=Statyczny

2=AP

3=Zarówno statyczne, jak i AP

Wyślij AT+CWMODE=1 przez monitor szeregowy

W jaki sposób ESP odpowiada: OK powinno zostać zwrócone, jeśli nastąpiła zmiana w CWMODE w stosunku do jego poprzedniej wartości i jest ustawiona na statyczną, w przeciwnym razie żadna zmiana nie powinna zostać zwrócona, jeśli nie ma zmiany w CWMODE.

WAŻNE: Dopóki CWMODE nie jest ustawione na 1, polecenia w późniejszych krokach nie będą działać.

Wysłać AT+CWMODE? przez monitor szeregowy

Jak odpowiada ESP: Powinna zostać zwrócona bieżąca wartość CWMODE, szczególnie jeśli wykonałeś powyższy krok, powinien zostać zwrócony +CWMODE:1.

Krok 12: Łączenie się z Wi-Fi

Wyślij AT + CWLAP przez monitor szeregowy

To polecenie służy do wylistowania wszystkich sieci w okolicy.

Jak odpowiada ESP: Należy zwrócić listę wszystkich dostępnych punktów dostępowych lub sieci Wi-Fi.

Wyślij AT+CWJAP="SSID", "hasło"

(w tym podwójne cudzysłowy).

To polecenie służy do przyłączenia się do sieci Wi-Fi.

Jak odpowiada ESP: OK powinno zostać zwrócone, jeśli moduł został podłączony do sieci.

Wysłać AT+CWJAP? przez monitor szeregowy

To polecenie służy do określenia sieci, do której aktualnie podłączony jest ESP.

Jak odpowiada ESP:Zwrócona zostanie sieć, do której podłączony jest ESP. W szczególności +CWJAP:"SSID"

Wyślij AT + CWQAP przez monitor szeregowy

To polecenie służy do odłączania się od sieci, do której aktualnie podłączony jest ESP.

Jak odpowiada ESP: ESP opuszcza sieć, do której jest podłączony i zwracane jest OK.

Wyślij AT + CIFSR przez monitor szeregowy

To polecenie służy do określenia adresu IP ESP.

Jak odpowiada ESP: Zwracany jest adres IP ESP.

Krok 13: Mowa rzeczy

Rzeczypeak
Rzeczypeak
Rzeczypeak
Rzeczypeak
Rzeczypeak
Rzeczypeak
Rzeczypeak
Rzeczypeak

Jeśli jeszcze nie założyłeś konta na Thingspeak, załóż je teraz.

Po założeniu konta na Thingspeak przejdź do Apps>ThingTweet.

Połącz z nim swoje konto na Twitterze.

Zanotuj wygenerowany klucz API.

Tutaj, po użyciu aplikacji ThingTweet do połączenia konta Twitter z kontem ThingSpeak, możesz wysłać tweeta za pomocą interfejsu API TweetContol.

API (interfejs programu aplikacji) to kod, który pozwala dwóm programom komunikować się ze sobą.

Niektóre inne interfejsy API dostępne dla programistów to Google Maps API, Open Weather API itp.

Dopiero po skonfigurowaniu ESP, sprawdzeniu i podłączeniu do wifi (w zasadzie wszystkie kroki podane w poprzednich 2 krokach) przejdź przez kroki podane poniżej

Krok 14: Więcej poleceń AT

Wyślij AT + CIPMODE = 0, przez monitor szeregowy

Jak odpowiada ESP: Zwracane jest OK.

Polecenie CIPMODE służy do ustawiania trybu przesyłania.

0=tryb normalny

1=tryb przekazywania UART-WiFi

Wyślij AT + CIPMUX = 1 przez monitor szeregowy

Jak odpowiada ESP: Zwracane jest OK.

Polecenie CIPMUX służy do ustawiania jednego lub wielu połączeń.

0=pojedyncze połączenie

1=wielokrotne połączenie

Krok 15: Konfiguracja połączenia TCP

Konfiguracja połączenia TCP
Konfiguracja połączenia TCP
Konfiguracja połączenia TCP
Konfiguracja połączenia TCP

Pamiętaj, że począwszy od pierwszego polecenia, jak tylko wyślesz pierwsze, połączenie zostanie nawiązane tylko przez ograniczony czas. Dlatego wyślij polecenia tak szybko, jak to możliwe.

Wyślij AT+CIPSTART=0, „TCP”, „api.thingspeak.com”, 80 przez monitor szeregowy

Jak odpowiada ESP: Linked jest zwracany, jeśli połączenie zostało nawiązane.

To polecenie służy do ustanowienia połączenia TCP.

Składnia to AT+CIPSTART=ID łącza, typ, zdalny adres IP, zdalny port

gdzie

link ID=ID połączenia sieciowego (0~4), używane dla wielu połączeń.

typ=ciąg, "TCP" lub "UDP".

remote IP=ciąg, zdalny adres IP (adres strony internetowej).

port zdalny=ciąg, numer portu zdalnego (zwykle ustawiony na 80).

Wyślij AT + CIPSEND = 0, 110 przez monitor szeregowy

Jak odpowiada ESP:> (większe niż) jest zwracane, jeśli polecenie się powiedzie.

To polecenie służy do wysyłania danych.

Składnia to AT+CIPSEND=ID łącza, długość

gdzie

link ID=ID połączenia (0~4), dla wielu połączeń. Ponieważ CIPMUX został ustawiony na 1, wynosi 1.

length=długość danych, MAX 2048 bajtów. Zazwyczaj jako długość należy wybrać dużą liczbę.

Krok 16: Wysyłanie tweeta

Wysyłanie tweeta
Wysyłanie tweeta

Teraz do wysłania tweeta

Wyślij GET /apps/thingtweet/1/statuses/update?api_key=yourAPI&status=yourtweet przez monitor szeregowy.

Zastąp swojeAPI kluczem API, a tweet dowolnym tweetem, który chcesz.

Jak tylko wyślesz powyższą komendę zacznij naciskać enter(return) w odstępach około 1 sekundy. Po pewnym czasie zwrócone zostaną SEND OK, +IPD, 0, 1:1 i OK, co oznacza, że tweet został opublikowany.

Otwórz swój twitter i sprawdź, czy tweet został opublikowany, czy nie.

Należy również pamiętać, że ten sam tweet nie może być wysyłany wielokrotnie.

Powyższy ciąg, który został wysłany (GET….), jest żądaniem HTTP GET.

Żądanie GET służy do pobierania danych z podanego serwera (api.thingspeak.com).

Krok 17: Co zrobić po tym?

(Obejrzyj film w co najmniej 360p)

Przejdź do tego repozytorium, aby pobrać kod i schematy. Kliknij przycisk „Klonuj lub Pobierz” (zielony po prawej stronie) i wybierz „Pobierz ZIP”, aby pobrać plik zip. Teraz wyodrębnij zawartość na komputerze, aby pobrać kod i schematy (w folderze schematics). Przesłałem również ściągawkę, która podsumowuje wszystkie polecenia AT, do tego repozytorium.

Istnieje wiele świetnych zasobów dostępnych w Internecie dotyczących ESP8266. Niektóre z nich wymieniłem tutaj:

  • Filmy Kevina Darraha.
  • WSZYSTKIE filmy oEE.
  • esp8266.com

Możesz także więcej eksperymentować z poleceniami AT. W Internecie dostępnych jest wiele interfejsów API, które mogą wykonywać różne rzeczy, takie jak sprawdzanie pogody, ceny akcji itp.

Pełna dokumentacja poleceń AT

Ponadto pracuję obecnie nad programem, który automatycznie tweetuje wartości analogowe czujnika i opublikuję go, gdy będzie działał poprawnie.

Jeśli spodobał Ci się mój instruktażowy głos na to w konkursie Arduino na wszystkie rzeczy.