Zabawa z IoT na platformie Azure

wpis w: Arduino, Azure, IoT | 1

1. Zakup urządzenia
Wg producenta jest to
Moduł WiFi oparty na układzie ESP8266. Na pokładzie znajduje się 9 portów GPIO z obsługą I2C i SPI, wejście analogowe oraz złącze baterii lipol 3,7 V. Posiada oprogramowanie NodeMCU, które wspiera język skryptowy Lua lub środowisko Arduino IDE. Dodatkowym atutem jest wbudowany konwerter napięć na liniach interfejsu UART.
Czyli skrócie dostajemy gotowe urządzenie, które potrafi się komunikować po WIFI i ma możliwość podłączania dodatkowych czujników m.in. temperatury i wilgotności.

esp8266_1

2. Konfiguracja IoTHub na platformie Azure

Wybieramy menu “wszystkie zasoby”

azure_iot_1

Z kategorii Internet of Things wybieramy IoT Hub i wypełniamy podstawowe parametry, unikalną nazwę, grupę zasobów i lokalizację. Na początek proponuję zacząć od planu darmowego F1, ale jeśli planujemy coś bardziej poważnego, to w chwili obecnej nie ma możliwości podniesienia planu usługi. Można tylko postawić kolejna usługę. Wstaje ona po kilku minutach.

 

azure_iot_2

 

Po wygenerowaniu kluczy z polisy iothubowner możemy przejść do rejestracji naszych urządzeń

Device ID: Nazwa urządzenia. Unikalna w ramach IoT huba, wielkie i male litery maja znaczenie

Authentication Type: Pozostawiamy Symmetric Key.

Auto Generate Keys: Pozostawiamy zaznaczone (zostaną automatycznie wygenerowanie klucze).

Connect device to IoT Hub: Pozostawiamy Enable.

azure_iot_3

 

Każde z urządzeń będzie mieć wygenerowane dwa klucze.

azure_iot_4

Konfiguracja połączeń w tym przypadku wygląda tak

 

I tę konfigurację będziemy wykorzystywać podczas pracy z urządzeniem. W ten sposób Hub wie, z jakiego urządzenia nadchodzą dane z czujników.

Jeżeli nasz hub nazwałem djkormohub to warto sprawdzić połączenie sieciowe na porcie 8883

3. Instalacja oprogramowania Arduino
Adres instalatora
https://www.arduino.cc/en/Main/Software
W momencie pisania artykułu jest to wersja 1.8.5.

arduino_1

arduino_2

Pojawi się grupa  pytań wymagających potwierdzenia instalacji sterowników “Arduino”arduino_5 arduino_6

Instalacja została zakończona.

4. Konfiguracja Visual Studio Code

Potrzebny będzie dedykowany plugin do Arduino. Plugin ten nie zadziała bez instalacji  oprogramowania z punktu 3).

Adres pluginu
https://marketplace.visualstudio.com/items?itemName=vsciot-vscode.vscode-arduino

vsc_1

 

Po instalacji pluginu proponuje restart VSC. U mnie bez tego nie były możliwe dalsze kroki.

Zaczynamy od konfiguracji dla ESP8266.

Podlączyłem urządzenie po USB, pojawił się komunikat

vsc_3

-> Arduino: Boar Manager.

vsc_2Naciskamy aditional Urls. Wstawiamy w pliku User Settings .json adres

vsc_4

Wybieramy w polu “filter your search” esp8266.

Wybrałem ostatnią wersje stabilną, czyli 2.4.0 i przycisk install. Po krótkiej chwili skończyło się to tak:

Ups…
Bez chwili namysłu wybrałem starszą wersję 2.3.0. Udało się

A poźniej zrobiłem upgrade. W ten sposób mam działającą wersje 2.4.0.

Uruchamiamy Arduino:Board Config

vsc_5

To czego nam brakuje to bibioteki do obsługi naszego IoTHuba w Azure i nie tylko

Uruchamiamy Arduino: Librany Manager i instalujemy bibioteki

AzureIoTHub
AzureIoTUtility
AzureIoTProtocol_MQTT
ArduinoJso
DHT sensor library
Adafruit Unified Sensor

vsc_6

Oprogramowanie do pracy z płytką zostało zinstalowane. Czas na prosty przykład. Pobieram z githuba, gotowy projekt przygotowany przez Microsoft.

Ponieważ, nie mam jeszcze czujnika DTH22 (temparatura i wilgotność) wykorzystam możliwość symulacji jego zachowania.
W pliku config.h należy zmienić linię kodu odpowiedzialną za nią

Otwieramy w VSC plik app.ino.

Spróbujmy zapisać oprogramowanie na urządzeniu
Uruchamiamy Arduino:Upload i po wybraniuy portu komunikacyjnego pojawi się po chwili następujący komunikat.

Kolejne ups ?

Po krótkim wykorzystaniu wujka Google trafiłem na rozwiązanie. Należy zainstalować brakujące oprogramowanie w podkatalogu hardware Arduino.

 

Log z instalacji

Restartujemy Arduino.

Instalujemy obraz z poziomu Arduino (VSC nadal poprawnie nie działa).

arduino_7

Zwróćcie uwagę na migająca niebieską diodę podczas zapisywania oprogramowania.

Oprogramowanie wgrane, teraz należy podłączyć urządzenie do naszej sieci WIFI.

Po podaniu nazwy sieci WIFI (SSID) , hasła (PASS) i konfiguracji połączenia naszego urządzenia do IotHuba w postaci

Urządzenie uruchamia się:

Widać, że urządzenie podłączyło się do sieci bezprzewodowej i próbuje wystać komunikat w postaci

Urządzenie ESP_*  jest widoczne od strony rutera WIFI, otrzymało przez DHCP swój adres IP.

asus_1

Włączyłem opcje debugowania i mam taki wyciąg z logów

 

Problematyczne okazało się żle skonfigurowany DNS i urządzenie nie potrafiło ustalić adresu IP huba. IP 10.0.0.1 to lokalny adres rutera mojego dostawcy internetu.

Po naprawie konfiguracji w logach monitora zaczęły pojawiac sie komunikaty

Zweryfikowałem metryki diagnostyczne usługi w Azure. Pojawiły się pierwsze komunikaty.

azure_iot_5

W darmowym planie F1 mamy do wykorzystania 8000 komunikatów na dobę, jeśli dobrze oszacowałem oznacza to jeden komunikat co 11 sekund. Do prostych pomiarów jest to wystarczające.

 

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *