Building IoT Applications with Open Source
Tim Spann, Senior Sales Engineer
This week in Apache NiFi, Apache Polaris,
Apache Flink, Apache Kafka, ML, AI,
Streamlit, Jupyter, Apache Iceberg, Python,
Java, LLM, GenAI, Vector DB and Open
Source friends.
https://bit.ly/32dAJft
AI + Streaming Weekly by Tim Spann
Tim Spann
Twitter: @PaasDev // Blog: datainmotion.dev
Senior Sales Engineer, Snowflake
NY/NJ/Philly - Cloud Data + AI Meetups
ex-Zilliz, ex-Pivotal, ex-Cloudera,
ex-StreamNative, ex-Hortonworks.
https://medium.com/@tspann
https://github.com/tspannhw
● Introduction
● Devices
● Iot Apps
● Messaging
● Edge AI
● Demos
This week in Apache NiFi, Apache Flink,
Apache Kafka, ML, AI, Streamlit, Jupyter,
Apache Iceberg, Python, Java, LLM, GenAI,
Vector DB and Open Source friends.
https://bit.ly/32dAJft
AI + All Data Weekly by Tim Spann
DEVICES
Raspberry Pi 5 + AI Kit
Raspberry Pi 5 with 8GB of RAM
The AI Kit adds a neural network inference accelerator capable of 13 tera-operations per
second (TOPS), which is pretty good for $70 US. Attached to this M.2 Hat is the Hailo-8L
M.2 Entry-Level Acceleration Module which will give us our AI powers.
What is it?
https://paperswithcode.com/task/pose-estimation
1,431 papers with code
Human Pose Estimation is a computer vision technique that locates and
estimates things like eyes, ears, shoulders, joints in motion.
It looks pretty cool and has some interesting applications for medical
purposes and robotics. For me, it was one of the cool examples that runs
on the AI Kit.
Pose Estimation by Hailo 8L
Each person is identified and represented by 17 keypoints
Examples
nose, eyes, ears, shoulders, elbows, wrists, hips, knees, and
ankles.
We are tracking eyes and more (updated today)
https://github.com/hailo-ai/hailo_model_zoo/blob/master/docs/public_models/HAILO8/HAILO8_pose_estimation.rst
https://github.com/tensorboy/centerpose
https://softwaremill.com/human-pose-estimation-2023-guide/
Pose Estimation on Hailo 8L
Pose Estimation COCO
Yolov8s_pose
Hailo-8L
https://github.com/ultralytics/ultralytics
HAILO Raspberry Pi 5 Example Apps
https://github.com/hailo-ai/hailo-rpi5-examples
New: CLIP Zero Shot Inference Application
● Just Released AI Kit+ with 26 Tops
● NVIDIA Jetson Series
● Smart Cameras like OAKD
● Specialized Devices
Alternatives
Edge Vector Olympics
Gold - NVIDIA Jetson AGX Orin -
275 TOPS, 2048-core, 64 GB
RAM
Silver - NVIDIA Jetson Xavier NX,
21 TOPS, 384-core, 8 GB RAM
Bronze - Raspberry Pi 5, 13
TOPS, 4-core, 8 GB RAM
● Containers
● 64 bit processors and operating systems
● 8-64 GB Modern RAM
● Fast WiFi / Bluetooth
● 300+ Core GPUs
● eMMC Fast Storage
● TBs of SSD
● Examples: NVIDIA JETSON XAVIER NX,
NVIDIA JETSON ORIN AGX
Edge Computing Power - Edge Server
streamnative.io
Device 1 - AdaFruit Funhouse
• https://github.com/tspannhw/pulsar-adafruit-funhouse
(MQTT)
Raw JSON:
{"pressure": 1009.08,
"button_sel": "off",
"pir_sensor": "off",
"humidity": 36.0422, "temperature": 80.9526,
"button_down": "off", "captouch6": "off",
"captouch7": "off", "button_up": "off", "captouch8": "off",
"light": 6990}
Processor 240MHz / RAM 2+4MB
streamnative.io
Device 2 - Raspberry Pi
• https://github.com/tspannhw/FLiP-Pi-DeltaLake-Thermal
Pulsar Protocol
Raw JSON:
Processor 1.5 GHz, 64-bit quad-core / RAM 2-8 GB LPDDR4-3200 SDRAM
{"uuid": "thrml_zda_20220715182748", "ipaddress": "192.168.1.204",
"cputempf": 108, "runtime": 0, "host": "thermal", "hostname": "thermal",
"macaddress": "e4:5f:01:7c:3f:34", "endtime": "1657909668.7279365",
"te": "0.0007398128509521484", "cpu": 1.8,
"diskusage": "105078.0 MB",
"memory": 9.0, "rowid": "20220715182748_fc4cbbb1-79da-4c1a-8991-78bd23c9f221",
"systemtime": "07/15/2022 14:27:53", "ts": 1657909673,
"starttime": "07/15/2022 14:27:48",
"datetimestamp": "2022-07-15 18:27:52.492469+00:00", "
temperature": 28.238,
"humidity": 29.61, "co2": 992.0}
STREAMING
© 2024 Snowflake Inc. All Rights Reserved 18
IoT to Cloud Data Platform
Source Data
Aggregate Data Analyze Data
Share Data
UNIVERSAL
DATA DISTRIBUTION
(Ingest, Transform, Deliver)
Ingest
Processors
Ingest
Gateway
Router, Filter &
Transform
Processors
Destination
Processors
• Guaranteed delivery
• Data buffering
- Backpressure
- Pressure release
• Prioritized queuing
• Flow specific QoS
- Latency vs. throughput
- Loss tolerance
• Data provenance
• Supports push and pull
models
• Hundreds of processors
• Visual command and
control
• Over a 200 sources
• Flow templates
• Pluggable/multi-role
security
• Designed for extension
• Clustering
• Version Control
DataFlows for Data Ingest, Movement and Routing
• Moving Binary, Unstructured, Image
and Tabular Data
• Enrichment
• Universal Visual Processor
• Simple Event Processor
• Routing
• Feeding data to Central Messaging
• Support for modern protocols
• Kafka Protocol Source/Sink
• Pulsar Protocol Source/Sink
The Power of Apache NiFi
NIFI 2.0 FEATURES
Major Updates:
● Python Integration
● ParameterIZATION
● JDK 21+
● Provenance / Data Lineage
● Rules Engine for Development Assistance
● Additional Azure Processors
● Integration with Zendesk, Slack,
● Database Tables as Schemas
● Amazon Glue Schema Registry
● OpenTelemetry Support
DataFlow is built for Real-Time Integration and AI
Architecture
https://nifi.apache.org/docs/nifi-docs/html/overview.html
23
What is Apache NiFi?
Apache NiFi is a scalable, real-time streaming data
platform that collects, curates, and analyzes data so
customers gain key insights for immediate
actionable intelligence.
Address To Lat/Long
● Python 3.10+
● geopy Library
● Nominatim
● OpenStreetMaps (OSM)
● openstreetmap.org/copyright
● Returns as attributes and JSON file
● Works with partial addresses
● Categorizes location
● Bounding Box
https://github.com/tspannhw/FLaNKAI-Boston
25
Flink SQL
● Streaming Analytics
● Continuous SQL
● Continuous ETL
● Complex Event Processing
● Standard SQL Powered by
Apache Calcite
HuggingFaceTB/SmolLM2-1.7B-Instruct
Small language models (SLMs)
NVIDIA Edge AI / Physical AI Edge Models
Raspberry Pi Edge AI
Edge Models
DEMO
RESOURCES AND WRAP-UP
https://medium.com/@tspann/unstructured-data-processing-with-a-raspberry-pi-ai-kit-c959dd7fff47
Raspberry Pi AI Kit Hailo
Edge AI
https://medium.com/@tspann/from-the-edge-to-the-cloud-and-back-again-01095e95a783
Raspberry Pi AI Kit Hailo
Edge AI Pose Estimation
Code -
https://bit.ly/4ftn04t
Code - Pose Estimation
https://bit.ly/4ebEPUJ
Walk Through Article
https://bit.ly/4hxjvvF
/tspannhw/AIM-BecomingAnAIEngineer:
AIM - Becoming An AI Engineer
https://bit.ly/3BV4IKX
What’s in the Air Tonight Mr. Milvus?
https://bit.ly/4fQhBog
https://medium.com/cloudera-inc/streaming-street-cams-to-yolo-v8-with-python-and-nifi-to-minio-s3-3277e73723ce
Street Cameras
https://github.com/tspannhw https://www.datainmotion.dev/
Conf42_IoT_Dec2024_Building IoT Applications With Open Source

