This library provides interaction with the Arduino IoT Cloud MQTT broker and It can be used both from the browser and Node.js
It allows to connect in two different modes:
The main features of this module are:
If you are looking for a way to create, read, update, delete resources (like Devices , Things, Properties, Data Timeseries, ecc...) please check the official Javascript Rest API client.
If you want to learn more about Arduino IoT Cloud architecture, check the official getting started documentation.
Via NPM
$ npm install arduino-iot-js
Via Yarn
$ yarn add arduino-iot-js
The MQTT connection relies on Username / Password authentication.
Under the hood, this module could uses your user ID (plus a timestamp) as Username and a valid JWT Token as Password when needs to connect to every properties (You can use either a valid JWT token or just your API Credentials) or some device credentials.
import { ArduinoIoTCloud } from 'arduino-iot-js';
(async () => {
const client = await ArduinoIoTCloud.connect({
clientId: 'YOUR_CLIENT_ID',
clientSecret: 'YOUR_CLIENT_SECRET',
onDisconnect: (message) => console.error(message),
});
// Send a value to a thing property
const value = 'some value';
client.sendProperty('YOUR_THING_ID', 'YOUR_VARIABLE_NAME', value);
// Listen to a thing property's changes
client.onPropertyValue('YOUR_THING_ID', 'ANOTHER_VARIABLE_NAME', (value) => console.log(value));
})();
import { ArduinoIoTCloud } from 'arduino-iot-js';
async function retrieveUserToken() {
// Retrieve JWT Token here
}
(async () => {
const token = await retrieveUserToken();
const client = await ArduinoIoTCloud.connect({
token,
onDisconnect: (message) => console.error(message),
});
// Send a value to a thing property
const value = 'some value';
client.sendProperty('YOUR_THING_ID', 'YOUR_VARIABLE_NAME', value);
// Listen to a thing property's changes
client.onPropertyValue('YOUR_THING_ID', 'ANOTHER_VARIABLE_NAME', (value) => console.log(value));
})();
import { ArduinoIoTCloud } from 'arduino-iot-js';
(async () => {
const client = await ArduinoIoTCloud.connect({
deviceId: 'YOUR_DEVICE_ID',
secretKey: 'YOUR_SECRET_KEY',
onDisconnect: (message) => console.error(message),
});
// Send property's values as a device
const value = 'some value';
client.sendProperty('YOUR_VARIABLE_NAME', value);
// Listen property's updates
client.onPropertyValue('ANOTHER_VARIABLE_NAME', (value) => console.log(value));
})();