esp8266 oraz nodeMCU w Arduino IDE

Istnieje bardzo prosty i szybki sposób na rozszerzenie funkcjonalności i obsługi środowiska Arduino IDE o nowe płytki. Wystarczy w Ustawieniach wpisać odpowiedni link, poprzez który za pomocą JSONa oprogramowanie pobierze właściwe rozszerzenie.

Dzięki tej operacji Arduino IDE zacznie obsługiwać bezpośrednio moduły esp8266 oraz nodeMCU, które korzysta z ESP.

I krok: dopisanie w ustawieniach właściwego linku (PLIK->PREFERENCJE)

http://arduino.esp8266.com/stable/package_esp8266com_index.json

ustawienia

Oczywiście trzeba zapisać zmiany oraz uruchomić ponownie uruchomić IDE.

II krok: odnalezienie i wybranie „płytek” do zainstalowania

(NARZĘDZIA -> PŁYTA -> MENADŻER PŁYTEK…)

wybór płytki

III krok: po wyborze Menadżera Płytek pojawi się okienko

menadżer płytek

 

Należy wybrać install (w prawym dolnym rogu okienka, tuż ponad zamknij)

Po tych działaniach powinna się pojawić w menu płytek lista nowych układów.

nowe menu

Miłej zabawy. Moduły ESP8266 oraz nodeMCU można za niewielkie pieniądze kupić np tutaj:

https://kamami.pl/moduly-wifi/559667-modul-z-esp8266-nodemcu.html

https://kamami.pl/moduly-wifi/235041-esp-01-modul-wifi-z-esp8266-i-antena.html

Raspberry Pi 2 Model B – pierwsze wrażenia i uruchomienie

Udało się – paczka z nowiutkimi Raspberry Pi 2 model B dotarła szybko i mogłem od razu przejść do testowania. Zamówienie złożyłem 2 lutego 2015 roku w polskim oddziale RS Components i już po dwóch dniach paczka przyjechała – wg listu przewozowego z niemieckiego centrum dystrybucji.

Sama paczka – nic specjalnego, bąbelkowa koperta syngowana logiem RS, w środku kartonik z maliną, dokument wydania z magazynu i to wszystko.

Problem na start – zapomniałem czytnika microSD!

Tak, zapomniałem, że nowa malina (2 oraz wcześniejsza B+) mają złącze microSD. Dzięki czemu karta pamięci nie jest już tak wystającym elementem urządzenia, aczkolwiek wyróżnia się 2-3 milimetry poza obrys płytki PCB. Szkoda, że nie ukryli tego całkiem. Z rozwiązaniem mojego problemu przyszedł czytnik kart microSD w przenośnym modemie LTE – wystarczy podłączyć kablem urządzenie do komputera, włączyć i oprócz internetu z karty GSM pojawia się karta pamięci wśród urządzeń dostępnych w Windowsie/Linuksie/OSXie.

Instalacja Rasbiana – standardowa procedura

Tutaj nic nikogo nie zaskakuje. Ja wybrałem opcję instalacji pełnego rasbiana (nie przekonałem się do NOOBS). Ściągnąłem paczkę ZIP o wielkości niespełna 1GB, rozpakowałem (ISO to już 3GB, więc karta 4GB jako minimum jest potrzebna) i z poziomu windowsa 7 i aplikacji Win32DiskImager zainstalowałem dystrybucję na karcie pamięci.

Problem numer dwa – nie mam dostępu do routera ani monitora z HDMI

A więc nie mam jak dowiedzieć się jaki IP ma moja malinka. I tutaj z pomocą przychodzi eLinux.org, gdzie dokładnie opisane jest co należy zrobić, żeby mieć zawsze świeżą informację o IP urządzenia. W Rasbianie zadziałało rozwiązanie alternatywne (opisane pod w/w linkiem), czyli modyfikacja pliku: /etc/rc.local. Instalację Raspberry Pi bez klawiatury opisałem tutaj.

Problem numer trzy – nie mam dostępu do partycji linuksowej na Raspberry

Żeby wykonać działania opisane w powyższym punkcie, trzeba wyedytować plik jeden z plików startowych na partycji linuksowej. I tutaj (w przypadku użytkowników windowsów) pojawia się mały problem, ponieważ na karcie pamięci (po instalacji dystrybucji poprzez Win32DiskImagera) pojawia się partycja BOOT (system plików windowsowy) oraz partycja linuksowa z katalogami systemu plików. Żeby się do niej dostać, to trzeba poszukać narzędzia dla windowsa, które pokaże nam taki system plików (istnieją managery katalogów) lub (wg mnie bardziej eleganckie rozwiązanie) uruchomić z pendrive dowolną dystrybucję linuksa w wersji LIVE.

Problem numer trzy – wykonałem wszystkie powyższe działania i nie dostałem maila z IP Raspberry Pi

zabezpieczenie google

Na potrzeby powyższego ćwiczenia założyłem konto email w gmailu. Swoje prv konta mam zabezpieczone dodatkowym pinem oraz wolałem nie zmniejszać ich poziomu zabezpieczeń wpisując jawnym tekstem hasło w konfigurację maliny. Wykonałem wszystkie powyższe czynności i nic. Cisza. Okazuje się, że gmail ma dodatkowe zabezpieczenie, które nazywa parametrem ‚Dostęp dla mniej bezpiecznych aplikacji’. Na szczęście po chwili przychodzi mail, trzeba wejść w ustawienia konta google i zmienić na ‚Dozwolony’. Po tym ponownie uruchomić RPi i cieszyć się otrzymanym IP na email.

rpi2_4core

RPi2 działa i cieszy mnie informacją o 4 rdzeniach. Na dniach będę testować szerzej wydajność oraz na drugiej sztuce stawiać RaspBMC. 

instalacja raspberry pi oraz pierwsza konfiguracja (ssh, vnc, sieć, hostname)

Żeby Raspberry Pi zaczęło z nami rozmawiać i zachowywać się w sposób kontrolowany najlepiej zadbać na początku tej fascynującej przygody. W niniejszym wpisie powiem jak zainstalować PRi na karcie SD (przy wsparciu Ubuntu 12.10), uruchomić pierwszy raz oraz skonfigurować ssh i vnc, żeby było łatwiej zarządzać zabawką.

Starcie pierwsze – Raspberry Pi nie uruchamia się!

Tak, lekko stresujące było to, że włożyłem niby skonfigurowaną kartę SD i nic. Świeciła się jedna czerwona dioda, a miało mrugać, śpiewać i tańczyć. Z lekką paniką zacząłem dłubać w sieci i znalazłem info, że może mam niekompatybilną kartę, albo upalone RPi. Na szczęście trafiłem też na stronę, na której sugerowano, że może coś nie zadziałało przy tworzeniu obrazu na SD. Był to strzał w 10!

W moim przypadku sposób opisany na stronie: engadget.com nie zadziałał. Znalazłem na jednym z forów opis narzędza ImageWriter (dostępne w repozytoriach standardowo podpiętych w ubuntu). Kilka klików i zacząłem wgrywać ponownie obraz. W moim przypadku narzędzie miało problem z komunikatami na przyciskach oraz nie informowało o postępie zapisywania obrazu. Na początku znalazłem jakieś cudomagiczne rozwiązanie pozwalające obserwować na konsoli co się dzieje, ale w kolejnych podejściach (2-3 razy rozwaliłem system zaraz na początku i łatwiej było postawić obraz na nowo) olałem podglądanie i po zapuszczeniu tworzenia obrazu odczekałem około 2 minut na zapis (aż przestał dysk intensywnie migać diodą sygnalizując odczyt).

Oczywiście ISO najlepiej ściągnąć stąd: http://www.raspberrypi.org/downloads

imagewriter

ImageWriter – wybranie obrazu ISO oraz urządzenia, na którym będzie zainstalowany obraz.

Ostrzeżenie o tym, że karta SD zostanie wymazana. Jeśli używacie dysku USB, to uważajcie, żeby wybrać właściwe urządzenie.
imagewriter3

