Arduino IOT Cloud

Chmura - Arduino IOT Cloud cz19

Arduino IOT Cloud umożliwia tworzenie aplikacji IoT dla mikokontrolerów Arduino, łączenia ich z usługą chmury,  tworzenie pulpitów do sterowania nimi za pomocą szerokiej gamy widżetów oraz łączenie ich z istniejącymi urządzeniami IoT.  Dostęp do pulpitów możemy uzyskać również z poziomu aplikacji mobilnej na iOS  oraz Androida. Mamy również możliwość programowania zdalnie urządzeń.

Kompatybilne urządzenia:
  • Wi-Fi MKR 1000
  • MKR WiFi 1010
  • MKR WAN 1300 *
  • MKR WAN 1310 *
  • MKR GSM 1400 *
  • MKR NB 1500 *
  • Nano RP2040 Połącz
  • Nano 33 IoT
  • Portenta H7
  • ESP32/ESP8266 z obsługą Wi-Fi

* Uwaga: MKR GSM 1400 i MKR NB 1500 wymagają karty SIM do połączenia z chmurą, ponieważ komunikują się przez sieci komórkowe. Płyta MKR WAN 1300 i 1310 wymaga Arduino PRO Gateway LoRa do połączenia z chmurą.

Jak zacząć z Arduino IOT Cloud ? Postaram ci to wytłumaczyć na prostym zadaniu. Odpowiedz na to pytanie również możesz odnaleźć u źródeł na stronie https://docs.arduino.cc/cloud/iot-cloud.

Zadanie

Odczyt temperatury oraz sterowanie diodą led z pulpitu Arduino IoT Cloud.

Realizacja zadania

W pierwszym kroku musisz stworzyć konto w platformie. Jeśli już mamy konto to przechodzimy do zakładki devices. Dodając urządzane musimy posiadać zainstalowany Arduino Create Agent, gdy go nie posiadamy otrzymamy informacje aby go pobrać.

Arduino Cloud

Gdy już nam się uda poprawnie dodać urządzenie to tworzymy rzeczy klikając w „Create Thing”.

Arduino Cloud

Interfejs rzeczy umożliwia nam stworzenie zmiennych, zmianę urządzenia, konfigurację sieci, podgląd monitora portu szeregowego czy też edycje i zmianę sketch’u w wersji przeglądarkowej. My musimy dodać dwie zmienne do sterowania led oraz do odczytu temperatury. Ważne aby zmienna do sterowania led się aktualizowały automatycznie po jej zmianie.

Arduino Cloud Arduino Cloud

Gdy już dodamy zmienne możemy zaobserwować, że konfiguracja sieci została odblokowana. Konfigurując sieć musimy podać SSID oraz hasło do sieci wifi.  

Teraz możemy przejść do podłączenie i napisania kodu.

Schemat:

schemat

Kod programu:
#define LedPin 2    // Definicja pinu 2 jako Led
#include "thingProperties.h"
#include <Wire.h>
#include <Adafruit_BMP085.h>

Adafruit_BMP085 bmp; // Definicja zmiennej bmp

void setup() {

  Serial.begin(9600);
  delay(1500);
  
  pinMode(LedPin, OUTPUT);     // Deklaracja Led jako WYJŚCIE
  digitalWrite(LedPin, LOW);   // Wyłącz Led

  bmp.begin();  // Rozpoczęcie pracy czujnika bmp

  // Defined in thingProperties.h
  initProperties();

  // Connect to Arduino IoT Cloud
  ArduinoCloud.begin(ArduinoIoTPreferredConnection);
  setDebugMessageLevel(2);
  ArduinoCloud.printDebugInfo();
}

void loop() {
  ArduinoCloud.update();
  temp = bmp.readTemperature();
  Serial.println(temp);
}

void onLedChange()  {
  if(led == true) { // Jeśli dane = 1
      digitalWrite(LedPin, HIGH);   // Włącz Led
  }
  if(led == false) { // Jeśli dane = 0
    digitalWrite(LedPin, LOW);   // Wyłącz Led
  }
}

Gdy już uzupełniliśmy kod przechodzimy do stworzenia naszego pulpitu sterowania klikając w Dashboards -> Build Dashboards i dodajemy dwa wigety. Jeden z nich to Switch dla którego ustawiamy nazwę i podłączamy do niej zmienna Led a drugi to chart dla którego ustawiamy zmienna temp.

Arduino Cloud Arduino Cloud

W efekcie otrzymujemy pulpit z podglądem na temperaturę oraz mamy możliwość zapalania diody led.

Arduino Cloud

Czy nie jest to proste ? Możemy mieć dostęp do pulpitu z dowolnego miejsca na ziemi gdzie jest dostęp do Internetu. Poniżej przedstawiam wersje pulpitu w aplikacji na telefonie.

Arduino Cloud

Najlepsze jest to, że wszystko jest w sieci. Gdy nam ulegnie uszkodzeniu Arduino to możemy w łatwy sposób dodać nowe urządzenie, zamienić go w konfiguracji Rzeczy i wgrać program.

Arduino Cloud udostępnia darmowy dostęp dla:

  • 2 rzeczy
  • Nieograniczone pulpity nawigacyjne
  • 100 Mb do przechowywania szkiców
  • 1 dzień przechowywania danych
  • 200s/dzień czasu kompilacji
  • Łączność LoRaWAN zawarta w abonamencie Free do 31.12.2021