Professional Documents
Culture Documents
Introduction
Internet of things is a growing network of everyday object-from industrial machine to consumer
goods that can share information and complete tasks while you are busy with other activities.
With advancement of technology, life is getting simpler and easier in all aspects. Home
automation is becoming popular day by day due to numerous advantages. In an industrial setting,
IIoT is key to processes such as predictive maintenance (PdM), enhanced field service, energy
management and asset tracking. Till now the current development shows that the home
automation system is managed by Emails, texts or some other applications. Significant
investments made by the research community and the industry in the Smart Home space has been
a prime focus with the introduction of devices such as Amazon Echo, Google Home, and
Samsung Smart Things among others.
IFTTT is an online service that automates Web-based tasks so that when user-specified events
occur, follow-up tasks are triggered and handled.
MQTT is a publish/subscribe, extremely simple and lightweight messaging protocol which is
ideal for the emerging “machine-to-machine” or “Internet of Things” world of connected devices
where bandwidth and battery power are at a premium.
Adafruit.IO is a cloud service – that makes any project internet connected and displays our data
in real-time by helping our project to connect to other internet enabled devices.
Hardware Used
Amazon Echo Dot is a hands-free smart speaker that is controlled over voice. It connects to
Alexa – a cloud based voice service which is used to control smart home devices, play music,
and set “Routines” to control our devices at scheduled times or with a single voice command.
Lolin NodeMCU V3 is an open source IoT platform-based firmware for the ESP8266 WiFi SOC
from Espressif. The NodeMCU Integrates GPIO, PWM, IIC, 1-Wire and ADC on to a single
board.
Solid State Relay is an electromagnetic switch operated by a relatively small electric current that
can turn on/off individual or group of high-current A.C Home appliances.
TA12-100 is a non-invasive sensor for measuring alternating current. This split-core type of
sensor can be clipped around either a live or a neutral wire (Used for monitoring power
consumption).
The MQ-135 Gas sensor makes it easy to monitor ammonia, benzene, Methane, CO2
concentrations and alcohol air concentration levels using our I2C Mini Module form factor.
BME680 from Bosch contains temperature, humidity, barometric pressure, and VOC gas sensing
capabilities in the environment in one small package.
A passive infrared sensor (PIR sensor) is an electronic sensor that measures infrared (IR) light
radiating from objects in its field of view and triggers a high logic output.
References
1. Dr. Sneha Matriaya, Dr. Ravindra Purwar, Voice Controlled Home Automation Using
Amazon Echo Dot, IOSR Journal of Computer Engineering (IOSR-JCE), e-ISSN:
22780661, p-ISSN: 2278-8727, Volume 20, Issue 3, Ver. III (May. - June. 2018), PP 16-
19.
2. IFTTT: https://ifttt.com/discover
3. https://www.pocketlint.com/SmartHome/SmarHomenews
4. https://learn.adafruit.com/adafruit-io/mqtt-api
5. IoT: https://internetofthingsagenda.techtarget.com/definition /IoT-device
6. https://www.ijarnd.com/manuscripts/v3i3/V3I3-1257.pdf
Speed Monitoring with SMS Alert
Ublox - Arduino
GND - GND
TX - Digital pin (D3)
RX - Digital pin (D4)
Vcc - 3.3 V
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
void setup(){
Serial.begin(9600);
ss.begin(GPSBaud);
}
void loop(){
// This sketch displays information every time a new sentence is correctly encoded.
while (ss.available() > 0){
gps.encode(ss.read());
if (gps.location.isUpdated()){
// Latitude in degrees (double)
Serial.print("Latitude= ");
Serial.print(gps.location.lat(), 6);
// Longitude in degrees (double)
Serial.print(" Longitude= ");
Serial.println(gps.location.lng(), 6);
// Raw latitude in whole degrees
Serial.print("Raw latitude = ");
Serial.print(gps.location.rawLat().negative ? "-" : "+");
Serial.println(gps.location.rawLat().deg);
// ... and billionths (u16/u32)
Serial.println(gps.location.rawLat().billionths);
// Raw longitude in whole degrees
Serial.print("Raw longitude = ");
Serial.print(gps.location.rawLng().negative ? "-" : "+");
Serial.println(gps.location.rawLng().deg);
// ... and billionths (u16/u32)
Serial.println(gps.location.rawLng().billionths);
#include <SoftwareSerial.h>
SoftwareSerial mySerial(9, 10);
void setup()
{
mySerial.begin(9600); // Setting the baud rate of GSM
Serial.begin(9600); // Setting the baud rate of Serial Monitor
delay(100);
}
void loop()
{
if (Serial.available()>0)
switch(Serial.read())
{
case 's': SendMessage(); break;
case 'r': RecieveMessage(); break;
}
if (mySerial.available()>0)
Serial.write(mySerial.read());
}
void SendMessage()
{
mySerial.println("AT+CMGF=1"); //Sets the GSM Module in Text
delay(1000); // Delay of 1000 milli seconds or 1
mySerial.println("AT+CMGS=\"+91xxxxxxxxxx\"\r");
// Replace x with mobile number
delay(1000);
mySerial.println("I am SMS from GSM Module");
// The SMS text you want to send
delay(100);
mySerial.println((char)26);
// ASCII code of CTRL+Z
delay(1000);
}
void RecieveMessage()
{
mySerial.println("AT+CNMI=2,2,0,0,0");
// AT Command to receive a live SMS
delay(1000);
}