• Stars
    star
    109
  • Rank 319,077 (Top 7 %)
  • Language
    C
  • License
    Other
  • Created over 6 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

ArduinoIoTCloud

Check Arduino status Compile Examples Spell Check Unit Tests codecov

What?

The ArduinoIoTCloud library is the central element of the firmware enabling certain Arduino boards to connect to the Arduino IoT Cloud. The following boards are supported:

How?

  1. Register your Arduino IoT Cloud capable board via Arduino IoT Cloud (Devices Section).
  2. Create a new logical representation known as a Thing.

Arduino IoT Cloud Components

  • Devices: Physical objects built around a board (e.g. MKR WiFi 1010). This is the hardware which runs the sketch, reads sensors, controls actuators and communicates with the Arduino IoT Cloud.

  • Things: Logical representation of a connected object. They embody inherent properties of the object, with as little reference to the actual hardware or code used to implement them. Each Thing is represented by a collection of Properties (e.g., temperature, light, pressure...).

  • Properties: Qualities defining the characteristics of a system. A Property can be defined as read-only (READ) to indicate that Arduino IoT Cloud can read the data, but cannot change the value of such Property. On the other end, it may be designated to be read-and-write (READWRITE), allowing Arduino IoT Cloud to remotely change the property’s value and trigger an event notification on the device. It is also possible to mark properties as write-only (WRITE) which means the cloud can write to this property but not read its value (this limits data transmission for properties which are used to trigger events only).

How-to-use

  • thingProperties.h
void onLedChange();
/* ... */
bool led;
int seconds;
/* ... */
void initProperties() {
  ArduinoCloud.setThingId("ARDUINO-THING-ID");
  ArduinoCloud.addProperty(led, WRITE, ON_CHANGE, onLedChange);
  ArduinoCloud.addProperty(seconds, READ, ON_CHANGE);
}
/* ... */
WiFiConnectionHandler ArduinoIoTPreferredConnection("SECRET_SSID", "SECRET_PASS");
  • MyCloudApplication.ino
#include "thingProperties.h"

void setup() {
  Serial.begin(9600);
  while(!Serial) { }
  pinMode(LED_BUILTIN, OUTPUT);

  initProperties();
  ArduinoCloud.begin(ArduinoIoTPreferredConnection);
}

void loop() {
  ArduinoCloud.update();
  seconds = millis() / 1000;
}

void onLedChange() {
  digitalWrite(LED_BUILTIN, led);
}

FAQ

Watchdog

The 1.0.0 release of this library adds watchdog functionality to all ATSAMD21G18 based cloud connected boards. A watchdog is simply an electronic timer counting down from a preset start value which, upon reaching zero, triggers a reset of the microcontroller. It can be used to automatically recover from temporary hardware faults or unrecoverable software errors. In order to avoid the watchdog from reaching zero the countdown timer needs to be regularly re-set to its start value. This is happening within ArduinoCloud.update() which is periodically called at the start of the loop() function. Although the watchdog is automatically enabled it can be disabled by setting the second parameter of ArduinoCloud.begin(...) to false:

ArduinoCloud.begin(ArduinoIoTPreferredConnection, false).

Whatchdog is enabled by default using the following boards: MKR 1000, MKR WiFi 1010, MKR GSM 1400, MKR NB 1500, MKR WAN 1300/1310, Nano 33 IoT, Portenta H7, Nano RP2040 Connect, Nicla Vision, OPTA WiFi, OPTA RS485, OPTA Lite, GIGA R1 WiFi

Device can not subscribe to THING_ID

ArduinoIoTCloudTCP::handle_SubscribeMqttTopics could not subscribe to /a/t/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/e/i

In this case either the device has not been associated with the thing within the Arduino IoT Cloud GUI configuration or there's a typo in the thing ID.

OTA

OTA is supported by the following boards: MKR WiFi 1010, Nano 33 IoT, Portenta H7, Nano RP2040 Connect, Nicla Vision, OPTA WiFi, OPTA RS485, OPTA Lite, GIGA R1 WiFi, Nano ESP32, ESP32

Authentication

Boards can authenticate to the ArduinoIoTCloud servers using 3 methods:

More Repositories

1

NTPClient

Connect to a NTP server
C++
537
star
2

MIDIUSB

