ESP8266 i Arduino IDE

Gdy przed Tobą stoi potrzeba podłączenie jakiegoś mikrokontrolera do sieci WiFi, od niedawna masz zupełnie nowe możliwości dzięki małym modułom ESP8266. Te moduły mogą pracować jako bramki do WiFi dla µC, albo jako moduły w pełni samodzielne, z możliwością programowania.

ESP w Nettigo

image

Od kilku dni poszerzyła się oferta modułów ESP8266 w Nettigo, więc jeżeli poszukujesz jakieś z większa ilością dostępnych GPIO to mamy coś dla Ciebie

ESP8266 i Arduino IDE

Dotychczas najpopularniejsza metodą na programwowanie ESP jako samodzielnego modułu, było skorzystanie z firmware, które rozumie język lua, jednak niedawno pojawiła się możlwiość korzystania z Arduino IDE, razem ze znanymi funkcjami takimi jaki digitalWrite, digitalRead. Jak to można zrobić? O tym w tym wpisie.

Kilka słów przypomnienia

Po pierwsze, moduły ESP działają na max 3.6v i komunikują się w logice 3v. Pamiętajcie o tym, ponieważ ESP można uszkodzić podłączając napięcie większe niż 3.6v.

Po drugie, w sieci dostępnych jest wiele różnych modułów ESP8266 charakteryzujących się różną ilością portów GPIO, jednak zasad uruchamiania i podłączania jest taka sama dla wszystkich.

O tym jak podłączyć ESP8266 i zmienić oprogramowanie znajdziecie w naszym poprzednim wpisie o ESP8266.

Arduino IDE

W tym wpisie zajmiemy się możliwością oprogramowania naszego modułu z poziomu Arduino IDE. Na chwilę obecną (połowa kwietnia 2015) dostępne jest oddzielnie IDE (bazowane na kodzie oryginalnego IDE), jednak możemy mieć nadzieje, że w niedługiej przyszłości będą dostępne paczki, które będzie można dograć do oryginalnego Arduino IDE. Znacznie to ułatwi postępowanie, jeżeli nie będziecie musieli mieć specjalnego IDE do programowania ESP. Sytuacja jest bardzo dynamiczna i projekt się szybko rozwija.

W celu zaprogramowania ESP przez IDE należy pobrać paczkę z Githuba. Oprogramowanie dostępne jest na Windowsa, Linuxa (tylko 64 bit) oraz MacOSa.

Po pobraniu paczki rozpakowujemy ją do wybrango foldery i w przypadku systemu Windows odpalamy IDE klikając na arduino.exe. W przypadku systemów Linux oraz MacOS odpalamy IDE z konsoli komendą:

./arduino

Zanim przejdziemy do wgrywania pierwszego programu mała uwaga, numery pinów ESP8266 odpowiadają numerom pinów w IDE, czyli GPIO0=pin0, GPIO2=pin2, itd. Jak wspomnieliśmy na samym początku w zależności od rodzaju modułu użytkownik będzie miał dostęp do większej lub mniejszej ilości pinów GPIO.

Podłaczenie ESP

Podłączamy nasze ESP do konwertera, pin GPIO0 zwieramy do masy (robimy to za każdym razem kiedy będziemy chcieli wgrać nowe oprogramowanie). Sprawdzamy połączenia i jeśli wszystko jest w porządku ostatnim krokiem jest podłączenie zasilania.

