Poznaj Arduino Killer ESP8266

  • William Charles
  • 20
  • 5958
  • 1179
Reklama

Wi-Fi jest niezbędnym zestawem do każdego projektu DIY w Internecie rzeczy, ale nasze ulubione Arduino nie jest wyposażone w Wi-Fi, a dodanie osłony Wi-Fi może przynieść całkowity koszt około 40 USD. Co jeśli powiem ci, że jest płyta deweloperska kompatybilna z Arduino z wbudowanym Wi-Fi za mniej niż 10 USD? Cóż, jest.

Poznaj Arduino Killer: ESP8266. To tylko kwestia czasu, zanim korona zostanie skradziona z błyszczącej głowy naszej drogiej planszy rozwojowej Arduino. Czy można zakochać się w płytce drukowanej??

Pomijając chwytliwe nazwy, ESP8266 (znany również jako NodeMCU) był pierwotnie sprzedawany jako tani dodatek Wi-Fi do płyt Arduino, dopóki społeczność hakerów nie zdała sobie sprawy, że możesz całkowicie usunąć Arduino z równania.

W ciągu niecałego roku ESP8266 zyskał na popularności, a teraz jest tak dobrze obsługiwany i rozwijany, że jeśli obecnie używasz Arduino, musisz wstać i zwrócić uwagę. Kup teraz, a następnie postępuj zgodnie z tym przewodnikiem, aby rozpocząć programowanie ESP8266 - wszystko z poziomu znanego Arduino IDE.

Oczywiście nie jesteś ograniczony do używania Arduino IDE - są one również kompatybilne z Luą (która dla moich nowicjuszy wygląda jak wyszczuplony Python), ale ponieważ radzimy sobie z tym z perspektywy tych, którzy nauczyli się na Arduino, to omówimy wyłącznie dzisiaj.

W okolicy jest już sporo modeli ESP8266, ale zamierzam polecić ten: ESP-12E (znany również jako NodeMCU 1.0 lub jego najnowszy brat NodeMCU 2.0).

Jest nieco droższy od innych (6,50 USD w porównaniu do 4 USD!), Ale zawiera sterownik szeregowy potrzebny do zaprogramowania układu i ma wbudowany regulator mocy, a także wiele pinów IO. Jest szeroko obsługiwany i naprawdę nie potrzebuje niczego oprócz połączenia USB do programowania lub zasilania, więc jest najłatwiejszy w obsłudze. Jeśli kupisz inny rodzaj płytki ESP8266, możesz potrzebować osobnego regulatora mocy 3,3 V i odpowiedniego połączenia FTDI do programowania.

Rozpoczęcie pracy z ESP8266-12E i Arduino

Najpierw zainstaluj sterowniki szeregowe dla tej płyty. Może być konieczne wyłączenie podpisywania KEXT, jeśli używasz El Capitan z powodu nowych systemów bezpieczeństwa.

Następnie musimy włączyć obsługę ESP8266 z poziomu menedżera zarządu Arduino IDE. Otwórz Preferencje i wpisz następujący adres URL, pod którym jest napisane Dodatkowe adresy URL menedżera zarządu:

Naciśnij Ok, a następnie otwórz Menedżer zarządów z Narzędzia -> Tablica menu, wyszukaj esp8266 i zainstaluj platformę. Teraz powinieneś zobaczyć wybór dla NodeMCU 1.0.

Pozostaw procesor i szybkość wysyłania bez zmian, a następnie wybierz nowo zainstalowany port szeregowy. W systemie Mac wygląda to jak cu.SLAB_USBtoUART.

Jako pierwszy program sugeruję prosty skaner Wi-Fi - znajdź go Plik -> Przykłady -> ESP8266WiFi -> WifiScan. Pamiętaj, że przesyłanie jest dość powolne, ale ostatecznie powie “zakończone przesyłanie” i w tym momencie (nie wcześniej, albo przerwiesz proces przesyłania), możesz otworzyć monitor szeregowy. Powinieneś zobaczyć coś podobnego do tego:


Powodzenie! Teraz spróbujmy połączyć się z jednym.