Obraz się generuje – niestety brak informacji o postępie zapisu. Widać również jakiś błąd, który występował na moim komputerze (tłumaczenia przycisków).

Dodatkowo warto sprawdzić czy operacja przebiegła poprawnie. Jeśli ktoś lubi okienka, to za pomocą dowolnego programu do partycjonowania (u mnie GParted) można sprawdzić jak wygląda zapisana karta – mniej więcej powinna wyglądać tak, jak poniżej:

gparted-sd

 

Raspberry Pi startuje, czyli podstawowa konfiguracja

Może słabo szukałem, ale do pierwszego uruchomienia RPi raczej potrzebna jest przynajmniej klawiatura oraz monitor lub telewizor z HDMI. Ja podłączyłem do TV oraz włączyłem. Przy uruchamianiu listują się kolejne elementy uruchamiane przez system, następnie pojawia się tekstowe okno Raspi-config (możliwe do wywołania też później z poziomu konsoli za pomocą polecenia sudo raspi-config):

raspi-config

W zasadzie przez większość pozycji trzeba się przeklikać:

expand_rootfs – rozszerza partycję podstawową do pełnego rozmiaru karty SD. Domyślnie obraz instaluje się na niecałych 2GB, więc warto tą operację zrobić. Ewentualnie można później tworzyć osobne partycje /home oraz swap, ale uznałem że dla własnych działań nie widzę potrzeby zaawansowanego dłubania w obrazie partycji.

configure_keyboard – najpierw wybieramy rodzaj klawiatury (zwykle std 105 klawiszy), a następnie kodowanie – tak, jest polski, jeśli ktoś potrzebuje.

change_pass – zmienia hasło użytkownika ‚pi’. I tak za kilka chwil skasujemy to konto, ale warto zmienić. Szybciej później się przeklikuje.

change_locale – zmiana domyślnego kodowania oraz języka. U siebie zmieniłem na pl_PL UTF8.

change_timezone – jak kto woli, ale ja wybrałem Europę i Warszawę:)

memory_split – ilość pamięci dostępna dla grafiki (domyślnie 64MB) – nie ruszałem – pozostała pamięć i tak jest na wypasie.

ssh – włączamy demona SSH – zdecydowanie przydatne (po restarcie nie będzie potrzebny monitor).

boot_behaviour – ustawienie czy mają domyślnie ładować się X’y. Oczywiście, że nie – szkoda zasobów. Po starcie można je wywołać poleceniem ‚startx’, zaś podłączenie się do VNC uruchamia je automatycznie.

– update można zrobić później.

Konfiguracja sieci przewodowej w Raspberry Pi

Konfigurację sieci polecam od polecenia:

sudo nano /etc/network/interfaces

i zmianie linijki: iface eth0 inet dhcp na iface eth0 inet static oraz dopisaniu poniżej:

address 192.168.YY.XX (gdzie YY to zwykle 0 lub 1 – zgodnie z naszą siecią oraz XX to nr IP urządzenia – najlepiej poza zakresem DHCP ustawionym na routerze)
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1 (jeśli wyżej YY = 1, to zwykle tutaj XX też będzie 1)

Doprecyzowania wymaga jeszcze edytor NANO, który jest bardzo prosty w obsłudze. W konsoli nie działają skróty CTRL+C lub +V, ale odpowiednikami są SHIFT+CTRL+C oraz +V. Działa również poruszanie kursorem strzałkami, przycisk DELETE oraz BACKSPACE i SPACJA. Po wprowadzeniu zmian wciskami CTRL+X (chcąc wyjść). Program pyta się czy na pewno oraz czy chcemy wprowadzić zmiany (oczywiście, że tak), więc zmieniamy i w kolejnym kroku pyta o nazwę – czasem na końcu dopisuje .jakiesrozszerzenie, więc trzeba je skasować i ENTER. Prościzna.

Kolejnym krokiem jest polecenie: sudo nano /etc/hostname – tutaj nadajemy swoją nazwę hosta (domyślnie jest raspberrypi).

