INTERNSHIP REPORT
ON
“INTERNET OF THINGS”
Submitted in the partial fulfillment of the requirement for the
Ee ere
BACHELOR OF TECHNOLOGY
IN
ELECTRONICS & COMMUNICATION ENGINE:
AT Tis By Rta ied
DR. RAKESH JOON NL SNP
HOD , ECE 20ECEO30
eur
Reema tect
Cry
(Director Of cas)
DEPARTMENT OF ELECTRONICS & COMMUNICATION ENGINEERING
GANGA INSTITUTE OF TECHNOLOGY & MANAGEMENGANGA INSTITUTE OF TECHNOLOGY AND MANAGEMENT
SESSION — 2019-2023
A PROJECT REPORT ON
INTERNET OF THINGS
Submitted to
DR. RAKESH JOON
(HOD, ECE)
By
VIVEK ANAND
(19ECE030)
in partial fulfillment for the award of the degree
Of
BACHELOR TECHNOLOGY
IN
ELECTRONIC & COMMUNICATION ENGINEERING
GANGA INSTITUTE OF TECHNOLOGY AND MANAGEMENT
JHAJJAR, HARYANAGANGA INSTITUTE OF TECHNOLOGY AND MANAGEMENT
JHAJJAR, HARYANA
DECLARATION BY THE CANDIDATE
| Vivek Anand, hereby declare that | have completed my six weeks summer training at CQS
Training Pvt. Ltd. from 21° August 2021 to 5" October 2021 under the guidance of
MrShekhar Bhatia.l have declare that | have worked with full dedication during these six
weeks of training and my learning outcomes fulfill the requirements of training for the
award of degree of ELECTRONICS AND COMMUNICATIOMN ENGINEERING, Ganga Institute
of Technology and Management, kablana, Jhajjar, Haryana
Date:
Place : DELHI
Name of Student : Vivek Anand
Roll no : 19ECE030
B.Tech ECE 5"" SemCERTIFICATE
Cristo No, 2021122 teret OF Things2286
c@s
CAREER QUEST SOLUTIONS
Certificate of Participation
7 = Rises
take pls sri th candida hs Patpted a
Internship On 1OT
From 21st August 2021 to 5th October 2021
QS Training Me Ld
-1624, Block BI, Jah, Delhi
10088
weg coe,ACKNOWLEDGEMENT
Many individuals have contributed to this report with their advice, interest, time and support.
| would like to thanks my worthy guide Mr. Shekhar Bhatia (Director of CQS Training Pvt. Ltd.)
Who supervised me to complete this project. His technical advice, ideas and constructive
criticism contributed to the success of this report. He suggested me many ideas and solved
my problems when | was in need. His motivation and help has been of great inspiration to
me.
| would also thanks my respected HOD (ECE) and faculty members of ECE department for
providing me the opportunities, support and the necessary help to complete this project
work.
Name of Student: Vivek Anand
Roll no: 19ECEO30
B.Tech ECE 5" SemINDEX
S.no
TOPIC
DATE
REMARKAbstract
This report is detailed overview of my internship journey at CS Training Pvt. Ltd. During my
internship | have learned a lot about communication, software testing, programing and
there different applications. | have known about the workflow of import based companies
along with the function the microprocessor and sensors. | have learn to work in a corporate
space, which not only enriched me professionally but also helped me grow personally as
well. My supervision and other members of the department appreciated my contribution.
The career path | would be selecting for myself is quite influenced from my internship as |
have had a great opportunity to practically see how we transfer data to the cloud server and
connect different sensors in working and evolving in our country. However, this report has
been written in a short time. | have tried my best to make it meaningful by reflecting my
works at the CQS Training Pvt. Ltd. In addition, | have summarized my overall experience,
with my learning and challenging faced as an intern.ARDUINO
Arduino is an open-source hardware and software company, project and user community that
designs and manufactures single-board microcontrollers and microcontroller kits for building,
digital devices and interactive objects that can sense and control both physically and digitally. Its
products are licensed under the GNU Lesser General Public License (LGPL) or the GNU General
Public License (GPL), permitting the manufacture of Arduino boards and software distribution by
anyone. Arduino boards are available commercially in preassembled form,
The Arduino project was started at the Interaction Design Institute Ivrea (IDI) in Ivrea, Italy. At
that time, the students used a BASIC Stamp microcontroller at a reasonable cost, a considerable
expense for many students . In 2003 Hernando Barragén created the development platform
Wiring as a Master's thesis project at IDII, under the supervision of Massimo Banzi and Casey
Reas. Casey Reas is known for co-creating, with Ben Fry, the Processing development platform,
The project goal was to create simple, low cost tools for creating digital projects by non-
engineers. The Wiring platform consisted of a printed circuit board (PCB) with an ATmegal 68
microcontroller, an IDE based on Processing and library functions to easily program the
microcontroller. In 2003, Massimo Banzi, with David Mellis, another IDIT student, and David
Cuartielles, added support for the cheaper ATmega8 microcontroller to Wiring. But instead of
continuing the work on Wiring, they forked the project and renamed it Arduino. The initial
Arduino core team consisted of Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino,
and David Mellis, but Barragdn was not invited to participate. Following the completion of the
Wiring platform, lighter and less expensive versions were distributed in the open-source
community.ARDUINO UNO
EAGLE files: arduino-uno-Rev3-reference-design.zip (NOTE: works with Eagle 6.0 and newer)
‘Schematic: arduino-uno-Rev3-schematic.pdf Note: The Arduino reference design can use an
Atmega8, 168, or 328, Current models use an ATmega328, but an Atmega8 is shown in the
schematic for reference. The pin configuration is identical on all three processors.
The Arduino Uno can be powered via the USB connection or with an external power supply. The
power source is selected automatically. External (non-USB) power can come either from an AC-
to-DC adapter (wall-wart) or battery. The adapter can be connected by plugging a 2.1mm center-
positive plug into the board's power jack. Leads from a battery can be inserted in the Gnd and Vin
pin headers of the POWER connector. The board can operate on an external supply of 6 to 20
volts. If supplied with less than 7V, however, the 5V pin may supply less than five volts and the
board may be unstable. If using more than 12V, the voltage regulator may overheat and damage
the board. The recommended range is 7 to 12 volts. The power pins are as follows:
+ VIN. The input voltage to the Arduino board when it's using an external power source (as
opposed to 5 volts from the USB connection or other regulated power source). You can supply
voltage through this pin, or, if supplying voltage via the power jack, access it through this pi
+ SV. This pin outputs a regulated 5V from the regulator on the board. The board can be supplied
with power either from the DC power jack (7 - 12V), the USB connector (SV), or the VIN pin of
the board (7-12V). Supplying voltage via the 5V or 3.3V pins bypasses the regulator, and can
damage your board. We don't advise it.
+3V3. A 3.3 volt supply generated by the on-board regulator. Maximum current draw is SO mA.
+ GND. Ground pins.
The ATmega328 has 32 KB (with 0.5 KB used for the bootloader). It also has 2 KB of SRAM
and 1 KB of EEPROM (which can be read and written with the EEPROM library).
The Arduino Uno has a number of facilities for communicating with a computer, another
Arduino, or other microcontrollers. The ATmega328 provides UART TTL (SV) serial
communication, which is available on digital pins 0 (RX) and 1 (TX). An ATmegal6U2 on the
board channels this serial communication over USB and appears as a virtual com port to software
on the computer. The '16U2 firmware uses the standard USB COM drivers, and no external
driver is needed. However, on Windows, a .inf file is required. The Arduino software includes a
serial monitor which allows simple textual data to be sent to and from the Arduino board. The RX
and TX LEDs on the board will flash when data is being transmitted via the USB-to-serial chip
and USB connection to the computer (but not for serial communication on pins 0 and 1). A
SoftwareSerial library allows for serial communication on any of the Uno's digital pins. The
ATmega328 also supports 2C (TWI) and SPI communication. The Arduino software includes a
Wire library to simplify use of the I2C bus; see the documentation for details. For SPI
communication, use the SPI library.
The Arduino Uno has a resettable polyfuse that protects your computer's USB ports from shorts
and overcurrent. Although most computers provide their own internal protection, the fuse
provides an extra layer of protection. If more than 500 mA is applied to the USB port, the fuse
will automatically break the connection until the short or overload is removed,SENSORS
GPS
‘The SKG13C is a complete GPS engine module that features super sensitivity, ultra low power
and small form factor. The GPS signal is applied to the antenna input of module, and a complete
serial data message with position, velocity and time information is presented at the serial interface
with NMEA protocol or custom protocol. It is based on the high performance features of the
Media Tek MT3339 single-chip architecture, Its -165dBm tracking sensitivity extends positioning
coverage into place like urban canyons and dense foliage environment where the GPS was not
possible before. The small form factor and low power consumption make the module easy to
integrate into portable device like PNDs, mobile phones, cameras and vehicle navigation systems.
Features
Ultra high sensitivity: -165dBm
Extremely fast TTFF at low signal level
Built-in 12 multi-tone active interference canceller
Low power consumption: Typical 18mA@3.3V
£10ns high accuracy time pulse (PPS)
Advanced Features: AlwaysLocate; AIC; EPO:EASY
QZSS,SBAS(WAAS,EGNOS,MSAS,GAGAN)
Indoor and outdoor multi-path detection and compensation
‘Small form factor: 15x13x2.2mm
RoHS compliant (Lead-free)
Applications
LBS (Location Based Service)
PND (Portable Navigation Device)Vehicle navigation system
Mobile phone
PIN Description
Pin | Pin name VO | Description ‘Remark
No.
1 RXDI__|_O [ UART Serial Data Input Leave open ifnot used
2 TXDI__|_1_[ UART Serial Data Output eave open iFnot used
3 PPS; (© | Time pulse Signal Teave open ifnot used
4 TXDO | O | VART Serial Data Output 0 Leave open if not used
3 RXDO | 1 [ UART Serial Data Input 0 Leave open ifnot used
6 NC
7_|_FIXLED [0 | Fixed LED Ouput Teave open iFnot used
3 RESET |__| Module Reset (Active Low Status) Teave open ifnot used
9 [32K cLK_OUT | 0 [32.768K He clock output from RTC Leave open if not use
10 | GPIOIVEINT! | 1_| Wakeup signal input from such a G sensor | Currently version do not support
T_[ v-BcK [1 | RTCandbackup SRAM power 2.0-42V) | May be connect o Batery
2 vee 1 | Module Power Supply Operating range: 30V 1 42V
B NC
14 | GeI0is [10 | General Purpose VO Teave open iFnot used
15_[|_GPIOIS [10 | General Purpose VO Leave open ifnot used
16 NC
17_|_vec.our [0 [VCC power output Leave open ifnot used
i® GND | G | Ground
1) [| RFIN Sona) s7s02Ghi
20 ‘GND.
2 ‘GND.
2 ‘GND,
Advanced Software Features
Standby Mode
User can issue software command to make GPS module go into standby mode that consumes less
than 200uA current. GPS module will be awaked when receiving any byte. The following flow
chart is an example to make GPS module go into standby mode and then wake up.
Periodic Mode
When GPS module is commanded to periodic mode, it will be in operation and standby
periodically. Its status of power consumption is as below chartAlwaysLocate
AlwaysLocate is an intelligent controller of periodic mode. Depending on the environment and
‘motion conditions, GPS module can adaptively adjust working/standby time to achieve balance of
positioning accuracy and power consumption. In this mode, the host CPU does not need to
control GPS module until the host CPU needs the GPS position data. The following flow chart is
‘an example to make GPS module go into AlwaysLocateTm mode and then back to normal
operation mode.
AGPS
‘Support for Fast TTF (EPO™) The AGPS (EPO™) supply the predicated Extended Prediction
Orbit data to speed TTFF ,users can download the EPO data to GPS engine from the FTP server
by internet or wireless network ,the GPS engine will use the EPO data to assist position
calculation when the navigation information of satellites are not enough or weak signal zone .
EASY
The EASY is embedded assist system for quick positioning, the GPS engine will calculate and
predict automatically the single emperies (Max. up to 3 days )when power on ,and save the
predict information into the memory , GPS engine will use these information for positioning if no
enough information from satellites , so the function will be helpful for positioning and TTFF
improvement under indoor or urban condition ,the Backup power (VBACKUP) is necessary
PERFORMANCE
Parameter Boecitication
ceciver Type [1 frequency band, CYA code, 2 Tracking / 66 Acquisition-Chanel
Benstviy Hracking -16SdBm Typical
Hcquistion 148481 Typical
curacy ston 3.0m CEPS0 without SA(Typical Open Sky)
locity (Lm without $A
[ining (PPS) 10ns RMS
quisition Time old Sat 23xTypicl Open Sky)
Yam Start 2s
ot Sart Is
Acquisition ls
sted GPS support [EPO
Power Consumption Hacking T8mA @3.3V Typical
Acquisition Zama @33V
avigation Data Update Rate jax 10H Default Hz
perational Limits tude Max 18,000m
locity Max SISmis
}rceleration Less than dginclude
include
#include
TinyGPSPlus gps; // Create an I
SoftwareSerial ss(2,3);
double flat, flon;
void setup() {
// put your setup code here, to run once:
ss.begin(9600);// the GPRS baud rate
Serial.begin (9600);
+
void loop() {
// pat your main code here, to run repeatedly:
pe
1
void gp(){
flat=gps.location.lat();
flon=gps.location.1ng();
Serial.print ("Latitude
Serial.println(flat, 10);
Serial.print ("Longitude : ");
Serial.println(flon, 10);
smartDelay (1000) ;
if (millis() > 5000 && gps.charsProcessed() < 10)
Serial.printin(F("No GPS data received: check wiring"));
static void smartDelay(unsigned long ms) // This
{
unsigned long start = millis();
do
{
while (ss.available())
gps.encode(ss.read()):
} while (millis() - start < ms);GSM
APPLICATIONS
This module is designed to satisfy manufacturers, which also have a physical dimension concern
of embedded GSM/GPRS features built into their products. Some main application devices of this
module are:
Telemati
Wireless Terminal
Alarm/Securities System
‘Automatic Meter Reading
Remote control
Mobile Trunk
Wireless PSTN
GSM was intended to be a secure wireless system, It has considered the user authentication using
a pre-shared key and challenge-response, and over-the-air encryption. However, GSM is
vulnerable to different types of attack, each of them aimed at a different part of the network
The development of UMTS introduced an optional Universal Subscriber Identity Module
(USIM), that uses a longer authentication key to give greater security, as well as mutually
authenticating the network and the user, whereas GSM only authenticates the user to the network
(and not vice versa). The security model therefore offers confidentiality and authentication, but
limited authorization capabilities, and no non-repudiation.
GSM uses several cryptographic algorithms for security. The AS/1, A5/2, and AS/3 stream.
ciphers are used for ensuring over-the-air voice privacy. A3/1 was developed first and is a
stronger algorithm used within Europe and the United States; A5/2 is weaker and used in other
countries, Serious weaknesses have been found in both algorithms: it is possible to break AS/2 in
real-time with a ciphertext-only attack, and in January 2007, The Hacker's Choice started the
AS/I cracking project with plans to use FPGAs that allow A5/I to be broken with a rainbow tableattack. The system supports multiple algorithms so operators may replace that cipher with a
stronger one.
Since 2000 different efforts have been made in order to crack the AS encryption algorithms. Both
AS/I and A5/2 algorithms have been broken, and their cryptanalysis has been revealed in the
literature. As an example, Karsten Nohl developed a number of rainbow tables(static values
which reduce the time needed to carry out an attack) and have found new sources for known
plaintext attacks. He said that it is possible to build "a full GSM interceptor...from open-source
components” but that they had not done so because of legal concerns. Nol claimed that he was
able to intercept voice and text conversations by impersonating another user to listen to
voicemail, make calls, or send text messages using a seven-year-old Motorola cellphone and
decryption software available for free online.
GSM uses General Packet Radio Service (GPRS) for data transmissions like browsing the web.
‘The most commonly deployed GPRS ciphers were publicly broken in 2011.
The researchers revealed flaws in the commonly used GEA/1 and GEA/2 ciphers and published
the open-source "gprsdecode” software for sniffing GPRS networks. They also noted that some
carriers do not encrypt the data (i.e., using GEA/0) in order to detect the use of traffic or protocols
they do not like (e.g., Skype), leaving customers unprotected. GEA/3 seems to remain relatively
hard to break and is said to be in use on some more modern networks. If used with USIM to
prevent connections to fake base stations and downgrade attacks, users will be protected in the
‘medium term, though migration to 128-bit GEA/4 is still recommended.
VBATTBB, GND
GND VBATTRF
GND VBATTRF
GND VBATTRF
GND GND
LEDA GPIO1S(LS)
‘OnnoFF PWON
USB_DP ‘USB_OM
‘GPIOO_DEDILS) vBUS
GND GND
‘SIM_CL TXDLS)
‘SIM_IO RXDLS)
‘SIM_RST RTSUS)
NC cTSis)
MICBIAS DSRS)
ICIP DTRLS)
MICUN GPIOKLS)
‘HSMIC GPIOzLS)
GND GND
EARP. GPIO7(LS)
EARN RLS)
HSOL vRsiminclude
SoftwareSerial mySerial (10,11);
void setup() {mySerial.begin (9600);
Serial .begin (9600) ;delay (2000);
// pat your setup code here, to run once:
mySerial.print ("AT+CMGF=1\r\n") ;
delay (500);
mySerial.print ("AT+CMGS=\"\"\r") ;
delay (500);
mySerial.print ("HI");
delay (500);
mySerial.write (Oxla);
mySerial.write (0x0a);
delay (100);
mySerial.print ("\r\n'
delay (5000);
mySerial.print ("ATH\r\n") ;delay (500);
void loop() {
// put your main code here, to run repeatedly:
void printSerialData()
fi
while (mySerial.available() !=0)
Serial.write (mySerial.read());
char data=mySerial.read();
}RFID
‘The EM-18 RFID Reader module operating at 125kHz is an inexpensive solution for your RFID
based application. The Reader module comes with an on-chip antenna and can be powered up
with a SV power supply. Power-up the module and connect the transmit pin of the module to
recieve pin of your microcontroller. Show your card within the reading distance and the card
number is thrown at the output. Optionally the module can be configured for also a weigand
output.
Applications
+ e-Payment
+ e-Toll Road Pricing
+ e-Ticketing for Events
+ e-Ticketing for Public Transport
+ Access Control
+ PC Access
+ Authentication
+ Printer / Production Equipment
RF Transmit Frequency 125kHz
Supported Standards EM4001 64-bit RFID tag compatible
Communications Interface TTL Serial Interface, Wiegand output
Communications Protocol Specific ASCII
Communications Parameter _ 9600 bps, 8, N, 1
Power Supply 4.6V -5.5VDC + 10% regulated
Current Consumption 50mA
< 10mA at power down mode.
Reading distance Up to 100mm, depending on tag
Antenna Integrated
Size (LxWxH) 32x 32x 8mm#include
SoftwareSerial mySerial(10, 11); // RX, TX
void setup() {
// Open serial communications and wait for port t
Serial .begin (9600);
while (!Serial) {
¢ // wait for serial port to connect. Needed fo
Serial.printin ("Goodnight moon!"
// set the data rate for the SoftwareSerial port
mySerial.begin (9600);
mySerial.printin("Hello, world?"
void loop() { // run over and over
if (mySerial.available()) {
String s=mySerial.readstring():
if (s=="2COOFCB294F6")
Serial.printin ("Harika");
else if (s=="1700313A160A")
Serial.printin ("Yamuna");
else if (s=="2CO0FD1S05CD")
Serial.printin ("Musali");
else if (s=="2COOFD1BE2A8")
Serial .printin("Varshi");
else if (s=="2COOFCSEB7FS")
Serial.printin("Suppu"):
else
Serial .printin("Invalia"™
x
if (Serial.available()) {
mySerial write (Serial.read()):BLUETOOTH
ee]
ote]
rr
on—
Brot
ocd
cod
Hardware features
Typical -80dBm sensitivity
Up to +4dBm RF transmit power
Low Power I.8V Operation ,1.8 to 3.6V 10
PIO control” UARTT interface with programmable baud rate
With integrated antenna
With edge connector
Software features
Default Baud rate: 38400,
Data bits:8, Stop bit:1,Parity:No parity, Data control: has.
‘Supported baud rate: 9600,19200,38400,57600, | 15200,230400,460800.
Given a rising pulse in PIO0, device will be disconnected.
Status instruction port PIO: low-disconnected, high-connected;
PIO10 and PIOI1 can be connected to red and blue led separately. When master and slave are
paired, red and blue led blinks Itime/2s in interval, while disconnected only blue led blinks
2times’s
Auto-connect to the last device on power as default
Permit pairing device to connect as default.
Auto-pairing PINCODE:"0000" as default
Auto-reconnect in 30 min when disconnected as a result of beyond the range of connection.#include
SoftwareSerial mySerial(10, 11);
int ledpin=12;
char Data;
void setup()
{
mySerial.begin (9600);
pinMode (ledpin, OUTPUT)
}
void loop()
{
if (mySerial.available())
{
Data=mySerial.read();
if (Data=="1")
{
digitalwWrite (ledpin, HIGH);
mySerial.printin("LED on! "
digitalwrite (ledpin, Low);
mySerial.printin("LED Off! ");
}
This is a simple program it is available in the ide software and some of the communication sets
are discussed.
12C : SDA,SCLK(synchronus)
CAN.UART : TX,RX(asynchronus)
SPI: MISO,SS,MOSI,CLK(synchronus)
USB : D+,D-(synchronus)
UART IS A HALFDUPLEX means only sending or receiving is done at a time.
CAN is used only in automobiles with at a time connection of 255 different devices.ULTRASONIC
Ultrasonic ranging module HC - SR04 provides 2em - 400cm non-contact measurement function,
the ranging accuracy can reach to 3mm, The modules includes ultrasonic transmitters, receiver
and control circuit. The basic principle of work:
(1) Using 10 trigger for at least 10us high level signal
(2) The Module automatically sends eight 40 kHz and detect whether there is a pulse signal back.
(3) IF the signal back, through high level , time of high output IO duration is the time from.
sending ultrasonic to returning. Test distance = (high level timexvelocity of sound (340M/S) / 2.
POWER PAMETERS
Working Voltage DCSV
Working Current 15mA
Working Frequency 40H
Max Range 4m
‘Min Range 2em
“MeasuringAngle 15 degree
‘Trigger Input Signal 10uS TTL pulse
Echo Output Signal Input TTL lever signal and the range in
proportion
Dimension 45°20"15mm
TIMING PROCEDURE
The Timing diagram is shown below. You only need to supply a short 10uS pulse to the trigger
input to start the ranging, and then the module will send out an 8 cycle burst of ultrasound at 40
kHz and raise its echo. The Echo is a distance object that is pulse width and the range in
proportion . You can calculate the range through the time interval between sending trigger signal
and receiving echo signal. Formula: uS / 58 = centimeters or uS / 148 =inch; or: the range = high
level time * velocity (340M/S) / 2; we suggest to use over 60ms measurement cycle, in order to
prevent trigger signal to the echo signal.finclude // includes the Liquidcrystal Library
Liguidcrystal led(1, 2, 4, 5, 6 1); // Creates an LCD object. Paraneter:
46, 47)
(zs, enable, df, 45,
const int trigPin = 9;
const int echoPin = 10;
Long duration;
int distanced, distancelnch;
void setup() (
Lod.begin(16,2); // Initializes the interface to the LCD screen, and specifies the dinensions
(width and height) of the display
inode (trighin, OUTPUT
intlode(echoPin, INPUD);
}
void loop() {
digitalWtrite(trigPin, LOW);
Gelaysticrosecands (2) ;
Gigitaleite(trigPin, HIGH);
Gelaytticroseconds (10) ;
digitalirite(trigPin, LOM)
duration = pulseIn(echoPin, HIGH) ;
Gistancece= duration*].034/2;
distancetnch = daration‘0.0133/2;
Led. setCursor(0,0); // Sets the location at which subsequent text written to the LCD will be
displayed
Led.peint ("Distance: "); // Prints string "Distance” on the ICD
‘Led.print (distanceta); // Prints the distance value from the sensor
Led.print (" ca")
Gelay(10);
Led. set Cursor (0,1);
Led.print ("Distance: ");
‘Led. print (dtstancetnch) ;
Jed.print (" inch");
Gelay(0);
}LDR
‘Two cadmium sulphide(cds) photoconductive cells with spectral responses similar to that of the
human eye. The cell resistance falls with increasing light intensity. Applications include smoke
detection, automatic lighting control, batch counting and burglar alarm systems.
Applications
Photoconductive cells are used in many different types of circuits and applications.
Analog Applications
+ Camera Exposure Control
+ Auto Slide Focus - dual cell
Photocopy Machines - density of toner
- Colorimetric Test Equipment
Densitometer - Electronic Scales - dual cell
+ Automatic Gain Control ~ modulated light source
- Automated Rear View Mirror
Digital Applications
+ Automatic Headlight Dimmer
- Night Light Control
+ Oil Burner Flame Out
+ Street Light Control
Absence / Presence (beam breaker)
+ Position SensorPOWER CHARACTERISTICS
Parameter Unit
Cell resistance T000LUX | - ‘Ohm
40 LUX : 9 | - |Kohm
Dark Resistance - - 1 - MOhm
Dark Ca = Seer
Rise Time 1000 LUX : 28 : ms
10 LUX - 18 - ms
Fall Time 1000 LUX - 48 ms
10 LUX, - 120 ms.
Voltage AC/DC Peak Vmax
Sensitivity
The sensitivity of a photodetector is the relationship between the light falling on the device and
the resulting output signal. In the case of a photocell, one is dealing with the relationship between
the incident light and the corresponding resistance of the cell.
1000
= 104
=
8
§ 10
2
3
ce 10 aa
of nt
01 10 10 100 ©1000 10,000
Lux
Spectral Response
Like the human eye, the relative sensitivity of a photoconductive cell is dependent on the
wavelength (color) of the incident light. Each photoconductor material type has its own unique
spectral response curve or plot of the relative response of the photocell versus wavelength of
light3.
wre iors
i ee |
350 46) SOD S40 S00 2D GSD OO TO
ane ge)
a
void setup) {
// put your setup code here, to run once:
Serial. begin (9600);
pinMode (13, OUTPUT) ;
?
void loopQ {
// put your main code here, to run repeatedly:
int x = analogRead(A0);
int y = analogRead(Al);
if (x<330 [| y>450)
{
Serial.print ("DANGER");
digitalwrite (13, HIGH);
delay (5000)
»
else if(x>450 11 y<330)
&
Serial.print ("DANGER")
digitalwrite (13, HIGH);
delay (5000)
,
else{
Serial. print ("NOTHING"
digitalwrite (13, Low):
delay (5000) 5
?
Serial-printin("x = "
Serial.print (x)
Serial.printin("y
Serial.print(y):
delay (5000)
)ACCELEROMETER
Itis a 3-axis sensing Small, low profile package 4 mm x 4 mm x 1.45 mm LFCSP Low power
350 MA (typical) Single-supply operation: 1.8 V to 3.6 V 10,000 g shock survival Excellent
temperature stability BW adjustment with a single capacitor per axis ROHS/WEEE lead-free
compliant
APPLICATIONS
Cost sensitive,
low power,
motion- and tilt-sensing applications
Mobile devices
Gaming systems
Disk drive
protection Image stabilization
Sports and health devices
‘The ADXL335 is a small, thin, low power, complete 3-axis accelerometer with signal
conditioned voltage outputs. The product measures acceleration with a minimum full-scale range
of +3 g. Itcan measure the static acceleration of gravity in tilt-sensing applications, as well as
dynamic acceleration resulting from motion, shock, or vibration. The user selects the bandwidth
of the accelerometer using the CX, CY, and CZ capacitors at the XOUT, YOUT, and ZOUT pins.
Bandwidths can be selected to suit the application, with a range of 0.5 Hz to 1600 Hz for the X
and Y axes, and a range of 0.5 Hz to 550 Hz for the Z axis. The ADXL335 is available in a small,
low profile, 4 mm x 4 mm x 1.45 mm, 16-lead, plastic lead frame chip scale package
(LFCSP_LQ).
RATING
Parameter Rating
‘Acceleration (Any Axis, Unpowered) | 10,0009
Acceleration (Any Axis, Powered) | 10,0009
Ve -0.3Vt0+3.6V
All Other Pins (COM-03V) to(Vs +03)
Output Short-Circuit Duration Indefinite
(Any Pin to Common)
‘Temperature Range (Powered) -S5°C to +125°C
‘Temperature Range (Storage) =65°C to +150°CThe ADXL335 is a complete 3-axis acceleration measurement system. The ADXL335 has a
‘measurement range of +3 g minimum. It contains a polysilicon surface-micromachined sensor
and signal conditioning circuitry to implement an open-loop acceleration measurement
architecture. The output signals are analog voltages that are proportional to acceleration. The
accelerometer can measure the static acceleration of gravity in tlt-sensing applications as well as
dynamic acceleration resulting from motion, shock, or vibration. The sensor is a polysilicon
surface-micromachined structure built on top of a silicon wafer. Polysilicon springs suspend the
structure over the surface of the wafer and provide a resistance against acceleration forces.
Deflection of the structure is measured using a differential capacitor that consists of independent
fixed plates and plates attached to the moving mass. The fixed plates are driven by 180° out-of-
phase square waves. Acceleration deflects the moving mass and unbalances the differential
capacitor resulting in a sensor output whose amplitude is proportional to acceleration. Phase-
sensitive demodulation techniques are then used to determine the magnitude and direction of the
acceleration. The demodulator output is amplified and brought off-chip through a 32 kO resistor.
The user then sets the signal bandwidth of the device by adding a capacitor. This filtering
improves measurement resolution and helps prevent aliasing
% OF POPULATION
0
0.285 0.288 0.291 0.294 0.297 0.300 0.303 0.306 0.309 0.312 0.315
‘SENSITIVITY (Vig)NOILV1NdOd 40 %
0.285 0.288 0.291 0.294 0.297 0.300 0.303 0.306 0.309 0.312 0.315
‘SENSITIVITY (Vig)
25
20
10
5
0
NOILV1NdOd 40 %
0.285 0.288 0.291 0.294 0.297 0.300 0.303 0.306 0.309 0.312 0.315
‘SENSITIVITY (Vig)const int groundpin = 18;
const int powerpin = 19;
const int xpin = A3;
const int ypin = A2;
const int zpin = Al;
void setup() {
// initialize the serial communications:
Serial.begin (9600);
// you can remove these lines.
pinMode(groundpin, OUTPUT);
pinMode(powerpin, OUTPUT);
digitalWrite(groundpin, LOW);
digitalWrite(powerpin, HIGH);
void loop() {
// print the sensor values:
Serial.print (analogRead(xpin) ) +
// print a tab between values:
Serial.print("\t"):
Serial.print (analogRead(ypin) )¢
// print a tab between values:
Serial.print("\t");
Serial.print (analogRead(zpin) );
Serial.println();
// delay before next reading:
delay (100);DHT] Temperature & Humidity Sensor features a temperature & humidity sensor complex with
a calibrated digital signal output. By using the exclusive digital-signal-acquisition technique and
temperature & humidity sensing technology, it ensures high reliability and excellent long-term
stability, This sensor includes a resistive-type humidity measurement component and an NTC
temperature measurement component, and connects to a highperformance 8-bit microcontroller,
offering excellent quality, fast response, anti-interference ability and cost-effeectiveness. Each
DHT! element is strictly calibrated in the laboratory that is extremely accurate on humidity
calibration. The calibration coefficients are stored as programmes in the OTP memory, which are
used by the sensor's internal signal detecting process. The single-wire serial interface makes,
system integration quick and easy. Its small size, low power consumption and up-to-20 meter
signal transmission making it the best choice for various applications, including those most
demanding ones. The component is 4-pin single row pin package. It is convenient to connect and
special packages can be provided according to users” request.
DHT11’s power supply is 3-5.5V DC. When power is supplied to the sensor, do not send any
instruction to the sensor in within one second in order to pass the unstable status. One capacitor
valued 100nF can be added between VDD and GND for power filtering. Single-bus data format is
used for communication and synchronization between MCU and DHT!1 sensor. One
communication process is about 4ms. Data consists of decimal and integral parts. A complete
data transmission is 40bit, and the sensor sends higher data bit first. Data format: 8bit integral RH
data + 8bit decimal RH data + 8bit integral T data + 8bit decimal T data + 8bit check sum. If the
data transmission is right, the check-sum should be the last 8bit of "bit integral RH data + 8bit
decimal RH data + 8bit integral T data + 8bit decimal T data"
vec-
GND
letart to trans- | I
SINGLE-BUS
SINGLE-BUS ie bit data -— I
(Sous)
MCU Signal
Figure 4 Data "0" IndicationSpecifications
Parameters Conditions Minimum Typical Maximum
Humidity
Resolution 1%RH 1%RH ‘1%RH
8 Bit
Repeatability E1%RH
Accuracy ae E4%RH
0500 £59RH
Interchangeability | Fully Interchangeable
Measurement | 0'C 30%RH 90%RH
Range ae 20%RH OKRH
50°C 20%RH 80%RH
Response Time | 1/e(63%)25'C, | 6S 105 155
(Seconds) Am/s Air
Hysteresis =1%RH
Long-Term Typical £1%RH/year
Stability
Temperature
Resolution 1C 1 1C
8 Bit 8 Bit 8 Bit
Repeatability Hv
Accuracy +10 10
Measurement 0c soc
Range
Response Time | 1/e(63%) 65 30S
(Seconds)ESP8266
ESP8266 offers a complete and self-contained Wi-Fi networking solution, allo
host the application or to offload all Wi-Fi networking functions from another appli
processor,
to either
tion
When ESP8266 hosts the application, and when it is the only application processor in the device,
it is able to boot up directly from an external flash. It has integrated cache to improve the
performance of the system in such applications, and to minimize the memory requirements.
Alternately, serving as a Wi-Fi adapter, wireless internet access can be added to any
microcontroller-based design with simple connectivity through UART interface or the CPU AHB,
bridge interface.
Features
+ 802.11 bigin protocol
+ Wi-Fi Direct (P2P), soft-AP
+ Integrated TCPIIP protocol stack
+ Integrated TR switch, balun, LNA, power amplifier and matching network
+ Integrated PLL, regulators, and power management units
+ +19.5dBm output power in 802.11 mode
+ Integrated temperature sensor
+ Supports antenna diversity
+ Power down leakage current of < 10uA
+ Integrated low power 32-bit CPU could be used as application processor
+= SDIO 20, SPI, UART
+ STBC, <1 MIMO, 21 MIMO
+ A-MPDU & A-MSDU aggregation & 0.4us guard interval
+ Wake up and transmit packets in <2ms
+ Standby power consumption of <1,OmW (DTIMB)PIR
PIR sensors are more complicated than many of the other sensors explained in these tutorials (like
photocells, FSRs and tilt switches) because there are multiple variables that affect the sensors
input and output. To begin explaining how a basic sensor works, we'll use this rather nice
diagram The PIR sensor itself has two slots in it, each slot is made of a special material that is
sensitive to IR. The lens used here is not really doing much and so we see that the two slots can
‘see’ out past some distance (basically the sensitivity of the sensor). When the sensor is idle, both
slots detect the same amount of IR, the ambient amount radiated from the room or walls or
outdoors. When a warm body like a human or animal passes by, it first intercepts one half of the
PIR sensor, which causes a positive differential change between the two halves. When the warm
body leaves the sensing area, the reverse happens, whereby the sensor generates a negative
differential change. These change pulses are what is detected,
The IR sensor itself is housed in a hermetically sealed metal can to improve
noise/temperature/humidity immunity. There is a window made of IR-transmissive material
(typically coated silicon since that is very easy to come by) that protects the sensing element.
Behind the window are the two balanced sensors
However, remember that we actually have two sensors, and more importantly we dont want two
really big sensing-area rectangles, but rather a scattering of multiple small areas. So what we do
is split up the lens into multiple section, each section of which is a fresnel lens.froia setup() {
// put your setup code here, to run once:
Serial .begin (9600);
pinMode (13, OUTPUT) ;
}
void loop() {
// put your main code here, to run repeatedly:
int x = analogRead(A0);
int y = analogRead (Al);
if (x<330 || y>450)
{
Serial.print ("DANGER") ;
digitalwrite (13, HIGH) ;
delay (5000);
}
else if(x>450 || y<330)
{
Serial .print ("DANGER");
digitalWrite (13, HIGH);
delay (5000);
}
else{
Serial.print ("NOTHING") ;
digitalWrite (13, LOW);
delay (5000);
}
Serial.println("x = ");
Serial.print (x);
Serial.println("y
Serial.print(y);
delay (5000);
}
Pls:CLOUD PLATFORMS
THINHSPEAK
ThingSpeak allows you to aggregate, visualize and analyze live data streams in the
cloud. Some of the key capabilities of ThingSpeak include the ability to:
Easily configure devices to send data to ThingSpeak using popular 1oT protocols
Visualize your sensor data in real-time
‘Aggregate data on-demand from third-party sources.
Use the power of MATLAB to make sense of your IoT data
Run your loT analytes automatically based on schedules or events.
Prototype and build ToT systems without setting up servers or developing web software
Automatically act on your data and communicate using third-party services like
Twilio® or Twitter®
To lear how you can collect, analyze and act on your loT data with ThingSpeak,
explore the topics below:
Collect
Send sensor data privately to the cloud.
Analyze
Analyze and visualize your data with MATLAB.
Act
Trigger a reaction.
loT solutions are built for many vertical applications such as environmental monitoring
and control, health monitoring, vehicle fleet monitoring, industrial monitoring and control,
and home automation.
describes an emerging trend where a large number of embedded devices (things) are
connected to the Internet. These connected devices communicate with people and other
things and often provide sensor data to cloud storage and cloud computing resources
where the data is processed and analyzed to gain important insights. Cheap cloud
computing power and increased device connectivity is enabling this trend.EB
DATA AGGREGATION
AND ANALYTICS
Cl ThingSpeak
MATLAB
ALGORITHM DEVELOPMENT
SENSOR ANALYTICS
1 igen el
Se os
Phen bien Chalets Sig RG Geta
Channel Stats
(ote: sagan
late: atucamataee
fe
ee ere ie2Oxt Eee
a aThe main program it deals as follows:
#include
#include
#include
#define DHTPIN D2 // what pin we're connected to
#define DHTTYPE DHT11 // define type of sensor DHT 11
DHT dht (DHTPIN, DHTTYPE);
const char* ssid = "SYTIQHUB";
const char* password = "SytiqHub@975";
const char* host = "api.thingspeak.com'";
const char* privateKey = "H7JNLB8WLXIESXYS";
int g,h;
void setup() {
Serial.begin(115200);
delay(10);
dhtbegin(;
// We start by connecting to a WiFi network
Serial.print("Connecting to");
Serial.printIn(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() |= WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.printin("
Serial.printIn(" WiFi connected");
Serial.printIn("IP address: ");
Serial.printIn(WiFi.localIPQ);
}
void loop() {
delay(15000);
float h = dht.readHumidity();
dht.readTemperature();
.print("connecting to ");
Serial.printIn(host);
// Use WiFiClient class to create TCP connections
WiFiClient client;
const int httpPort = 80;
if (Iclient.connect(host, httpPort)) {
Serial.printIn("connection failed");
return;
} ,
// We now create a URI for the requestString url = "/update?api_key=";
url +=privateKey;
ial.print("Requesting URL:
ial.printIn(url);
// This will send the request to the server
client.print(String("GET ") + url +" HTTP/1.1\r\n" +
"Host: "+ host + "\r\n" +
"Connection: close\r\n\r\n");
delay(10);
while(client.connected() && !client.available()) delay(1); //waits for data
while (client.connected() || client.availableQ)
{
char charIn = client.read();
Serial.print(charIn);
}
Serial.printinQ);
Serial printin("closing connection");
client.stop();
}MIT APP INVENTOR
MIT App Inventor is an intuitive, visual programming environment that allows everyone
= even children — to build fully functional apps for smartphones and tablets. Those new
to MIT App Inventor can have a simple first app up and running in less than 30 minutes.
‘And what's more, our blocks-based too! facilitates the creation of complex, high-impact
apps in significantly less time than traditional programming environments. The MIT App
Inventor project seeks to democratize software development by empowering all people,
especially young people, to move from technology consumption to technology creation.
A small team of CSAIL staff and students, led by Professor Hal Abelson, forms the
nucleus of an international movement of inventors. In addition to leading educational
outreach around MIT App Inventor and conducting research on its impacts, this core
team maintains the free online app development environment that serves more than 6
million registered users.
Blocks-based coding programs inspire intellectual and creative empowerment. MIT App
Inventor goes beyond this to provide real empowerment for kids to make a difference --
a way to achieve social impact of immeasurable value to their communities. In fact, App
Inventors in school and outside of traditional educational settings have come together
and done just that: