Spisu treści:
- Krok 1: Części
- Krok 2: Montaż sprzętu
- Krok 3: Okablowanie
- Krok 4: Instalacja MicroPythona
- Krok 5: Konfiguracja sieci
- Krok 6: Zainstaluj główny program
- Krok 7: Przyszłe ulepszenia
Wideo: MicroPython IoT Rover oparty na WEMOS D1 (ESP-8266EX): 7 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
** Aktualizacja: zamieściłem nowy filmik na v2 z lancą **
Prowadzę warsztaty z robotyki dla małych dzieci i zawsze szukam ekonomicznych platform do budowania intrygujących projektów. Chociaż klony Arduino są tanie, używają języka C / C ++, którego dzieci nie znają. Ponadto nie ma wbudowanego Wi-Fi, co jest koniecznością w projektach IoT. Z drugiej strony, chociaż Raspberry Pi ma WIFI, a dzieci mogą go programować za pomocą Pythona, nadal jest to droga platforma do sterowania kilkoma portami GPIO w celu włączania i wyłączania urządzeń. Potrzebuję czegoś pomiędzy, które ma zarówno możliwości WIFI, jak i Pythona. Wygląda na to, że znalazłem swoją odpowiedź w MicroPythonie, która błysnęła na taniej płytce opartej na ESP8266.
Co to jest Micropython?
Według jego strony internetowej MicroPython to oszczędna i wydajna implementacja języków programowania Python 3, która zawiera mały podzbiór standardowej biblioteki Python i jest zoptymalizowana do działania na mikrokontrolerach i w ograniczonym środowisku (takim jak ESP8266). Jest to zasadniczo IDE Pythona na chipie. Jedną z głównych korzyści jest to, że możesz tworzyć kod i zmieniać go w locie za pomocą klienta przeglądarki internetowej o nazwie Webrepl. (Spróbuj to zrobić w Arduino.) Możesz również zobaczyć dane z czujników w czasie rzeczywistym na Webrepl, zamiast polegać na logowaniu danych lub ekranie LED w Arduino.
Co to jest ESP8266?
Krótko mówiąc, pomyśl o tym jako o Arduino z wbudowaną obsługą sieci. Możesz użyć Arduino IDE do zaprogramowania płyt ESP8266 w C/C++ lub możesz je sflashować za pomocą NodeMCU lub MicroPython. W tym projekcie będę flashować MicroPython na płycie ESP8266.
Zdecydowałem się na WEMOS D1, który jest oparty na ESP8266-12EX do tego prostego projektu, w którym będę nawigować samochodem 2WD za pomocą przeglądarki internetowej. Istnieją inne płyty przeznaczone dla MicroPythona, ale chciałem coś taniego, co mógłbym wyrzucić, gdyby nie spełniało moich kryteriów. Zgodnie z oczekiwaniami spełnił wszystkie moje wymagania i najprawdopodobniej będę włączał WeMos i Micropython do przyszłych projektów.
Krok 1: Części
- Wemos D1 lub dowolne płyty oparte na ESP8266
- Osłona silnika (używam taniego L293D z AliExpress)
- Uchwyty na baterie 4 x AA i 9 V (4 x AA do silników i 9 V do płyty Wemos)
- Podwozie samochodu 2WD
- Kable dupontowe
Może potrzebować lutownicy, śrubokręta i pistoletu do klejenia, aby wszystko złożyć.
Krok 2: Montaż sprzętu
Najpierw zmontuj podwozie zgodnie z instrukcją.
Następnie przyklej na gorąco pozostałe elementy, jak pokazano.
Przewody silnika należy przylutować do zacisków silnika i użyć gorącego kleju do wzmocnienia połączeń zacisków.
Przymocowano mały przełącznik do uchwytu baterii 4AA. Spowoduje to włączenie/wyłączenie zasilania osłony silnika.
Krok 3: Okablowanie
Postępuj zgodnie z moim schematem połączeń, jak pokazano.
Wemos do osłony silnika:
D1 IN2
D2 IN1 D3 IN4 **pomiń D4 D5 IN3 GND -> GND
Osłona silnika do silnika/mocy:
Zacisk -> Lewy silnik
Zacisk B -> Prawy silnik VCC -> Akumulator (+) GND -> Akumulator (-)
Krok 4: Instalacja MicroPythona
Po pierwsze, Wemos ma układ szeregowy/USB oparty na CH304G. Jest to ten sam układ, który można znaleźć w tanich klonach Arduino i musisz zainstalować odpowiedni sterownik dla komputerów Mac lub PC. Postępuj zgodnie z instrukcjami w tej witrynie, aby zainstalować sterownik.
Podłącz Wemos do komputera i potwierdź, że Twój komputer może wykryć Wemos. Na Macu uruchom następujące polecenie, a zobaczysz urządzenie o nazwie /dev/tty.wchusbserial640.
$ ls -lt /dev/tty* | głowa
crw-rw-rw- 1 root wheel 17, 4 marca 2 23:31 /dev/tty.wchusbserial640
Jeśli korzystasz z komputera, możesz użyć tej instrukcji jako odniesienia.
Następnie musisz skonfigurować Python 2 lub 3 na swoim komputerze, ponieważ narzędzie flash, esptool.py, jest oparte na Pythonie. Chociaż przewodnik MicroPython może stwierdzać, że narzędzie działa tylko z Pythonem 2.7, udało mi się uruchomić go w Pythonie 3 bez żadnych problemów. Pobierz najnowszą wersję Pythona z https://www.python.org i postępuj zgodnie z instrukcjami instalacji na komputerze PC lub Mac.
Na koniec musisz zainstalować MicroPython na Wemos. Witryna MicroPython zawiera doskonały samouczek dotyczący konfiguracji MicroPythona na ESP8266. Wystarczy postępować zgodnie z instrukcjami instalacji w Rozpoczęcie pracy z MicroPythonem na ESP8266.
Poniżej znajdują się polecenia, których użyłem:
$ esptool.py --port /dev/tty.wchusbserial640 erase_flash
esptool.py v1.3 Łączenie…. Uruchamiam fragment flashera Cesanta… Kasowanie flasha (może to chwilę potrwać)… Wymazywanie trwało 10,5 sekundy
$ esptool.py --port /dev/tty.wchusbserial640 write_flash -fm dio -fs 32m -ff 40m 0x00000 esp8266-20170108-v1.8.7.bin
esptool.py v1.3 Łączenie…. Uruchamianie odgałęzienia flashera Cesanta… Parametry Flash ustawione na 0x0240 Zapisano 589824 bajty przy 0x0 w ciągu 50,8 sekundy (92,8 kbit/s)… Wychodzę…
MicroPython jest teraz zainstalowany na twojej płycie!
Krok 5: Konfiguracja sieci
Chociaż MicroPython jest teraz zainstalowany na twoim Wemos, nie jest jeszcze podłączony do twojej sieci. Musisz najpierw włączyć sieć. Na komputerze Mac wykonaj polecenie SCREEN, aby rozpocząć sesję terminala szeregowego z Wemos.
$ ekran /dev/tty.wchusbserial640 115200
Gdy zobaczysz pusty ekran, naciśnij RETURN, aby zobaczyć monit:
>>
(Uwaga: aby wyjść, wpisz CTRL-A CTRL-)
Teraz włączmy dostęp klienta internetowego. Wpisz „import webrepl_setup”, aby uruchomić program instalacyjny. Wpisz E, aby włączyć WebREPL, a następnie ustaw hasło. Uruchom ponownie, aby aktywować zmiany.
>>importuj webrepl_setup
Status automatycznego uruchamiania demona WebREPL: wyłączony Czy chcesz (E)włączyć czy (D)wyłączyć go podczas uruchamiania? (Pusty wiersz, aby zakończyć) > E Aby włączyć WebREPL, musisz ustawić dla niego hasło Nowe hasło: xxxxx Potwierdź hasło: xxxxx Zmiany zostaną aktywowane po ponownym uruchomieniu Czy chcesz teraz ponownie uruchomić? (t/n) tak
Na koniec pobierz klienta Webrepl na swój komputer. Jest to opcjonalne, ale klient zawiera inne przydatne narzędzia, z których możesz chcieć skorzystać później. Na przykład webrepl_cli.py to polecenie do kopiowania plików do Wemos w składni podobnej do scp. Użyj git, aby pobrać klienta. (Zainstaluj narzędzie git, jeśli jeszcze go nie masz).
klon git
Otwórz przeglądarkę internetową i w polu adresu URL wprowadź lokalizację pobranego pliku klienta webrepl, na przykład:
file:///Users/xxxxx/wemos/webrepl/webrepl.html
Powinno to wyświetlić klienta webrepl w Twojej przeglądarce. Zanim będziesz mógł się z nim połączyć, musisz najpierw połączyć się z jego punktem dostępu WiFi. Jeśli spojrzysz na dostępną sieć WIFI dla swojego komputera, zobaczysz, że sieć zaczyna się od MicroPython-xxxx. Połącz się z tą siecią. (Ostrzeżenie: po połączeniu się z tą siecią utracisz dostęp do Internetu).
Wróć do swojego klienta webrepl i kliknij Połącz. Powinien poprosić o hasło. Wprowadź swoje hasło Wemos i powinieneś się połączyć.
Witamy w MicroPythonie!
Hasło: WebREPL podłączony >>>
Twój Wemos nadal działa w trybie AccessPoint. Chociaż jest to w porządku, wolę, aby działał w trybie stacji, w którym łączy się z domową siecią WIFI, aby mój komputer mógł uzyskać do niej dostęp przez domową sieć WIFI i nadal mieć dostęp do Internetu. Aby to zrobić, musisz utworzyć plik o nazwie boot.py z konfiguracją sieci i przesłać go do Wemos.
Oto przykładowy plik boot.py. Zmień SSID i hasło do domowej sieci WIFI. Chcę też nadać mu statyczny adres IP 192.168.0.32. Zmień go na dostępny adres IP domowej sieci WIFI.
boot.py (możesz go pobrać od dołu)
importuj gc
import webrepl def do_connect(): import network sta_if = network. WLAN(network. STA_IF) if nie sta_if.isconnected(): print('łączenie z siecią…') sta_if.active(True) sta_if.ifconfig(('192.168. 0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1')) sta_if.connect('', '') a nie sta_if.isconnected(): pass print('konfiguracja sieci:', sta_if.ifconfig()) do_connect() webrepl.start() gc.collect()
Użyj formularza "Wyślij plik" klienta Webrepl, aby wysłać plik boot.py do Wemos. Naciśnij przycisk resetowania, aby ponownie uruchomić. Jeśli nadal masz połączenie przez USB za pomocą polecenia EKRAN, zobaczysz:
łączenie z siecią… konfiguracja sieci: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1') Demon WebREPL uruchomiony na ws://192.168.4.1:8266 Demon WebREPL uruchomiony na ws://192.168.0.32:8266 Uruchomiony webrepl w trybie normalnym nie mógł otworzyć pliku 'main.py' do odczytu MicroPython v1.8.7-7-gb5a1a20a3 dnia 2017-01-09; Moduł ESP z ESP8266 Wpisz "help()", aby uzyskać więcej informacji. >>>
To potwierdza, że Twój Wemos jest podłączony do domowej sieci WIFI za pomocą adresu IP 192.168.0.32.
Możesz pingować ten adres IP, aby potwierdzić.
$ ping 192.168.0.32
PING 192.168.0.32 (192.168.0.32): 56 bajtów danych
64 bajty od 192.168.0.32: icmp_seq=0 ttl=255 time=9.334 ms 64 bajty od 192.168.0.32: icmp_seq=1 ttl=255 time=11.071 ms..
Krok 6: Zainstaluj główny program
Na koniec musisz zainstalować główny program, który będzie nadal działał na twoim Wemos.
Wróć do przeglądarki internetowej i uruchom program klienta webrepl. Zmień adres IP na adres IP swojego Wemos. W moim przypadku jest to teraz 192.168.0.32. Wprowadź swoje hasło Wemos i powinieneś być teraz połączony z Wemos.
Prześlijmy załączony program main.py. Pobierz załączony plik na swój komputer. Kliknij Wybierz plik, aby wybrać pobrany plik main.py, a następnie kliknij Wysłano na urządzenie.
Będziesz musiał nacisnąć przycisk Rest, aby załadować program main.py. Po naciśnięciu przycisku Resetuj zobaczysz:
łączenie z siecią…
konfiguracja sieci: („192.168.0.32”, „255.255.255.0”, „192.168.0.1”, „192.168.0.1”)
Demon WebREPL uruchomiony na ws://192.168.4.1:8266 Demon WebREPL uruchomiony na ws://192.168.0.32:8266 Uruchomiony webrepl w trybie normalnym Słucham, podłącz przeglądarkę do …
Oznacza to, że twój program main.py jest aktywowany i wyświetla się na porcie 80.
Aby przetestować, otwórz przeglądarkę internetową i wpisz
Powinno to wyświetlić ekran sterowania samochodem, jak pokazano na filmie. Jeśli przewody są prawidłowo podłączone, przyciski sterujące wyślą odpowiednie sygnały do portów GPIO, aby ruszyć samochodem.
Krok 7: Przyszłe ulepszenia
Na mojej liście v2 znajdują się następujące rzeczy do zrobienia:
- Użyj PWM do sterowania prędkością silnika
- Popraw interfejs sieciowy. Być może użyj frameworka aREST. Nie wierzę, że biblioteka aREST lib jest w tej chwili dostępna na MicroPythonie, więc być może będę musiał ją zhakować.
Dziękuję za przeczytanie tej instrukcji. Śledź mnie na Facebooku, Youtube i Instructables, aby uzyskać więcej projektów w przyszłości.
Zalecana:
Sterowany głosem przełącznik IOT IOT oparty na Arduino (obsługiwane Google Home i Alexa): 11 kroków
Sterowany głosem przełącznik IOT IOT oparty na Arduino (obsługiwane przez Google Home i Alexę): Ten projekt opisuje, jak stworzyć oparty na Arduino, sterowany głosem przełącznik przekaźnika IOT. Jest to przekaźnik, który możesz włączać i wyłączać zdalnie za pomocą aplikacji na iOS i Androida, a także powiązać go z IFTTT i sterować nim za pomocą głosu za pomocą Goog
MQTT oparty na MicroPython ESP32: 5 kroków
MQTT Oparty na MicroPython ESP32: Lubię trzymać koty domowe. Po dniu intensywnej pracy kot może mnie zrelaksować, gdy wrócę do domu. Po ciężkim treningu ten kot ma dobry nawyk regularnego jedzenia w „restauracji”. codziennie. Ale ostatnio muszę podróżować na kilka dni i
Generator muzyki oparty na pogodzie (generator Midi oparty na ESP8266): 4 kroki (ze zdjęciami)
Generator muzyki oparty na pogodzie (Generator Midi oparty na ESP8266): Cześć, dzisiaj wyjaśnię, jak zrobić własny mały generator muzyki oparty na pogodzie. Jest oparty na ESP8266, który jest trochę jak Arduino i reaguje na temperaturę, deszcz i intensywność światła.Nie oczekuj, że sprawi, że całe utwory lub akordy będą pro
Niedrogi monitor jakości powietrza IoT oparty na RaspberryPi 4: 15 kroków (ze zdjęciami)
Niedrogi monitor jakości powietrza IoT oparty na RaspberryPi 4: Santiago, Chile podczas zimowej katastrofy środowiskowej ma przywilej życia w jednym z najpiękniejszych krajów na świecie, ale niestety to nie tylko róże. Chile w okresie zimowym bardzo cierpi z powodu zanieczyszczenia powietrza, mai
10 $ Klucz oparty na IoT Mniej kontroli roweru: 7 kroków (ze zdjęciami)
10 $ Klucz oparty na IoT Mniej kontroli roweru: KONTROLUJ SWÓJ BEZPRZEWODOWY ROWER ZA POMOCĄ TELEFONU Z SYSTEMEM ANDROID. BEZ KLUCZA, BEZ NAPIĘCIA