Professional Documents
Culture Documents
Software Design
Software Design
https://makeradvisor.com/best-raspberry-pi-3-starter-kits/
MyQSL Database
https://www.baldengineer.com/mqtt-tutorial.html
MQTT NodeMCU
https://www.allaboutcircuits.com/projects/introduction-to-the-mqtt-protocol-on-nodemcu/
https://www.makeuseof.com/tag/setting-wireless-networking-raspberry-pi/
https://iotbytes.wordpress.com/store-mqtt-data-from-sensors-into-sql-database/
The client is a program or a computer with software that relies on
making service requests to a server. The server is a computer
program or a device that can accept these requests, process them,
and return the requested information to the client.
https://www.instructables.com/lesson/Connecting-Your-Raspberry-Pi-to-the-Web/
http://mqtt.org/faq
What is MQTT?
MQTT stands for MQ Telemetry Transport. It is a publish/subscribe, extremely simple
and lightweight messaging protocol, designed for constrained devices and low-
bandwidth, high-latency or unreliable networks. The design principles are to
minimise network bandwidth and device resource requirements whilst also
attempting to ensure reliability and some degree of assurance of delivery. These
principles also turn out to make the protocol ideal of the emerging “machine-to-
machine” (M2M) or “Internet of Things” world of connected devices, and for mobile
applications where bandwidth and battery power are at a premium.
https://diyprojects.io/mqtt-mosquitto-communicating-connected-objects-iot/#.XHjrCogzbIU
Software Design
Arduino IDE
Used to configure the operation of the NodeMCU before it is launched at actual operation????LMAO
Mosquito Broker
https://www.hivemq.com/blog/mqtt-essentials-part-3-client-broker-connection-establishment/
https://mosquitto.org/
Eclipse Mosquitto is an open source (EPL/EDL licensed) message broker that implements
the MQTT protocol versions 3.1 and 3.1.1. Mosquitto is lightweight and is suitable for
use on all devices from low power single board computers to full servers.
The MQTT protocol provides a lightweight method of carrying out messaging using a
publish/subscribe model. This makes it suitable for Internet of Things messaging such as
with low power sensors or mobile devices such as phones, embedded computers or
microcontrollers.
The Mosquitto project also provides a C library for implementing MQTT clients, and the
very popular mosquitto_pub and mosquitto_sub command line MQTT clients.
https://www.digitalocean.com/community/questions/how-to-setup-a-mosquitto-mqtt-
server-and-receive-data-from-owntracks
https://diyprojects.io/mqtt-mosquitto-communicating-connected-objects-iot/#.XHjrCogzbIU
http://www.steves-internet-guide.com/mqtt-hosting-brokers-and-servers/
Lightweight open source broker written in C. Probably the most popular MQTT
broker.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Open source IoT Platform Comparison Table
Hardware Design
The ESP8266 (ESP-12E) WiFi IoT Development Board, also known as NodeMCU 1.0, is an open source
IoT Hardware Development Board based on the ESP8266 12-E Wi-Fi SoC. This allows the ESP8266
Development Board to communicate with other devices on the internet, making it the brains and
communications system in an IoT system. The NodeMCU has a microUSB port to connect to a computer
for serial communication, which is used to upload codes into the ESP8266.
For this research, the noise sensing circuit will connect to the ADC (Analog to Digital Conversion) pin of
the NodeMCU. ADC is a special pin that allows the ESP8266 to read analog values as well as control
analog devices.
Software Design
Arduino IDE
From the Arduino website, “the Arduino Integrated Development Environment - or Arduino Software
(IDE) - contains a text editor for writing code, a message area, a text console, a toolbar with buttons for
common functions and a series of menus.” The ESP8266 Library would be used to set the operation of the
NodeMCU as a client or a server. The researchers decided to utilize this for its operation and
implementation has been familiarized.
Thingsboard is an open source IoT platform that provides data collection, processing, visualization and
device management for IoT projects. The protocols used to allow device connectivity and data collection
are MQTT, HTTP and CoAP. Additionally, it supports both on-premises and deployments and cloud.
There are at least 30 customizable widgets that enables user to custom dashboards for IoT purposes.
The researchers decided to utilize this platform for it features real-time data visualization, plenty
widgets to customize the dashboards, including an alarm widget which isn’t featured in other platforms,
and more importantly, it is free.
Device management made adding and deleting devices, browsing device telemetry and browsing device
alarms possible in just one platform. This is due to the feature of Thingsboard of working with telemetry
data. Another feature is the “Rule Engine”. Data processing rules may be configured before it can be
used, such as setting a threshold value, which is the essential part of the current research.
Thingsboard allows users to customize the dashboard which may contain multiple widgets that visualize
data from multiple IoT devices. The widgets to be used would be time-series widget to display historical
or latest noise value in a certain time period, and alarm widget to display alarms that were set by the
configured rule of being triggered when noise value exceeded the threshold value.
Once an alarm widget is placed on the dashboard, and a rule has been configured that the alarm is
triggered once the telemetry value exceeds the threshold value, the set opreation will be executed
when the conditions are met, which will then enable of sending a notification for the librarian to see
where the noise is coming from.
Thingsboard is a 100% Open source IoT platform and can host it as a SaaS or PaaS solution. IT provides
device management, data collection, processing and visualization for your IoT projects. The standard
protocols it supports for providing device connectivity are MQTT, CoAP and HTTP and supports both
cloud and on-premises deployments. It gives more than 30 customizable widgets allows you to build end-
user custom dashboards for most IoT use-cases.
ThingsBoard is an open-source server-side platform that allows you to monitor and control IoT
devices. It is free for both personal and commercial usage and you can deploy it anywhere.
For each station, the noise sensing circuit is connected to the NodeMCU. NodeMCU
Telemetry Service is responsible for persisting attributes data to internal data storage;
provides server-side API to query and subscribe for attribute updates.
ThingsBoard uses either Cassandra NoSQL database or SQL database to store all
data.
Although you can query the database directly, ThingsBoard provides a set of RESTful
and Websocket API that simplify this process and apply certain security policies:
Tenant Administrator user is able to manage attributes for all entities that belong to the
corresponding tenant.
Customer user is able to manage attributes only for entities that are assigned to the
corresponding customer
MQTT Protocol
Hardware – sensors
Connectivity – Sensors transmit the data to the cloud through ESP8266 NodeMCU
There can be an intermediate step between hardware and connecting to the cloud, such as a gateway or
router.
Software – is hosted in the cloud and is responsible for analyzing the data its collecting from the sensors
and making decisions.
https://searchsqlserver.techtarget.com/definition/database
ThingsBoard
Supporting the most popular communication protocols, ThingsBoard is
standard, all-rounder open IoT platform. It will help you collect and store
sensor data, define algorithms to process a big amount of data, and set up
rules on how the platform should react. You can set triggers for actions to
happen when a platform gets certain readings and alarms to get off if
necessary. The ThingsBoard also has a pretty nice means to create
dashboards and the rules engine can be used by people with little to no
programming experience.
https://dzone.com/articles/ultimate-list-of-30-iot-platforms-for-your-iot-pro
Generally, something that happens “in The Cloud” is any activity that takes
place over an internet connection instead of on the device itself.
https://www.iotforall.com/what-is-the-cloud/