Conf42_IoT_Dec2024_Building IoT Applications With Open Source

  • 1.
    Building IoT Applicationswith Open Source Tim Spann, Senior Sales Engineer
  • 2.
    This week inApache NiFi, Apache Polaris, Apache Flink, Apache Kafka, ML, AI, Streamlit, Jupyter, Apache Iceberg, Python, Java, LLM, GenAI, Vector DB and Open Source friends. https://bit.ly/32dAJft AI + Streaming Weekly by Tim Spann
  • 3.
    Tim Spann Twitter: @PaasDev// Blog: datainmotion.dev Senior Sales Engineer, Snowflake NY/NJ/Philly - Cloud Data + AI Meetups ex-Zilliz, ex-Pivotal, ex-Cloudera, ex-StreamNative, ex-Hortonworks. https://medium.com/@tspann https://github.com/tspannhw
  • 4.
    ● Introduction ● Devices ●Iot Apps ● Messaging ● Edge AI ● Demos
  • 5.
    This week inApache NiFi, Apache Flink, Apache Kafka, ML, AI, Streamlit, Jupyter, Apache Iceberg, Python, Java, LLM, GenAI, Vector DB and Open Source friends. https://bit.ly/32dAJft AI + All Data Weekly by Tim Spann
  • 7.
  • 8.
    Raspberry Pi 5+ AI Kit Raspberry Pi 5 with 8GB of RAM The AI Kit adds a neural network inference accelerator capable of 13 tera-operations per second (TOPS), which is pretty good for $70 US. Attached to this M.2 Hat is the Hailo-8L M.2 Entry-Level Acceleration Module which will give us our AI powers.
  • 9.
    What is it? https://paperswithcode.com/task/pose-estimation 1,431papers with code Human Pose Estimation is a computer vision technique that locates and estimates things like eyes, ears, shoulders, joints in motion. It looks pretty cool and has some interesting applications for medical purposes and robotics. For me, it was one of the cool examples that runs on the AI Kit.
  • 10.
    Pose Estimation byHailo 8L Each person is identified and represented by 17 keypoints Examples nose, eyes, ears, shoulders, elbows, wrists, hips, knees, and ankles. We are tracking eyes and more (updated today) https://github.com/hailo-ai/hailo_model_zoo/blob/master/docs/public_models/HAILO8/HAILO8_pose_estimation.rst https://github.com/tensorboy/centerpose https://softwaremill.com/human-pose-estimation-2023-guide/
  • 11.
    Pose Estimation onHailo 8L Pose Estimation COCO Yolov8s_pose Hailo-8L https://github.com/ultralytics/ultralytics
  • 12.
    HAILO Raspberry Pi5 Example Apps https://github.com/hailo-ai/hailo-rpi5-examples New: CLIP Zero Shot Inference Application
  • 13.
    ● Just ReleasedAI Kit+ with 26 Tops ● NVIDIA Jetson Series ● Smart Cameras like OAKD ● Specialized Devices Alternatives Edge Vector Olympics Gold - NVIDIA Jetson AGX Orin - 275 TOPS, 2048-core, 64 GB RAM Silver - NVIDIA Jetson Xavier NX, 21 TOPS, 384-core, 8 GB RAM Bronze - Raspberry Pi 5, 13 TOPS, 4-core, 8 GB RAM
  • 14.
    ● Containers ● 64bit processors and operating systems ● 8-64 GB Modern RAM ● Fast WiFi / Bluetooth ● 300+ Core GPUs ● eMMC Fast Storage ● TBs of SSD ● Examples: NVIDIA JETSON XAVIER NX, NVIDIA JETSON ORIN AGX Edge Computing Power - Edge Server
  • 15.
    streamnative.io Device 1 -AdaFruit Funhouse • https://github.com/tspannhw/pulsar-adafruit-funhouse (MQTT) Raw JSON: {"pressure": 1009.08, "button_sel": "off", "pir_sensor": "off", "humidity": 36.0422, "temperature": 80.9526, "button_down": "off", "captouch6": "off", "captouch7": "off", "button_up": "off", "captouch8": "off", "light": 6990} Processor 240MHz / RAM 2+4MB
  • 16.
    streamnative.io Device 2 -Raspberry Pi • https://github.com/tspannhw/FLiP-Pi-DeltaLake-Thermal Pulsar Protocol Raw JSON: Processor 1.5 GHz, 64-bit quad-core / RAM 2-8 GB LPDDR4-3200 SDRAM {"uuid": "thrml_zda_20220715182748", "ipaddress": "192.168.1.204", "cputempf": 108, "runtime": 0, "host": "thermal", "hostname": "thermal", "macaddress": "e4:5f:01:7c:3f:34", "endtime": "1657909668.7279365", "te": "0.0007398128509521484", "cpu": 1.8, "diskusage": "105078.0 MB", "memory": 9.0, "rowid": "20220715182748_fc4cbbb1-79da-4c1a-8991-78bd23c9f221", "systemtime": "07/15/2022 14:27:53", "ts": 1657909673, "starttime": "07/15/2022 14:27:48", "datetimestamp": "2022-07-15 18:27:52.492469+00:00", " temperature": 28.238, "humidity": 29.61, "co2": 992.0}
  • 17.
  • 18.
    © 2024 SnowflakeInc. All Rights Reserved 18 IoT to Cloud Data Platform Source Data Aggregate Data Analyze Data Share Data UNIVERSAL DATA DISTRIBUTION (Ingest, Transform, Deliver) Ingest Processors Ingest Gateway Router, Filter & Transform Processors Destination Processors
  • 19.
    • Guaranteed delivery •Data buffering - Backpressure - Pressure release • Prioritized queuing • Flow specific QoS - Latency vs. throughput - Loss tolerance • Data provenance • Supports push and pull models • Hundreds of processors • Visual command and control • Over a 200 sources • Flow templates • Pluggable/multi-role security • Designed for extension • Clustering • Version Control DataFlows for Data Ingest, Movement and Routing
  • 20.
    • Moving Binary,Unstructured, Image and Tabular Data • Enrichment • Universal Visual Processor • Simple Event Processor • Routing • Feeding data to Central Messaging • Support for modern protocols • Kafka Protocol Source/Sink • Pulsar Protocol Source/Sink The Power of Apache NiFi
  • 21.
    NIFI 2.0 FEATURES MajorUpdates: ● Python Integration ● ParameterIZATION ● JDK 21+ ● Provenance / Data Lineage ● Rules Engine for Development Assistance ● Additional Azure Processors ● Integration with Zendesk, Slack, ● Database Tables as Schemas ● Amazon Glue Schema Registry ● OpenTelemetry Support DataFlow is built for Real-Time Integration and AI
  • 22.
  • 23.
    23 What is ApacheNiFi? Apache NiFi is a scalable, real-time streaming data platform that collects, curates, and analyzes data so customers gain key insights for immediate actionable intelligence.
  • 24.
    Address To Lat/Long ●Python 3.10+ ● geopy Library ● Nominatim ● OpenStreetMaps (OSM) ● openstreetmap.org/copyright ● Returns as attributes and JSON file ● Works with partial addresses ● Categorizes location ● Bounding Box https://github.com/tspannhw/FLaNKAI-Boston
  • 25.
    25 Flink SQL ● StreamingAnalytics ● Continuous SQL ● Continuous ETL ● Complex Event Processing ● Standard SQL Powered by Apache Calcite
  • 26.
    HuggingFaceTB/SmolLM2-1.7B-Instruct Small language models(SLMs) NVIDIA Edge AI / Physical AI Edge Models Raspberry Pi Edge AI Edge Models
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
    Code - PoseEstimation https://bit.ly/4ebEPUJ
  • 33.
  • 34.
    /tspannhw/AIM-BecomingAnAIEngineer: AIM - BecomingAn AI Engineer https://bit.ly/3BV4IKX
  • 35.
    What’s in theAir Tonight Mr. Milvus? https://bit.ly/4fQhBog
  • 36.
  • 37.