Odpalamy nasze wcześniej pobrane IDE, które z wyglądu nie różni się zbytnio od oryginalnego. W przypadku odpalania IDE na linuxie należy zwrócić uwagę, gdyż pobrana paczka przeznaczona jest na system 64bit. Istnieje możliwość pobrania źródła i zbudowania sobie programu używając polecenia:

  $ git clone [https://github.com/esp8266/Arduino.git](https://github.com/esp8266/Arduino.git)
  $ cd Arduino/build
  $ ant dist

Kiedy rozwiniecie zakładkę “Board” ukaże wam się moduł ESP8266. W zakładce “Port” wybieramy port szeregowy, jako który pojawił się nasz konwerter USB-serial.

Przetestujmy działanie na przykładzie znanego wszystkim “blinka”. Po wybraniu menu File/Examples/01. Basics/Blink jedyna zmiana jaką musimy wprowadzić to zamiana pinu 13 na pin 2. Kompilujemy, jeśli żadnych błędów nam IDE nie zwróci, to możemy załadować program do ESP8266.

Po wgraniu programu odłączamy zasilanie, zdejmujemy zworkę łączącą GPIO0 z masą i możemy ponownie podłączyć zasilanie. Wbudowana w ESP dioda powinna migać. Dzięki temu mamy pewność, że nasz program działa – cały proces przeszedł pomyślnie.

Na chwilę obecną działają funkcje: pinMode, digitalRead, digitalWrite ale jak pisałem wcześniej sytuacja jest dynamiczna i mamy nadzieję, że już wkrótce autorzy projektu przeniosą obsługe kolejnych poleceń.

Obsługa GPIO

GPIO0-GPIO15 mogą być ustawione jako wejście, wyjście, wejście z pullup, wyjście z otwartym drenem. GPIO16 może być ustawione tylko jako wejście/wyjście.

Przerwania można używać za pomocą komendy attachInterrupt, detachInterrupt i dotyczy każdego pinu z wyjątkiem GPIO16.

Komunikacja ESP z komputerem przez port Serial

Tryb Serial działa tak samo jak w standardowym Arduino, można przesyłać tekst i będzie on odbierany.

WiFi (biblioteka ESP8266)

Aby móc korzystać z sieci, najpierw trzeba ja skonfigurować.Interfejs do tej biblioteki jest wzorowany na biblitece WiFi od Arduino. Poniżej znajdują się najważniejsze różnice pomiędzy oryginalną, a zmodyfikowaną biblioteką WiFi. reszta funkcji powinna działać bez problemów


WiFi.mode(m): ustaw tryb na WIFI_AP, WIFI_STA, lub WIFI_AP_STA. Są to odpowiednio tryby Access Point, klienta WiFi i mieszany

w zależności od trybu pracy różni się ustawianie adresu MAC karty sieciowej WiFi.macAddress(mac) jest dla STA, WiFi.softAPmacAddress(mac) jest dla AP.

podobnie z adresem IP: WiFi.localIP() jest dla STA, WiFi.softAPIP() jest dla AP.

WiFi.RSSI() nie działa obecnie

WiFi.printDiag(Serial) wyświetla informacje diagnostyczne

użyj WiFi.softAP(ssid) w celu ustawienia własnej otwartej sieci (w trybie z AP), dostęp bez hasła

użyj WiFi.softAP(ssid, passphrase) w celu ustawienia sieci WPA2-PSK zbezpieczonej hasłem

WiFiServer, WiFiClient i WiFiUDP działają i zachowują się tak samo jak w oryginalnej bibliotece.

W IDE dołączone zostały 4 przykłady z użyciem zmodyfikowanej biblioteki.

I2C

Działa jedynie tryb master, a Wire.setClock nie został jeszcze dopracowany do końca (problemy z ustawieniem częstotliwości). Jeśli ktoś chce próbować, przed użyciem I2C należy skonfigurować piny używając komendy Wire.pins(int sda, int scl), np. Wire.pins(0, 2); dla modułu ESP-01.

SPI

Na chwilę obecną prowadzone są testy nad HSPI (na GPIO12-15). Więcej informacji można znaleźć na stronie Sermusa, gdzie jest np. informacja dotycząca podłączenia wyświetlaczy ILI9341 do ESP

OneWire

Działa bez większych problemów. Biblioteka została zaadoptowana do działania z ESP. Oryginalnie była to biblioteka przeznaczona na Teensy

Inne biblioteki działające z ESP

Podsumowanie – ESP8266, Arduino i nie tylko

Jeżeli projekt bedzie się nadal tak rozwijał jestem pewien, że wkrótce wsparcie dla ESP na Arduino IDE będzie znacznie bardziej kompletne. Ale nawet w dzisiejszym kształcie może być ciekawą alternatywą. Zwłaszcza dla osób znających Arduino IDE a z różnych powodów nie mogących/nie chcących przesiąść się na nowe środowisko/język.

W tej chwili w Nettigo możecie kupić:

  • ESP8266-01 moduł ESP z dwoma portami GPIO, antena (PCB) na płytce
  • ESP8266-07 wersja z 9 GPIO, antena (ceramiczna) na płytce oraz gniazdo UF.L
  • ESP8266-12 wersja z 9 GPIO, antena (PCB) na płytce
  • opcjonalny adpater do ESP-07 i ESP-12 tak by można łatwo korzystać z modułów ESP-07 i ESP-12 np w płytce stykowej

Revision 2015

Jak co roku w święto Wielkiej Nocy odbyło się demoscenowe party Revision. Jak zwykle przyciągnęło wielu utalentowanych twórców, którzy wyciskają ostatnie soki z różnych komputerów by pokazać swój kunszt programistyczny i artystyczny.

By było sprawiedliwie, produkcje podzielone są na kategorie. Tą, która najbardziej nas interesuje jest Wild. Trafiają tam dema nie mieszczące się w żadnej innej kategorii. Wraz z popularyzacją DIY i OpenHardware mamy tam coraz więcej przedstawicieli naszego hobby. Używają głównie płytek kontrolerów Arduino i Raspberry PI.

W tym roku wygrało świetne demo pc-10: Panda³ stworzone przez ludzi z Panda Cube.

Demem steruje płytka Arduino Mega 2560. Wszystko co widzisz opiera się na znanych z naszego sklepu Adresowanych Diodach LED
Ramka została wydrukowana na drukarce 3D, a reszta to akrylowe szybki, które rozświetlają LED-y.

Resztę produkcji z Revision 2015 znajdziesz na stronie Pouet.net

Jeśli chcesz stworzyć coś podobnego, mamy dla ciebie części:

Prawdziwy komputer na nadgarstku

Pierwszy raz, kiedy uruchomiłem emulator procesora 6502 na Arduino, razem z językiem BASIC ogarnęło mnie niesamowite uczucie. Z jednej strony to powrót do dzieciństwa, do początków programowania. Z innej to niedowiarstwo, że w tak małym Arduino mieści się to, co kiedyś zajmowało całe biurko i przynosiło mnóstwo frajdy. Przecież to niemożliwe! 😉

Ostatnio pojawił się wysyp projektów idących jeszcze dalej. Do małych płytek Arduino UNO bohaterowie DIY dodali jeszcze więcej niespodzianek.

DAN64

Jest to komputerek oparty na Arduino UNO. Ma wbudowany emulator procesora 6502, język BASIC i monitor języka maszynowego. Ma wyjście obrazu typu Composite Video, dzięki któremu podłączysz komputerek do telewizora. Obsługuje klawiatury do PC z wtykiem PS2. Dodatkowym atutem jest obsługa magnetofonu. Może zapisywać i odczytywać programy za pomocą tych kultowych pisków, trzasków i zgrzytów.

Ponieważ Arduino miało zbyt mało pamięci by rozwinąć skrzydła, Juan Martinez – autor dodał jej więcej. Układ Microchip 23LCV512, podłączony do SPI zapewnia dodatkowe 64 KB RAM.

Arduino UNO jako APPLE II

Damian Peckett poszedł odrobinę dalej i postanowił stworzyć emulator realnego komputera jakim jest Apple II. Jest to pierwszy masowo produkowany komputer Apple, który stworzyli jego legendarni twórcy Jobs i Wozniak.

Jego emulator opiera się na Arduino UNO. Tym razem obraz wyświetlany jest na monitorze VGA. Klawiatura jak poprzednio to standard PS2. Jak w oryginalnym komputerze emulator obsługuje głośniczek do generowania dźwięków i wejście magnetofonowe do odczytywania programów Apple.

Apple II jako zegarek

W serwisie Instructables użytkownik Aleator777 zamieścił projekt, który jest satyrą na nowy produkt firmy Apple – zegarek.
Zegarek Apple 2 nie emuluje realnego komputera, ale sprawia wrażenie jakby napędzał go komputer Apple II. Autor nie miał czasu by stworzyć prawdziwą emulację.

W środku znajduje się już wydajne maleństwo – płytka kontrolera Teensy 3.1. Dodatkowo jest tam wyświetlacz 1,8″, odtwarzacz MP3, głośnik, akumulator LiPo, enkoder obrotowy i ładowarka indukcyjna. Zegarek, jak przypada na prawdziwy smartwatch działa jedynie 3 godziny ;-).