Oto absolutnie prosty kod barebone do łączenia się z siecią Wi-Fi. Nie robi nic poza połączeniem, ale można to dodać później. Pamiętaj tylko, aby zmienić YOUR_SSID i YOUR_PASSWORD na swoje dane Wi-Fi. Prześlij, otwórz konsolę szeregową i powinieneś zobaczyć, jak się łączy.

 #include const char * ssid = "YOUR_SSID"; const char * hasło = "YOUR_PASSWORD"; WiFiClient wifiClient; void setup () Serial.begin (115200); Serial.print („Łączenie z”); Serial.println (ssid); WiFi.begin (ssid, hasło); while (WiFi.status ()! = WL_CONNECTED) delay (500); Serial.print („.”);  Serial.println (""); Serial.println („WiFi połączone”); Serial.println („Adres IP:”); Serial.println (WiFi.localIP ());  void loop () 

Czy to nie wspaniale, jakie to było absurdalnie proste?

Zanim przejdziemy dalej, oto schemat pinoutów - może się przydać później. Zauważ, że numery pinów, o których mowa w kodzie, to numery GPIO, a nie D0-16 prawdopodobnie zapisane na płytce drukowanej. Jeśli absolutnie, pozytywnie nie możesz zrozumieć, dlaczego czujnik nie działa, prawdopodobnie pomieszałeś numery pinów.

Szybki inteligentny czujnik domowy z MQTT i DHT11

Oto praktyczny przykład, który możesz od razu wykorzystać do monitorowania domu. Dodamy czujnik temperatury i wilgotności DHT11, a następnie raportujemy wartości za pomocą protokołu MQTT przez sieć Wi-Fi, w moim przypadku do systemu automatyki domowej OpenHAB DIY (jeśli nie, możesz przeczytać nasz przewodnik dla początkujących) uruchomienie OpenHAB na Raspberry Pi Rozpoczęcie pracy z OpenHAB Home Automation na Raspberry Pi Rozpoczęcie pracy z OpenHAB Home Automation na Raspberry Pi OpenHAB to dojrzała platforma automatyki domowej typu open source, która działa na różnych urządzeniach i jest niezależna od protokołu, co oznacza może łączyć się z prawie każdym sprzętem automatyki domowej na rynku. oraz częścią 2, która dotyczy w szczególności instalacji serwera MQTT Przewodnik dla początkujących OpenHAB Część 2: ZWave, MQTT, Zasady i tworzenie wykresów Przewodnik dla początkujących OpenHAB Część 2: ZWave, MQTT, Reguły i wykresy OpenHAB, oprogramowanie do automatyki domowej o otwartym kodzie źródłowym, znacznie przewyższa możliwości innych systemów automatyki domowej na rynku - ale konfiguracja nie jest łatwa. być wręcz frustrującym. ).

Po stronie okablowania podłącz czujnik DHT do GND, 3.3v, i ~ D4 (lub GPIO 2). Na razie to wszystko, czego potrzebujemy.

Pobierz te biblioteki MQTT i DHT. Nawet jeśli już je masz, mimo to pobierz je, zrób kopie zapasowe posiadanych plików i zastąp je. Najnowsza biblioteka DHT11 firmy Adafruit wykorzystuje automatyczny algorytm do określania prędkości odczytu danych z czujnika, ale jest błędny w ESP8266, a 90% czasu powoduje nieudane odczyty.

W starej wersji 1.0 biblioteki, którą dołączyłem do pobrania, możesz ręcznie zmienić czas: 11 działa najlepiej dla tych kart ESP2866. Przejrzałem także wiele kopii biblioteki MQTT, próbując znaleźć dobry oddzwonić funkcja, wreszcie lądowanie na tym dołączonym. Po ich zastąpieniu musisz ponownie uruchomić Arduino IDE.

Oto pełny kod projektu. U góry znajdują się wszystkie zmienne, które należy zmienić, w tym szczegóły Wi-Fi, serwer MQTT (zamiast tego można użyć adresu URL, jeśli używasz serwera w chmurze, chociaż nie ma uwierzytelnienia) oraz kanały, na których można publikować dane.