A MIDI library over USB, based on PluggableUSB
C++
480
star
3

MadgwickAHRS

Arduino implementation of the MadgwickAHRS algorithm
C++
456
star
4

ArduinoBLE

ArduinoBLE library for Arduino
C++
303
star
5

Ethernet

Ethernet Library for Arduino
C++
253
star
6

ArduinoModbus

C++
248
star
7

LiquidCrystal

Liquid Crystal Library for Arduino
C++
242
star
8

Servo

Servo Library for Arduino
C++
240
star
9

Keyboard

C++
226
star
10

ArduinoMqttClient

ArduinoMqttClient Library for Arduino
C++
186
star
11

SD

SD Library for Arduino
C++
177
star
12

WiFi101

Wifi library for the Arduino WiFi 101 Shield
C
158
star
13

Arduino_JSON

Official JSON Library for Arduino
C
150
star
14

WiFiNINA

C++
138
star
15

USBHost

USB Host Library for Arduino
C++
114
star
16

WiFi

WiFi Library for Arduino
C
107
star
17

Stepper

Stepper Library for Arduino
C++
99
star
18

Arduino_ConnectionHandler

C++
90
star
19

ArduinoRS485

C++
86
star
20

MKRWAN

An Arduino library for sending and receiving data using LoRaWAN protocol and LoRa® radios.
C++
85
star
21

ArduinoBearSSL

Port of BearSSL to Arduino
C
83
star
22

ArduinoLowPower

Powersave features for SAMD boards
C++
82
star
23

RTCZero

RTC Library for SAMD21 based boards
C++
77
star
24

ArduinoECCX08

C++
76
star
25

Arduino_OV767X

Official OV767X Library for Arduino , currently supports OV7670 and OV7675 cameras
C
69
star
26

ArduinoSound

C++
64
star
27

Arduino_DebugUtils

This class provides functionality useful for debugging sketches via printf-style statements.
C++
57
star
28

Mouse

C++
56
star
29

TFT

TFT Library for Arduino
C++
55
star
30

MKRGSM

C++
54
star
31

Audio

Audio Library for Arduino
C++
51
star
32

Scheduler

Scheduler Library for Arduino
C++
46
star
33

AudioFrequencyMeter

Allows the Arduino Zero and MKR1000 to sample a generic input audio signal and get the fundamental pitch
C++
46
star
34

GSM

GSM Library for Arduino
C++
44
star
35

Arduino_Threads

Simple thread-safe IO for parallel sketch execution. [BETA]
C++
43
star
36

Arduino_ESP32_OTA

C++
40
star
37

Arduino_MachineControl

C++
38
star
38

MKRNB

C++
35
star
39

Arduino_LSM9DS1

LSM9DS1 Library for Arduino
C++
34
star
40

ArduinoCloud

Easly connect your Arduino/Genuino board to the Arduino Cloud
C++
32
star
41

ArduinoGraphics

C
31
star
42

Arduino_LSM6DS3

LSM6DS3 Library for Arduino
C++
30
star
43

Arduino_SensorKit

C
28
star
44

Arduino_APDS9960

A library for the APDS9960 sensor, allows you to read gestures, color, and proximity on your Arduino Nano 33 BLE Sense board and other boards with sensor attached via I2C.
C++
26
star
45

ArduinoDMX

C++
22
star
46

Arduino_NineAxesMotion

9 Axes Motion Shield Library
C
20
star
47

Braccio

Arduino Braccio Library
C++
20
star
48

BNO055

C
20
star
49

Arduino_Pro_Tutorials

This library contains the complete Arduino sketches from the Arduino Pro Tutorials found on the Arduino docs website under the Tutorials title of the corresponding product.
C
20
star
50

Arduino_BMI270_BMM150

C
19
star
51

Arduino_OAuth

OAuth 1.0 client library for Arduino
C++
19
star
52

SigFox

Helper library for MKRFox1200 board and ATAB8520E Sigfox module
C++
19
star
53

UnoWiFi-Developer-Edition-Lib

Library for Arduino UNO WiFi Developer Edition
C++
18
star
54

Arduino_LSM6DSOX

C++
18
star
55

LoraNodeShield

Arduino library for LoRa Shield
C
17
star
56

Arduino_MKRIoTCarrier