Myślę, że projekty są bardzo inspirujące. Szczególnie ten ostatni czeka na ciebie, byś dopisał mu prawdziwy emulator. Teensy 3.1 ma wydajność, aż nadto.
Jeśli chciałbyś powtórzyć jeden z tych wyczynów lub stworzyć własny – części do niego kupisz w sklepie Nettigo.pl

Nowy Fritzing z układami Tesli

Pojawiła się nowa wersja programu Fritzing 1.0alpha T+. Autorzy zaszczycili nas zaskakującymi pomysłami na rozwój programu.

image

Od tej wersji dodawane będą podzespoły znanego wynalazcy Nikoli Tesli. Nie każdy wie, że Nikola był wielkim orędownikiem wolnej energii. Jest to ruch badaczy, którzy twierdzą, że energię elektryczną można pozyskiwać z niekończących się naturalnych żródeł fal elektromagnetycznych i statycznych.
Jednym z najpopularniejszych wynalazków tamtego okresu był satelita gromadzący energię z naładowanych cząsteczek wiatru słonecznego i przekazujący ją na Ziemię w postaci mikrofal.

Autorzy Fritzinga mają nadzieję, że ich program przyczyni się do odkrycia tajemniczego rezonansu kosmosu i Ziemi zwanego falami Eteru 

W kolejnych wersjach będą dodawane elementy do zasilania urządzeń za pomocą fali Shumana. Ma to pozwolić na bardzo długą pracę gadgetów typu Internet of Things.