Oto jak to działa i kilka notatek:

  • Najpierw łączymy się z Wi-Fi, następnie z serwerem MQTT, a następnie zaczynamy od głównego pętla().
  • W pętli sondujemy czujnik DHT co 60 sekund i publikujemy odczyty do odpowiednich kanałów MQTT. Ponownie, jeśli okaże się, że większość odczytów powoduje komunikat o błędzie, masz niewłaściwą wersję biblioteki DHT - przejdź na wersję 1.0.
  • client.loop () przekazuje kontrolę do biblioteki MQTT, pozwalając jej reagować na przychodzące wiadomości.
  • Jest wiadomość otrzymana() funkcja, w której obsługujemy wiadomości przychodzące - po prostu wykonaj prostą instrukcję if, aby porównać ładunek z oczekiwaną wiadomością. Możesz użyć tego na przykład do aktywacji przekaźnika.
  • Po uruchomieniu ich przez kilka dni okazało się, że losowo przestałyby działać - zakładam, że jest to pewien wyciek pamięci, ale biorąc pod uwagę, że nie mam umiejętności kodowania, aby sobie z tym poradzić i może to dotyczyć bibliotek podstawowych, ja wybrałem prosty, miękki reset każdego dnia. Dokładnie dzień po aktywacji węzłów czujników same się zrestartują.
  • Podczas zasilania tych tanich modułów DHT11 z 3,3 V wartości wilgotności są znacznie niższe niż powinny. Rozwiązałem to za pomocą prostego pomnożenia i skalibrowałem względem komercyjnego czujnika. Radzę ci potwierdzić również w oparciu o twoje znane źródło, zanim zaczniesz polegać na odczytach. Alternatywnie, zasil je 5V - ale musisz umieścić przełącznik poziomu logicznego 5v-3.3v między pinem danych a ESP8266, w przeciwnym razie go uszkodzisz.

Jeśli wszystko poszło dobrze, powinieneś teraz otrzymywać odczyty czujników w brokerze MQTT i możesz połączyć je z OpenHAB, jak opisano szczegółowo w części 2 naszego przewodnika dla początkujących Przewodnik dla początkujących OpenHAB Część 2: ZWave, MQTT, zasady i tworzenie wykresów dla początkujących OpenHAB Część 2 przewodnika: ZWave, MQTT, reguły i wykresy OpenHAB, oprogramowanie do automatyzacji domu o otwartym kodzie źródłowym, znacznie przewyższa możliwości innych systemów automatyki domowej na rynku - ale konfiguracja nie jest łatwa. W rzeczywistości może być wręcz frustrujące. , gdzie pokazałem ci również, jak sporządzać wykresy danych.

Żegnaj Arduino, tak bardzo cię kochaliśmy. Żartuję: nie wszędzie w moim domu można nawet korzystać z Wi-Fi, więc do tych miejsc nadal potrzebuję sieci kratowej z odbiornikami Arduino i RF.

Aby uzyskać fajny projekt, sprawdź, jak zrobić przycisk Wi-Fi za pomocą ESP8266 Jak zrobić własny przycisk Wi-Fi połączony z ESP8266 Jak zrobić własny przycisk Wi-Fi połączony z ESP8266 W tym samouczku nauczysz się jak utworzyć przycisk z obsługą Wi-Fi za pomocą NodeMCU i IFTTT. .

Ale co zrobisz z ESP8266? Jakieś projekty wykorzystujące ESP8266, które chciałbyś zobaczyć w MakeUseOf? Daj nam znać w komentarzach!




Abrtviexy ([email protected])
20.03.22 06:45
<a href="https://t.me/filmfilmfilmes/22">Главный герой</a>
Abrtviexy ([email protected])
20.03.22 04:31
<a href="https://t.me/filmfilmfilmes/2">Вечер с Владимиром Соловьевым</a>
Abrtviexy ([email protected])
20.03.22 02:18
<a href="https://t.me/filmfilmfilmes/15">Аквамен</a>
Abrtviexy ([email protected])
20.03.22 00:06
<a href="https://t.me/filmfilmfilmes/15">Аквамен</a>
Abrtviexy ([email protected])
19.03.22 21:55
<a href="https://t.me/filmfilmfilmes/9">Филомена</a>
O nowoczesnej technologii, prostej i niedrogiej.
Twój przewodnik w świecie nowoczesnych technologii. Dowiedz się, jak korzystać z technologii i gadżetów, które nas otaczają każdego dnia i dowiedz się, jak odkrywać ciekawe rzeczy w Internecie.