Successfully reported this slideshow.
Your SlideShare is downloading. ×

Start Automating InfluxDB Deployments at the Edge with balena

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 54 Ad

Start Automating InfluxDB Deployments at the Edge with balena

Download to read offline

balena.io helps companies develop, deploy, update, and manage IoT devices. By using Linux containers and other cloud technologies, balena enables teams to quickly and easily build fleets of connected devices. Developers are able to use containers with the language of choice and pull IoT sensor data from 70+ different single board computers into balenaCloud. Discover how to use balena.io to automate your InfluxDB deployments at the edge!

During this one-hour session, experts from balena and InfluxData will demonstrate how to build and deploy your own air quality IoT solution. You will learn:
The fundamentals of IoT sensor deployment and management using balena.
How to use a time series platform to collect and visualize metrics from edge devices.
Tips and tricks to using balenaCloud to automate InfluxDB deployments and Telegraf configurations.
How to use InfluxDB's Edge Data Replication feature to collect sensor data and push it to InfluxDB Cloud for analysis.

No coding experience required, just a curiosity to start your own IoT adventure.

balena.io helps companies develop, deploy, update, and manage IoT devices. By using Linux containers and other cloud technologies, balena enables teams to quickly and easily build fleets of connected devices. Developers are able to use containers with the language of choice and pull IoT sensor data from 70+ different single board computers into balenaCloud. Discover how to use balena.io to automate your InfluxDB deployments at the edge!

During this one-hour session, experts from balena and InfluxData will demonstrate how to build and deploy your own air quality IoT solution. You will learn:
The fundamentals of IoT sensor deployment and management using balena.
How to use a time series platform to collect and visualize metrics from edge devices.
Tips and tricks to using balenaCloud to automate InfluxDB deployments and Telegraf configurations.
How to use InfluxDB's Edge Data Replication feature to collect sensor data and push it to InfluxDB Cloud for analysis.

No coding experience required, just a curiosity to start your own IoT adventure.

Advertisement
Advertisement

More Related Content

Slideshows for you (20)

Similar to Start Automating InfluxDB Deployments at the Edge with balena (20)

Advertisement

More from InfluxData (20)

Recently uploaded (20)

Advertisement

