Rduinoiot provides an easy way to connect to Arduino Iot Cloud API with R. Functions allow to exploit API methods for many purposes, manage your Arduino devices and dashboards and access to the data produced by sensors and sketches. This is not an official library by Arduino.
InstallationYou can install the development version of Rduinoiot from GitHub with:
# install.packages("devtools")
devtools::install_github("FlavioLeccese92/Rduinoiot")
Authentication
In order to access the API methods you need to create an API key. This can be done by logging into your Arduino Cloud account and going to the page https://cloud.arduino.cc/home/api-keys/
and retrieve corresponding ARDUINO_API_CLIENT_ID
and ARDUINO_API_CLIENT_SECRET
.
library(Rduinoiot)
# Sys.setenv(ARDUINO_API_CLIENT_ID = 'INSERT CLIENT_ID HERE')
# Sys.setenv(ARDUINO_API_CLIENT_SECRET = 'INSERT CLIENT_SECRET HERE')
create_auth_token()
#> v Authorization succeeded
List things associated to the user
Things associated to the user account can be easily accessed using things_list()
. This function will return detailed information, in particular things_id
which are needed to access to properties.
tl = things_list()
#> v Method succeeded
created_at href id name properties_count sketch_id timezone updated_at user_id device_fqbn device_id device_name device_type 2022-08-12 13:49:43 /iot/v1/things/0b18eba2-2aba-4740-8bec-5043403ecdd9 0b18eba2-2aba-4740-8bec-5043403ecdd9 Smart Garden 8 7a8e48be-e77d-401c-8ef7-05bd6e7b4c27 America/New_York 2022-08-12 18:23:38 fd39fa13-cbac-49ac-9316-cbdf452ba1c9 NA NA NA NA 2022-08-12 18:24:07 /iot/v1/things/60ef7770-90c0-4068-ac3d-8a2301c3ac3d 60ef7770-90c0-4068-ac3d-8a2301c3ac3d Home Security Alarm 7 87cbfdec-b965-4a04-814a-232f65ac2f8e America/New_York 2022-08-12 18:42:09 fd39fa13-cbac-49ac-9316-cbdf452ba1c9 NA NA NA NA 2022-08-12 21:57:28 /iot/v1/things/b6822400-2f35-4d93-b3e7-be919bdc5eba b6822400-2f35-4d93-b3e7-be919bdc5eba Personal Weather Station 5 0ef1dc12-dd8f-477e-963a-f7734b5ff141 America/New_York 2022-08-12 21:59:46 fd39fa13-cbac-49ac-9316-cbdf452ba1c9 arduino:samd:mkrwifi1010 fa7ee291-8dc8-4713-92c7-9027969e4aa1 MFA mkrwifi1010 2022-08-12 13:32:16 /iot/v1/things/bc3b2763-a775-4fc8-95da-c03235d47f3a bc3b2763-a775-4fc8-95da-c03235d47f3a Thinking About You 2 3a558c37-f087-47e9-8f01-339b40fc6dd9 America/New_York 2022-08-12 13:40:06 fd39fa13-cbac-49ac-9316-cbdf452ba1c9 NA NA NA NA Real-time sensor data
Reading real-time humidity sensor of one of your devices can be done as follow:
thing_id = "b6822400-2f35-4d93-b3e7-be919bdc5eba"
property_id = "d1134fe1-6519-49f1-afd8-7fe9e891e778" # Humidity
data_ts = things_properties_timeseries(thing_id = thing_id,
property_id = property_id,
desc = FALSE, interval = 3600)
#> v Method succeeded
time value 2022-08-30 09:00:00 31.92613 2022-08-30 10:00:00 32.28989 2022-08-30 11:00:00 32.59562 2022-08-30 12:00:00 32.91097 2022-08-30 13:00:00 33.12977 2022-08-30 14:00:00 33.03801 2022-08-30 15:00:00 32.78237 2022-08-30 16:00:00 31.85849 2022-08-30 17:00:00 31.22132 2022-08-30 18:00:00 31.08187 Plotting the result
A catchy representation of humidity time series can be plotted, for instance, by using the library echarts4r by John Coene:
library(echarts4r)
library(dplyr)
library(lubridate)
data_ts = data_ts %>% mutate(time = with_tz(time, tzone = Sys.timezone()))
data_ts %>%
e_charts(time) %>%
e_line(value, name = "Value", color = "#007BFF", showSymbol = FALSE, smooth = TRUE,
connectNulls = TRUE, animation = FALSE, emphasis = NULL,
lineStyle = list(width = 1)) %>%
e_title(left = 'center', text = "Humidity",
subtext = "Last 1000 values averaged hourly",
textStyle = list(fontWeight = 'lighter')) %>%
e_grid(top = 70, right = 30, left = 50, bottom = 30) %>%
e_x_axis(show = TRUE, type = "time") %>%
e_y_axis(show = TRUE, scale = TRUE) %>%
e_legend(show = FALSE)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4