Use the features included with the Arduino MKR IoT Carrier
C++
17
star
57

ArduinoMotorCarrier

C
16
star
58

WiFi101OTA

Update sketches to your SAMD board over WiFi
C++
16
star
59

Arduino_Portenta_OTA

OTA on the Arduino Portenta.
C++
15
star
60

Arduino_BQ24195

[Beta] Arduino library to control TI BQ24195 PMIC on compatible MKR boards
C++
15
star
61

WiFiLink-Library

Arduino Library WiFi Link
C++
14
star
62

Arduino_KNN

Arduino library for the K-Nearest Neighbors algorithm
C++
14
star
63

Arduino_CRC32

Arduino library providing a simple interface to perform checksum calculations utilizing the CRC-32 algorithm.
C++
14
star
64

Bridge

Bridge Library for Arduino
C++
13
star
65

Arduino_HTS221

HTS221 Library for Arduino
C++
13
star
66

Arduino_MCHPTouch

Use the touch capabilities of Arduino MKR boards and Arduino Nano 33 IoT
C
12
star
67

AudioZero

Allows playing audio files from an SD card. For Arduino Zero and MKR1000 only.
C++
12
star
68

WiFiLink-Firmware

Arduino WiFi Link firmware for ESP8266 based boards
CSS
11
star
69

Arduino_EdgeControl

Arduino Library for Arduino Edge Control
C++
11
star
70

Arduino_UnifiedStorage

Read and write files to flash, USB mass storage and SD cards in a unified way.
C++
11
star
71

RestClient

A REST client for Arduino Zero / MKR1000 derived from https://github.com/csquared/arduino-restclient
C++
11
star
72

Arduino_PortentaBreakout

C++
10
star
73

Robot_Control

Robot Control Library for Arduino
C++
10
star
74

ArduinoCloudThing

C
10
star
75

Arduino_AVRSTL

Arduino library providing STL for ArduinoCore-avr and ArduinoCore-megaavr boards.
C++
9
star
76

Arduino_ScienceJournal

C++
9
star
77

Arduino_PortentaMachineControl

The official, revamped Arduino Library for the Portenta Machine Control.
C++
9
star
78

Arduino_AdvancedAnalog

Advanced Analog Library
C++
8
star
79

RobotIRremote

Robot IR Remote Library for Arduino
C++
8
star
80

Arduino_BHY2

Mirror of https://github.com/arduino/nicla-sense-me-fw , please post any issue there
C
8
star
81

Arduino_MKRGPS

MKRGPS Library for Arduino
C
8
star
82

Modulino

C
8
star
83

WiFi_for_UNOWiFi_rev1

Arduino WiFi Library
C++
7
star
84

Arduino_GigaDisplay_GFX

C++
7
star
85

Arduino_Braccio_plusplus

C
7
star
86

MKRWAN_v2

[Beta] Library for Arduino MKRWAN 1300 / 1310 suitable for firmwares derived from ST sources
C++
7
star
87

Arduino_MultiWiFi

C++
7
star
88

Esplora

Esplora Library for Arduino
C++
7
star
89

Arduino_GigaDisplay

Library for controlling the RGB on the GIGA Display Shield. It contains, also, a set of examples to use the display.
C++
7
star
90

Arduino_MKRMEM

Arduino library providing SPIFFS for the W25Q16DV flash on the MKR MEM shield.
C
7
star
91

Arduino_LPS22HB

LPS22HB Library for Arduino
C++
6
star
92

Robot_Motor

Robot Motor Library for Arduino
C++
6
star
93

Arduino_BuiltIn

Shell Arduino library to provide the standard built-in libraries
C
6
star
94

USBHostGiga

C
6
star
95

Arduino_Perceptron

Arduino library for the Perceptron algorithm.
C++
5
star
96

AlPlc_Opta

Library for Arduino PLC IDE runtime and plugins for Arduino Opta
C++
5
star
97

AlPlc_PMC

Library for Arduino PLC IDE runtime and plugins for Arduino Portenta Machine Control
C++
4
star
98

Ciao

Arduino Ciao Library (MCU side)
C++
4
star
99

MKRIMU

C++
4
star
100

Arduino_CMSIS-DSP

ARM CMSIS DSP repackaged as an Arduino library
Shell
4
star