Smart Blinds- A Home Automation Project - Specifications-II
In my previous post, https://myiotblog.blogspot.com/2016/04/fundemental-parts-of-project.html
I have discussed the first four specifications of my 'Smart Blinds' IoT project.
In this post, I would like to discuss the remaining specifications of my IoT project.
5.Service Specification:
The fifth step in the IoT design methodology is to define the service specifications. Service Specifications define the services in the IoT system, service type, it's input/output, endpoint,schedules, preconditions and finally service effects.
There are two services in my project:
1.The Blynk service, which is used for change of modes of the blinds between open and close
2. A weather API service, for getting information about the temperature, luminosity etc., based on which the automation of the blinds controlled.
Blynk Service:
In this service, the Blynk Application installed on the mobile phone from which the user is able to control the blinds operation. It is used to interact and communicate with the Arduino to perform control actions so that user can remotely operate the blinds. It provides an interface as a mobile application where the user can give the inputs and can provide commands for the actions to be done. This one is secure as it provides a secure Auth Key for each and every project we created and with this access key only we can communicate securely.
1. We can track the position of the blinds using the display widget- 'Labeled Value'
2. Also, can continuously view the room temperature and the heat sink values which are displayed on the 'LCD display'.
3. Used the 'Menu' Widget to select the actions to either open or close of the blinds.
4. Provided the user with the option to preset the control of blinds at a particular time using the 'Timer' widget.
The below diagram is the pictographic representation of the Blynk Service:
Weather API service:
In this service, from the openweather API we can get information about the wind, humidity, and the temperature at our place using the python programming from Raspberry pi.
Based on which the operation of the blinds is automated. If the temperature is beyond the threshold then the blinds will be closed or else opened.
The below diagram is the pictographic representation of the Weather API Service:
Functional View Specification:
Goals:
1. To remotely access the control of blinds when we are away from home.
2. To automate the position of blinds based on the external climatic factors
3. To automate the position of blinds based on the internal room conditions.
Targeted Area:
Home and work area where it's needed to control the process remotely and automate the process to avoid any sort of risk to the kids, pets, and plants.
Modules:
The overall project is divided into three modules:
1. Remote control of the blinds by the user on his wish.
2. Automatic control of the blinds based on the information of the external climate from the openweather API.
3. Automatic control of the blinds based on the room temperature extracted from DHT11 sensor.
Device: The devices that are used for this project include the raspberry pi2, NodeMCU with ESP8266, Rotational servo motor, a Photo Resistor, DHT11 sensor.
Communication: The communications used in this project include the serial communication, restful web services, MQTT communication to transfer information about the blinds position to Raspberry pi where this streams data to the InitialState cloud server through the HTTP communication which is secured with the Authentication keys. Also used the HTTP protocol for extracting information from the open weather API.
Services: The different services in this project are the monitor, control services which are explained in the above Service Specification section.
Management: The different managemental things include the installations, configuration of all the different software's that are needed which includes the BLYNK app, the blynk libraries that are needed for the communication to and from NodeMCU. The different python packages to communicate with the weather API and InitialState Cloud server.
Security: The security for the project is minimal as it operates under the secured home network, but still should have the basic user authentication for the BLYNK application, access to the OpenWeather API, and the InitialState Cloud server. All these require the authentication key in order to have access to them in my project which results in a secured environment.
Application: In my project, the application deployed locally on the NodeMCU, python programs on Raspberry Pi2 device and can be accessible remotely from BLYNK app and also can set timers to control the blinds.
Operational View Specification:
From this specification, we can have a clear view of project how it is realized based on various factors like the service hosting, storage, devices etc.,
Services:
Storage: All the data is stored in the InitialState cloud and there only dashboards are created to analyze the different factors which are extracted from weather API and data valuesfrom the sensors.
Devices:
Application:
Communications Protocols:
Security:
Authentication and Access keys for:
Management:
Blynk Integration:
Rotational Servo Motor:
Blynk Service Integration:
Weather API Service Integration:
This Concludes the Specifications of my project. In my next post I would report a complete report of my project which also includes my further enhancements and anticipation of this project extension to the 'Green House'.
Code:
My entire project code is present at this link:
https://github.com/jyothi-lanka/IoT/tree/master/SmartBlindsProject
References:
TextBook:
In my previous post, https://myiotblog.blogspot.com/2016/04/fundemental-parts-of-project.html
I have discussed the first four specifications of my 'Smart Blinds' IoT project.
In this post, I would like to discuss the remaining specifications of my IoT project.
5.Service Specification:
The fifth step in the IoT design methodology is to define the service specifications. Service Specifications define the services in the IoT system, service type, it's input/output, endpoint,schedules, preconditions and finally service effects.
There are two services in my project:
1.The Blynk service, which is used for change of modes of the blinds between open and close
2. A weather API service, for getting information about the temperature, luminosity etc., based on which the automation of the blinds controlled.
Blynk Service:
In this service, the Blynk Application installed on the mobile phone from which the user is able to control the blinds operation. It is used to interact and communicate with the Arduino to perform control actions so that user can remotely operate the blinds. It provides an interface as a mobile application where the user can give the inputs and can provide commands for the actions to be done. This one is secure as it provides a secure Auth Key for each and every project we created and with this access key only we can communicate securely.
1. We can track the position of the blinds using the display widget- 'Labeled Value'
2. Also, can continuously view the room temperature and the heat sink values which are displayed on the 'LCD display'.
3. Used the 'Menu' Widget to select the actions to either open or close of the blinds.
4. Provided the user with the option to preset the control of blinds at a particular time using the 'Timer' widget.
The below diagram is the pictographic representation of the Blynk Service:
Weather API service:
In this service, from the openweather API we can get information about the wind, humidity, and the temperature at our place using the python programming from Raspberry pi.
Based on which the operation of the blinds is automated. If the temperature is beyond the threshold then the blinds will be closed or else opened.
The below diagram is the pictographic representation of the Weather API Service:
Functional View Specification:
Goals:
1. To remotely access the control of blinds when we are away from home.
2. To automate the position of blinds based on the external climatic factors
3. To automate the position of blinds based on the internal room conditions.
Targeted Area:
Home and work area where it's needed to control the process remotely and automate the process to avoid any sort of risk to the kids, pets, and plants.
The overall project is divided into three modules:
1. Remote control of the blinds by the user on his wish.
2. Automatic control of the blinds based on the information of the external climate from the openweather API.
3. Automatic control of the blinds based on the room temperature extracted from DHT11 sensor.
Device: The devices that are used for this project include the raspberry pi2, NodeMCU with ESP8266, Rotational servo motor, a Photo Resistor, DHT11 sensor.
Communication: The communications used in this project include the serial communication, restful web services, MQTT communication to transfer information about the blinds position to Raspberry pi where this streams data to the InitialState cloud server through the HTTP communication which is secured with the Authentication keys. Also used the HTTP protocol for extracting information from the open weather API.
Services: The different services in this project are the monitor, control services which are explained in the above Service Specification section.
Management: The different managemental things include the installations, configuration of all the different software's that are needed which includes the BLYNK app, the blynk libraries that are needed for the communication to and from NodeMCU. The different python packages to communicate with the weather API and InitialState Cloud server.
Security: The security for the project is minimal as it operates under the secured home network, but still should have the basic user authentication for the BLYNK application, access to the OpenWeather API, and the InitialState Cloud server. All these require the authentication key in order to have access to them in my project which results in a secured environment.
Operational View Specification:
From this specification, we can have a clear view of project how it is realized based on various factors like the service hosting, storage, devices etc.,
Services:
- Blynk Service: Service used to control the blinds position from Blynk, a Mobile application
- Weather API service: Service which is used to extract the data (temperature, humidity, wind speed) from Open Weather API based on which the blinds position is automated.
Devices:
- Raspberry pi2
- NodeMCU with ESP8266
- Rotational servo motor
- Photo Resistor
- DHT11 sensor
Application:
- Mobile Application - Blynk app
- Web API - OpenWeather API
- Web Dashboard - InitialState
- MQTT Server - Mosquiito Interface
Communications Protocols:
- Link Layer: Wireless LAN(802.11)
- Network Layer: IPv4
- Transport: TCP
- Application: HTTP, HTTPS,MQTT
Security:
Authentication and Access keys for:
- BLYNK app
- InitialState Dashboards
- OpenWeather API.
Management:
- Mobile Application Management : Blynk App
- Web Application Management : Initial State Dashboard
- Device Management: Raspberry Pi2, NodeMCU with ESP8266, Servo motor
- Server Management: MQTT server, Mosquitto for MQTT UI.
- DataBase Management: Initial State Cloud
Blynk Integration:
Blynk Basic operation |
Rotational Servo Motor:
Rotational Servo Motor
DHT11 Sensor
DHT11 sensor connection with the raspberrypi2
|
Blynk Service Integration:
In this service operation, the user controls the operation of blinds using the Blynk App. Based on the commands from the Blynk application the NodeMCU controls the direction,speed and rotation of the servo motor which will either open or close the blinds. Once done, then this change in the blinds position is recorded and published to the topic 'BlindsPosition' through MQTT protocol to the MQTT server where the Pi acts as the MQTT broker. Simultaneously, a python program is running on Pi which subscribes to the 'BlindsPosition' topic and continuously checks for messages. If any message published to the topic it subscribes and streamed the data to the 'InitialState' Cloud Storage.
There in dashboards are created to constantly monitor the blinds position.
Blinds Dashboard |
Blinds Positon Data |
Weather API Service Integration:
In this service operation, the controls of the operation of blinds made automatic which was based on the external climatic conditions. It's based on two factors. one the time of the day and other the temperature. The use case diagram for this as below.
First checks whether its day or night and then checks if the temperature is greater than the threshold.
Based on these conditions the operation of blinds made automatic. The external data is extracted from the open weather API which is secured as it required the authentication key. A python program is coded which is running on Raspberry Pi extracts data from weather API for every 1 minute. It streamed the data to the 'InitialState' Cloud Storage. Also, continuously checks the conditions and if the temperature exceeds the threshold then published to the topic the command 'close' to the topic through MQTT protocol to the MQTT server where the Pi acts as the MQTT broker. Simultaneously, a program is running on NodeMCU which subscribes to the topic and continuously checks for messages. Based on the message it sends the control signals to the motor and then publishes to topic 'BlindsPosition' through MQTT protocol the position of blinds.
There are dashboards also created to constantly monitor the external conditions.
External Climatic Conditions Dashboard |
External Conditions Data |
This Concludes the Specifications of my project. In my next post I would report a complete report of my project which also includes my further enhancements and anticipation of this project extension to the 'Green House'.
Code:
My entire project code is present at this link:
https://github.com/jyothi-lanka/IoT/tree/master/SmartBlindsProject
References:
TextBook:
- Internet of Things: A Hands-On Approach By Arshdeep Bahga, Vijay Madisetti
- Enabling Things to Talk- Designing IoT solutions with the IoT Architectural Reference Model Editors: Alessandro Bassi, Martin Bauer, Martin Fiedler, Thorsten Kramp, Rob van Kranenburg, Sebastian Lange, Stefan Meissner
Did you intend to post something on this page?
ReplyDeleteYes, I need to update the page with my work from my documents
DeleteDear Professor, I have updated the page with my work. Please could you recorrect it
DeleteGreat Article
ReplyDeleteInternet of Things Final Year Project
Final Year Project Centers in Chennai