Skip to content

nightguarder/Arduino_Project-IOT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Arduino_Project-IOT

  • Welcome to my first official Arduino IOT project.
  • The goal of this project is to create a smart-home implementation using my Arduino RP2040.
  • As a start the Arduino will monitor the internal temperature.
  • Future plan is to connect other smart devices and ultimately monitor the whole house.

smart home plan

Todo list

The project is now postponned, because my Arduino connector broke :/

  • Implement all Docker images.
  • Connect Arduino to the MQTT client and publish the data.
  • Visualize data from Arduino on Grafana dashboard
  • Arduino simulator that sends random temperature to MQTT subscriber
  • Start a Telegram bot that will notify you about events.
  • Enable more functionalitios for InfluxDB
  • Improve Grafana dashboards

Issues list

Orion Context Broker

The brain of your IOT network. Orion is a C++ implementation of the NGSIv2 REST API binding developed as a part of the FIWARE platform.

  • To access Orion go to: http://localhost:1026/v2

IOT Agent

An IoT Agent is a component that lets a group of devices sends their data to and be managed from a Context Broker using their own native protocols. The API used here is NGSIv2.

MQTT Broker

MQTT is a publish-subscribe-based messaging protocol used in the internet of Things

  • Serves as a middleman between IOT devices (sensors) and Fiware network. MQTT connection

Telegraf

Telegraf is a server-based agent for collecting and sending all metrics and events from databases, systems, and IoT sensors.

  • The raw data is sent to InfluxDB, therefore you can visualize them in Grafana.
  • How does it work? Telegraf intro

InfluxDB

Smart data collector for your IOT devices.

MongoDB

Simple database image to hold temporary data.

  • Used by the Orion Context Broker to hold context data information such as data entities, subscriptions and registrations
  • Used by the IoT Agent to hold device information such as device URLs and Keys

Grafana

Visually display the data from IOT devices (sensors).

  • By default Grafana will have an InfluxDB configured with the available data.
  • To access grafana go to: http://localhost:30001
    Grafana_display

Prerequsities & References:

Checklist:

  • Installed Docker on your system. previous experience recommended
  • Arduino (RP2040)
    • Arduino device or extensions that can connect to MQTT broker via Wi-fi
  • Postman or cURL command interface
  • Programming skills
  • Patience & time

Setup:

  1. Laptop (PC) should be connected to the same network as Arduino (Hotspot)
  2. ./services start
    • Check if all docker images are running
  3. In new terminal run:
    • MQTT subriber docker logs --tail 10 mosquitto
  • to check if mqtt is running and arduino01 is connected docker run -it --rm --name mosquitto_sub --network fiware_arduino_default --platform linux/amd64 efrecon/mqtt-client:latest sub -h mosquitto -p 1883 -t '/#'
  • to run the subscriber and listen to data incoming from arduino
  1. Run Script
    • temperature_sensor.py
    • door_detection.py

About

Arduino implementation through Fiware IOT infrastructure

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published