Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Ten przewodnik pozwala uzyskać dowolne dane z ESP8266 i kontrolować je przez Pythona bez poleceń AT.
Dla początkujących większość poradników na temat korzystania z ESP8266 jest trudna, ponieważ chcą, abyś sflashował „AT COMMANDS” do chipa, czyli:
- Niepotrzebne
- Marnowanie pamięci ESP
- Daje ograniczoną kontrolę
- Trudne i wymagające
- I nie nadaje się do wszystkich modułów ESP8266
Dlatego stworzyłem bardzo prosty system komunikacji mDNS, który jest sterowany tylko 3 prostymi funkcjami. Daje również pełną kontrolę.
Krok 1: Teoria
Nasz esp łączy się z naszym Wi-Fi i tworzy serwer localhost i zaczyna czekać na żądanie. Za każdym razem, gdy nasz python wysyła żądanie do tego hosta lokalnego, esp uruchamia żądany kod, a następnie zwraca wynik jako żądanie http. Wreszcie python odczytuje zwrócone dane jako żądanie http i pobiera z nich te zmienne. Dzięki temu esp może zwracać łańcuchy, dane i tablice. Kod Pythona zrozumie ich typ danych.
Krok 2: Przygotowanie wymaganych bibliotek
Przede wszystkim należy pobrać bibliotekę kart ESP8266 do arduino ide. Jeśli nie wiesz jak, oto przewodnik.
Następnie musisz pobrać moją mikrobibliotekę stąd.
Po pobraniu w folderze biblioteki znajduje się plik o nazwie "ESP_MICRO.h", skopiuj go do folderu kodowania bieżącego projektu arduino. Tak, nie kopiuj go do bibliotek arduino, jest to mikrobiblioteka, więc skopiujesz ją do folderu bieżącego projektu arduino.
Więc teraz nasze wymagania są spełnione. Możemy zacząć go kodować.
Krok 3: Pisanie prostego kodu żądania
Kiedy otworzysz swój project.ino, zobaczysz dwie zakładki w arduino ide. Jeden to Twój projekt, a drugi to "ESP_MICRO.h" nasza mikrobiblioteka.
Teraz masz te 5 funkcji w ESP_MICRO.h w twoim głównym kodzie (funkcje są wyjaśnione w pierwszych wierszach ESP_MICRO.h)
Oto prosty kod zwiększający zmienną.
Kod Arduino:
/* F5 TEST DLA ESP2PY
* Napisane przez Junicchi * https://github.com/KebabLord/esp_to_python * Po prostu zwiększa i zwraca zmienną za każdym razem, gdy pojawia się żądanie Pythona */ #include "ESP_MICRO.h" // Dołącz mikrobibliotekę int testvariable = 0; void setup(){ Serial.begin(9600); // Uruchamiam port szeregowy w celu wyświetlenia szczegółów start("NAZWA UŻYTKOWNIKA", "HASŁO"); // EnAIt połączy się z twoim Wi-Fi z podanymi szczegółami } void loop(){ waitUntilNewReq(); //Czeka, aż nadejdzie nowe żądanie z pythona /* zwiększa indeks, gdy nadejdzie nowe żądanie*/ testvariable += 1; returnThisInt(zmienna testowa); //Zwraca dane do Pythona }
Krok 4: Przesyłanie
Programowanie Nodemcu ESP8266 to po prostu podłączenie usb i wgranie szkicu z arduino.
Ale programowanie ESP8266-1 jest trudniejsze, są dwie metody ich programowania
Programowanie ESP przez arduino
Jeśli jesteś w porządku ze zworami, możesz go zaprogramować przez arduino z tym układem. Ale na dłuższą metę to ból. Proponuję więc inną metodę.
Programowanie za pomocą programatora ESP
To znacznie prostsze i szybsze. To tylko 1 dolar, kup jeden i użyj programatora usb.
Nauka adresu IP ESP
Podczas wczytywania kodu otwórz port szeregowy, zobaczysz szczegóły, które zostaną wydrukowane po zakończeniu przesyłania. Poznaj adres IP esp i zanotuj to. Pamiętaj, adres IP ESP na lokalnym; zmienia się przez Wi-Fi na Wi-Fi, a nie z sesji na sesję, więc gdy zamkniesz i otworzysz później, nie zostanie to zmienione.
Krok 5: Czytanie i Python
W esp_to_python/bibliotece znajduje się "EXAMPLE_PYTHON_READER.py"
edytuj go, zmień piątą linię z adresem IP modułu esp, który wydrukował na porcie szeregowym i uruchom skrypt python. W tym projekcie użyłem Pythona do wysyłania i odczytywania żądań. Ale możesz także przeglądać surowe dane za pomocą przeglądarki podczas wklejania adresu IP ESP w przeglądarce. Możesz też złożyć aplikację, aby ją przeczytać, lub możesz nawet użyć innego języka. Sterowanie modułem przez pythona jest również wyjaśnione w projekcie "ledControl" w folderze example.
Krok 6: Finalizacja
Wszystkie funkcje i kody są wyjaśnione w ESP_MICRO.h oraz w pliku README.md.
Jeśli ten projekt Ci pomógł, możesz rozpocząć oryginalny projekt na github.