Ja jeszcze wrzuciłem na swoim komputerze: sudo nano /etc/hosts – i dopisałem linijkę: 192.168.1.67 rpi1, gdzie rpi1 jest identyczną nazwą, jak hostname w RPi – łatwiej mi zapamiętać, gdy w komputerze, żeby się połączyć do RPi wpisuję tylko ssh rpi1 (dlaczego tak krótko o tym za chwilę / ważne, żeby wpis host zrobić u siebie na komputerze, a nie na RPi). Na koniec jeszcze na komputerze jedno polecenie: sudo /etc/init.d/networking restart i mamy hosty odświeżone.

Konto użytkownika, czyli jak uprościć sobie życie w Raspberry Pi

Żeby połączyć się poprzez ssh wystarczy wpisać: ssh -l pi rpi1, ale to dla mnie trochę za długo. Ja założyłem sobie na RPi takiego samego użytkownika jak mam na komputerze, dzięki temu nie muszę w poleceniu ssh używać parametru -l oraz nazwy użytkownika (to rozwiązanie działa, ale tylko jeśli na komputerze również jest system z rodziny linux).

Dodanie nowego usera: sudo useradd NAZWA_USERA oraz dodanie użytkownika do grupy sudoers: sudo nano /etc/sudoers, gdzie trzeba dopisać linijkę: NAZWA-USERA   ALL=(ALL:ALL) ALL oraz zmienić: pi ALL=(ALL) NOPASSWD: ALL na NAZWA_USERA ALL=(ALL) NOPASSWD: ALL.

Po wyjściu i zapisaniu restart platformy i wszystko powinno ładnie działać. W międzyczasie można jeszcze skasować konto ‚pi’ poleceniem sudo userdel pi oraz ustawić sobie hasło dla roota: sudo passwd (przydaje się przy używaniu polecenia su).

Pełnia szczęścia z Raspberry Pi, czyli tryb graficzny oraz serwer VNC dla okienkolubnych

W przypadku podłączenia RPi do monitora na stałe warto sobie w konfiguratorze raspi ustawić domyślne odpalanie Xów. Gdyby jednak takie działanie było sporadyczne oraz do systemu chcemy się podłączać przez VNC, to wystarczy pamiętać o poleceniu startx, które z poziomu konsoli (po zalogowaniu użytkownika) uruchomi tryb graficzny.

Ja czasem lubię grafikę, a do TV nie uśmiecha mi się biegać, więc postanowiłem na RPi uruchomić server VNC. Konfiguracja jest prosta jak budowa cepa i została ładnie opisana tutaj: malinowepi.pl, czyli: sudo apt-get install tightvncserver, edycja: sudo nano /etc/init.d/tightvncserver i wpisanie pliku z wymienionej strony (trzeba pamiętać o zmianie użytkownika ‚pi’ na swojego) oraz następnie: sudo chmod 755 /etc/init.d/tightvncserversudo update-rc.d tightvncserver defaults. Domyślny port VNC to 5901.

Ja od razu w wywołaniu (starcie servera) dopisałem parametry: su $USER -c ‚/usr/bin/tightvncserver :1 -geometry 800×600 -depth 16’, gdzie ustawiłem rozdzielczość oraz głębię kolorów (wg mnie więcej nie potrzeba – szkoda transferu).

Dodatkowo spotkałem się z tym, że server czasem nie ma ochoty się podnieść, więc trzeba: sudo pkill Xtightvnc, a następnie: sudo /etc/init.d/tightvncserver start. Po tym drugim poleceniu system może zapytać o hasło do VNC. Należy je podać i od razu powinno połączenie działać. Spotkałem się jeszcze z tym, że czasem w pliku /etc/init.d/tightvncserver widnieje użytkownik ‚pi’, wtedy wystarczy sudo nano /etc/init.d/tightvncserver, edycja, zapisanie i restart servera.

rpi_vnc

Polecam również aplikację ‚htop’ (sudo apt-get install htop), która z poziomu konsoli (a więc i przez ssh) umożliwia podgląd obciążenia i procesów na RPi. Miłej zabawy i napiszcie czy i jakie Wy spotykaliście problemy po drodze.

ps: przy tworzeniu wpisu pomógł też artykuł na blogu: blog.vokiel.com.