Start Automating InfluxDB Deployments at the Edge with balena

  1. 1. | © Copyright 2023, InfluxData Start Automating InfluxDB Deployments at the Edge with balena January 24, 2023
  2. 2. | © Copyright 2023, InfluxData Past life: Sales Engineer for IIoT Solutions. Passion: Autonomous and Vision based projects. Driven: To make IoT accessible to all. Belief: Industrial IoT’s success belongs to the domain experts. Jay Clifford Developer Advocate, InfluxData
  3. 3. | © Copyright 2023, InfluxData Past life: IoT and Smart Cities during the last 15 years. Passion: Educative IoT devices. Driven: Make the planet a better place with IoT. Belief: IoT success will come when everyone will collaborate. Marc Pous IoT Giant Developer Advocate, balena.io
  4. 4. | © Copyright 2023, InfluxData Part 3 Edge Data Replication and analysing our data in the cloud. Part 2 Intro to balenAir Part 4 Demo and next steps! Part 1 What is balena? 4
  5. 5. | © Copyright 2023, InfluxData What is balena?
  6. 6. | © Copyright 2023, InfluxData balena - Anyone? 6
  7. 7. | © Copyright 2023, InfluxData 7 balena - Anyone?
  8. 8. | © Copyright 2023, InfluxData 8 balena - At a Glance “Platform built to develop, deploy, and manage fleets of connected devices at scale.”
  9. 9. | © Copyright 2023, InfluxData 9 balena - Fleet Management
  10. 10. | © Copyright 2023, InfluxData 10 balena - Fleet Management
  11. 11. | © Copyright 2023, InfluxData 11 balena - Fleet Management
  12. 12. | © Copyright 2023, InfluxData balena - At a Glance 12
  13. 13. | © Copyright 2023, InfluxData balena - At a Glance 13
  14. 14. | © Copyright 2023, InfluxData balena - At a Glance 14
  15. 15. | © Copyright 2023, InfluxData balena - At a Glance 15 . . .
  16. 16. | © Copyright 2023, InfluxData balena - At a Glance . . . 16 https://hub.balena.io/organizations/marc6/apps/MING
  17. 17. | © Copyright 2023, InfluxData balena - At a Glance 17 . . .
  18. 18. | © Copyright 2023, InfluxData balena - At a Glance . . . 18
  19. 19. | © Copyright 2023, InfluxData balena - What is a Block 19 https://blog.balena.io/introducing-balenablocks-jumpstart-your-iot-app-development/
  20. 20. | © Copyright 2023, InfluxData balena - Connector Block 20 https://hub.balena.io/organizations/balenalabs/blocks/connector The connector block wraps Telegraf in code which discovers and intelligently connects data sources and sinks. For example, the connector block will find an MQTT broker running on the device and subscribe to a sensor topic. An application developer can simply send JSON-formatted data to this topic and it will be ingested by connector. Similarly, the block will find an instance of InfluxDB running on the device, and send any ingested data to it. The use of environment variables allows a developer or fleet owner to enable lots of other data sources and sinks, both on the device and externally hosted. https://github.com/balena-labs-projects/connector
  21. 21. | © Copyright 2023, InfluxData balenAir
  22. 22. | © Copyright 2023, InfluxData What is balenAir ? A “build it yourself” Indoor Air Quality Device - IAQ. Motivation: Dedicated to making environmental information visibly more accessible. | open source | highly customizable | | easy to use | privacy | IAQ = (C02, VOC and particulate sensors) 0 (best air quality) - 99 (hazardous) 22
  23. 23. | © Copyright 2023, InfluxData Sensors and Hardware PMSA003I SCD-40 Raspberry PI 3 / 4b SparkFun Qwiic LED Stick 23
  24. 24. | © Copyright 2023, InfluxData Demo Architecture IAQ MQTT Broker Connector InfluxDB Grafana Edge downsampled co2 24
  25. 25. | © Copyright 2023, InfluxData Edge Data Replication
  26. 26. | © Copyright 2023, InfluxData Cloud Edge generator northbound Write Endpoint replication queue 26 Telegraf
  27. 27. | © Copyright 2023, InfluxData Analyzing our data in the cloud
  28. 28. | © Copyright 2023, InfluxData A functional language designed for querying, analyzing, and acting on data. Flux 28
  29. 29. | © Copyright 2023, InfluxData Anomaly Detection Forecasting 29
  30. 30. | © Copyright 2023, InfluxData Let’s start!
  31. 31. | © Copyright 2023, InfluxData Deployment with balena 31
  32. 32. | © Copyright 2023, InfluxData Tips and Tricks
  33. 33. | © Copyright 2023, InfluxData 33 Connector block tips & tricks https://github.com/balena-labs-projects/connector
  34. 34. | © Copyright 2023, InfluxData 34 Unsupervised and rule-based time series anomaly detection The ADTK package allows you to easily build an effective detection model from a variety or rule-based anomaly detection methods. “Prophet is a procedure for forecasting time series data based on an additive model where non-linear trends are fit with yearly, weekly, and daily seasonality, plus holiday effects.” A Neural Network based Time-Series model, inspired by Facebook Prophet and AR-Net (Autoregressive neural network), built on PyTorch. “A new library to analyze time series data. Kats is a lightweight, easy-to-use, and generalizable framework for generic time series analysis” Anomaly Detection Toolkit (ADTK) FB Prophet Neural Prophet Kats Favourite Python Libraries
  35. 35. | © Copyright 2023, InfluxData What next?
  36. 36. | © Copyright 2023, InfluxData Balena Hub 36 https://hub.balena.io/organizations/g_jay_clifford/apps/balenAir_InfluxDB_V2 https://forums.balena.io
  37. 37. | © Copyright 2023, InfluxData https://influxdbu.com/ https://influxcommunity.slack.com/ Learning and Community 37
  38. 38. | © Copyright 2023, InfluxData Any Questions?
  39. 39. | © Copyright 2023, InfluxData www.influxdata.com
  40. 40. | © Copyright 2023, InfluxData Step-by-step tutorial
  41. 41. | © Copyright 2023, InfluxData Deployment with balena 41
  42. 42. | © Copyright 2023, InfluxData Deployment with balena https://github.com/InfluxCommunity/balenair/ 42
  43. 43. | © Copyright 2023, InfluxData Deployment with balena https://github.com/InfluxCommunity/balenair/blob/master/docker-compose.yml 43
  44. 44. | © Copyright 2023, InfluxData Deployment with balena → flux https://github.com/InfluxCommunity/balenair/blob/master/docker-compose.yml 44
  45. 45. | © Copyright 2023, InfluxData Deployment with balena 45
  46. 46. | © Copyright 2023, InfluxData Deployment with balena 46
  47. 47. | © Copyright 2023, InfluxData Deployment with balena 47
  48. 48. | © Copyright 2023, InfluxData Deployment with balena 48
  49. 49. | © Copyright 2023, InfluxData Deployment with balena 49
  50. 50. | © Copyright 2023, InfluxData Deployment with balena 50
  51. 51. | © Copyright 2023, InfluxData Deployment with balena 51
  52. 52. | © Copyright 2023, InfluxData Deployment with balena 52
  53. 53. | © Copyright 2023, InfluxData InfluxDB Cloud 53
  54. 54. | © Copyright 2023, InfluxData InfluxDB Cloud 54 from(bucket: "C02-Demo") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "mqtt_consumer") |> filter(fn: (r) => r["_field"] == "co2") |> filter(fn: (r) => r["location"] == "ES") |> aggregateWindow(every: 30s, fn: mean, createEmpty: false ) |> yield(name: "actual") |> holtWinters(n: 8, interval: 30s, withFit: true) |> yield(name: "forcast") import "contrib/anaisdg/anomalydetection" from(bucket: "C02-Demo") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "mqtt_consumer") |> filter(fn: (r) => r["_field"] == "co2") |> anomalydetection.mad(threshold: 3.0) |> filter(fn: (r) => r["level"] == "anomaly") // Notice how you can filter for the actual MAD value to better discover anomalous series. |> filter(fn: (r) => r["MAD"] > 3.0) |> group(columns: ["location"], mode:"by") |> aggregateWindow(every: 1m, fn: count, createEmpty: false ) |> yield()

×