Professional Documents
Culture Documents
ET3491 Manual Updated
ET3491 Manual Updated
COLLEGE OF TECHNOLOGY
NAME :
REG NO :
THENI KAMMAVAR SANGAM
COLLEGE OF TECHNOLOGY
KODUVILARPATTI, THENI-625 534
BONAFIDE CERTIFICATE
Name : ------------------------------------
Reg.no : ------------------------------------
Sem. /Dept : ------------------------------------
Subject : ------------------------------------
3
EXP.NO DATE CONTENTS PAGE MARKS STAFF
NO AWARDED INITIAL
MICROCONTROLLR
8051
5
EXP NO: DATE: ---/---/---
Aim:
To write on ALP to perform addition of two 8 bit data using 8051 microcontroller.
Apparatus Required:
1. 8051 microcontroller kit
2. Keyboard
Algorithm:
1. Initialize carry value in R0 register.
2. Initialize Acc with first data.
3. Add the next data with Acc.
4. If carry flag is not set, jump to L1.
5. Increment the carry and initialize DPTR
6. Move the sum value of DPTR.
7. Move the carry to Acc from there moves it to DPTR.
8. Halt the program.
PROGARM: ADDITION
ADDRESS LABEL MNEMONICS OPCODE COMMENTS
7
EXP NO: DATE: ---/---/---
Aim:
To write on ALP to perform subtraction of two 8 bit data using 8051 microcontroller.
Apparatus Required:
Algorithm:
1. Initialize carry value in R0 register.
2. Initialize Acc with first data.
3. Subtract the next data with Acc.
4. If carry flag is not set, jump to L1.
5. Increment the carry and initialize DPTR
6. Move the sum value of DPTR.
7. Move the carry to Acc from there moves it to DPTR.
8. Halt the program.
PROGARM: SUBRACTION
9
EXP NO: DATE: ---/---/---
Aim:
To write on ALP to perform Multiplication of two 8 bit data using 8051 microcontroller.
Apparatus Required:
1.8051 microcontroller kit
2. Keyboard
Algorithm:
1. Initialize carry value in R0 register.
2. Initialize Acc with first data.
3. Initialize B register with data.
4. Multiply the both register values.
5. Initialize the DPTR register.
6. Move the multiplied value of DPTR.
7. Increment the DPTR register.
8. Move the carry to Acc from their moves it to DPTR.
9. Halt the program
PROGARM: MULTIPLICATION
Aim:
To write on ALP to perform Division of two 8 bit data using 8051 microcontroller.
Apparatus Required:
1.8051 microcontroller kit
2. Keyboard
Algorithm:
1. Initialize carry value in R0 register.
2. Initialize Acc with first data.
3. Initialize B register with data.
4. Multiply the both register values.
5. Initialize the DPTR register.
6. Move the multiplied value of DPTR.
7. Increment the DPTR register.
8. Move the carry to Acc from there moves it to DPTR.
9. Halt the program
PROGARM: DIVISION
AIM:
To write an ALP program to interface DAC with 8051 and to generate square &
rectangular waveform.
APPARATUS REQUIRED:
• 8051 Trainer Kit
• Keyboard
• 50 core cable
• DAC Interface Board
• Power chord
• CRO
ALGORITHM
PROGRAM:
Result:
EXP NO: DATE: ---/---/---
INTERFACING OF ADC WITH 8051
Aim:
To write an ALP program for interfacing ADC using 8051 microcontroller.
Apparatus Required:
1. 8051 microcontroller kit
2. Keyboard
3. 50 core cable
4. ADC Interface board
5. Power Chord
Algorithm:
1. Initialize the data pointer with address FFC8.
2. Select channel 0 in ADC.
3. Out the channel address to address FFC8.
4. Make the ALE Low and High.
5. Give SOC signal to ADC.
6. Check the EOC pin in ADC (high or not).
7. If it is high means read the Digital value from ADC.
8. Store the digital value to memory location 4150.
9. Halt the program.
PROGRAM:
ADDRESS LABEL MNEMONICS OPCODE COMMENTS
4100 START MOV DPTR ,#FFC8H 90 FF C8 Move the content of FFC8 to the
DPTR
4103 MOV A, #10 74 10 Select channel 10.
4105 MOVX @DPTR, A F0 Make ALE low
4106 MOV A, #18 74 18 Make ALE high
4108 MOVX @DPTR, A F0 Move the data from ACC to DPTR
4109 MOV DPTR, #FFD6 90 FF D6 Move the content of FFD6 to the
DPTR
410C MOV A,#01 74 01 SOC signal high.
410E MOVX @DPTR, A F0 Move the data from ACC to DPTR
410F MOV A,#00 74 00 SOC signal low.
4111 MOV X @DPTR, A F0 Move the data from ACC to DPTR
4112 MOV DPTR, #FFD8 90 FF D8 Move the content of FFD6 to the
DPTR
4115 WAIT MOV X A,@DPTR E0 Move the data from DPTR TO ACC
4116 JNB E0,WAIT 30 E0 FC Check for EOC.
4119 MOV DPTR, #FFC0 90 FF C0 Read ADC data.
411C MOVX A,@DPTR E0 Move the data from ACC to DPTR
Apparatus Required:
1.8051 microcontroller kit
2. Keyboard
Algorithm:2’s complement
1. Initialize address in DPTR register and store the data at same address.
2. Complement the value in DPTR address.
3. Increment the DPTR data by one.
4. Increment the DPTR address by one.
5. Move the data to DPTR address 4501
6. Halt the program
END End
RESULT:
EXP NO:
SQUARE WAVE GENERATION USING DAC
AIM:
To interface the DAC with 8051 microcontroller and generate the square wave.
REQUIREMENTS:
WAVEFORM:
SQUARE WAVE
OBSERVATION:
Result :
DIGITAL CLOCK
AIM:-
Output:
Time is displayed in the RTC board as
! Hour ŀ Minutes ŀ seconds ŀ
X 0 0 0 5 9
X 0 0 1 0 0
RESULT:
.
l O M o A R c P S D | 3 71 2 4 2 9 0
Introduction to IDE
Workingwithkeil:–
To open keil software click on start menu then program and then select keil2 (or any other
version keil3 etc. here the discussion is on keil2 only). Following window will appear on your
screen
l O M o A R c P S D | 3 71 2 4 2 9 0
Target Selection
● now you will be asked to chose your target device for which you want to write the
program.
● scroll down the cursor and select generic from list. expand the list and select 8051
(all variants)
Building Target
● now to compile the program from project menu select “build target”. In the output
window you will see the progress
● if there is any compilation error then target will not be created. Remove all the
errors and again build the target till you find “0 Error(s)”
● now you are ready to run your program. from debug menu select “start/stop debug
session”
● you will see your project workspace window now shows most of the SFRs as well
as GPRs r0-r7. also one more window is now opened named “watches”. in this
window you can see different variable values.
l O M o A R c P S D | 3 71 2 4 2 9 0
Fig.
7: Screenshot of building a target in Keil
● to add variable in watch window goto “watch#1” tab. then type F2 to edit and type
the name of your variable
● if you want to see the output on ports go to peripheral menu and select I/O ports.
select the desire port. you can give input to port pins by checking or unchecking
any check box. here the check mark means digit 1 and no check mark means 0. the
output on the pin will be shown in same manner
● to run the program you can use any of the option provided “go”, “step by step”,
“step forward”, “step ove” etc.
● now after testing your program you need to down load this program on your target
board that is 8051. for this you have to create hax file
● to create hex file first stop debug session. Again you will be diverted to project
workspace window.
● right click on “target 1” and select “option for target 1”. Following window will
appear.
l O M o A R c P S D | 3 71 2 4 2 9 0
Result:
l O M o A R c P S D | 3 71 2 4 2 9 0
Aim:
To develop a C language program to configure an I/O port bitwise.
Algorithm:
1.Include the project header file.
2.Configure P1 as an output port and P0.5 as output.
Procedure:
1. Follow the steps to create a New project
2. Choose the device as 89C51.
3. Type the below code and save it with the name (anyname.c)
4. Follow the steps to create a New Project to compile and build the program
5. Follow the procedures to download your Hex code to the processor using Flash Magic
Software.
Program:
#include <reg51.h>
sbit eee= P0^5;
void delay( )
{
unsigned int i;
for(i=0;i<=0xFF;i++);
}
void main()
{
while(1)
{
P1 = 0x00;
eee=0;
delay( );
P1 = 0xFF;
eee=1;
delay( );
}
}
Result :
l O M o A R c P S D | 3 71 2 4 2 9 0
Aim:
To develop a C language program to perform serial communication using UART port of
8051.
Algorithm:
1.Include the project header file.
2. Calculate the value to be loaded in the timer register to set the baud rate to 9600.
3. Initialize the timer 1 in Mode 2 (8-bit auto-reload)
4.Load TH1 with the high byte of the Baud rate
5.Configure SCON (Serial Control Register) with 8-bit data, variable baud rate, enable
reception (RI), and enable UART (TI).
4.Start the timer 1.
5.Store the character ‘Super’ in the SBUF register in 2nd program store the character 's' in the
SBUF register.
6.Check the transmit interrupt TI for the completion of data transfer.
7.Disable the transmit interrupt.
8.Stop the timer.
9.Repeat the loop for a continuous process.
Procedure:
1. Follow the steps to create a New project
2. Choose the device as AT89C51 .
3. Type the below code and save it with the name (anyname.c)
4. Follow the steps to create a New Project to compile and build the program
5. Follow the procedures to download your Hex code to the processor using Flash Magic
Software.
Program1:
#include <reg51.h>
void main()
{
unsignedinti=0;
unsigned char a[5]={'s','u','p','e','r'};
TMOD = 0x20; //8 bit auto reload mode selection
TH1 = 0xFD; // 9600 Baud rate selection
SCON = 0x50; 8-bit data, variable baud rate, enable reception (RI), and enable UART (TI)
TR1=1;
l O M o A R c P S D | 3 71 2 4 2 9 0
while(i<=4)
{
SBUF =a[i];
while(TI==0);
i++;
TI=0;
TR1=1;
}
}
Program 2 :
#include <reg51.h>
void main()
{
TMOD = 0x20;
TH1 = 0xFD;
SCON = 0x50;
TR1=1;
SBUF ='S';
while(TI==0);
TI=0;
TR1=0;
Result:
l O M o A R c P S D | 3 71 2 4 2 9 0
Aim:
To develop a C language program to configure a timer for generating hardware delay of
1s.
Algorithm:
Procedure:
1. Follow the steps to create a New project
2. Choose the device as AT89C51 .
3. Type the below code and save it with the name (anyname.c)
4. Follow the steps to create a New Project to compile and build the program
5. Follow the procedures to download your Hex code to the processor using Flash Magic
Software.
Program:
#include <reg51.h>
#include <reg51.h>
void timer0Delay()
{
TMOD |= 0x01;
TR0 = 1;
TH0=0xFF;
while (TF0 == 0);
P1=0x55;
P1=0xAA;
l O M o A R c P S D | 3 71 2 4 2 9 0
Result:
Working with IAR Embedded Workbench
1. To create a new project, choose Project>Create New Project. The Create New
Project
Dialog box appears, which lets you base your new project on a project template.
2. Make sure the Tool chain is set to ARM, and click OK.
3. Select the project template Empty project, and click ok button. This simply
creates an empty project that uses default project setting.
4. In the standard Save As dialog box that appears, specify where you want to
place your project file, that is, in your newly created projects directory. Type
your project name in the File name box, and click Save to create the new
project. E.g. LED.
37
To Creating your Application ‘C’ file, Choose FILE menu and select NEW>File
1. In the Workspace window, select the destination to which you want to add a
source file; a group or, as in this case, directly to the project.
2. Choose Project>Add Files to open a standard browse dialog box. Locate the files
led.c Select them in the file selection list, and click Open to add them to the project.
To save your work space, Choose File>Save Workspace and specify where you
want to place your workspace file. In this tutorial, you should place it in your newly
created project directory. Type LED in the File name box, and click save button.
Now you will set the project options. For application projects, options can be set on all
levels of nodes. First you will set the general options to suit the processor configuration
in this tutorial. Because these options must be the same for the whole build
configuration,they must be set on the project node.
1. Select the project folder icon LED - Debug in the Workspace window and choose
Project>Options. Then select Output Converter in the Category list to display the
linker option pages.
The Output options are used for specifying details about the output format and the level
of debugging information included in the output file.
Select “option” on the popup menu. After selecting popup menu window shows as given
below. Select output format as “Intel Extended”, output file in the format of .hex format.
45
Select the linker file menu, linker configuration file available at project directory. To
Compile your Project, Choose Project>Rebuild ALL
If your project has no error, then it will show Building successfully and the Hex file will
be generated.
HOW TO CREATE RTOS PROGRAMS
1. To create a new project, choose Project>Create New Project. The Create New
Project
Dialog box appears, which lets you base your new project on a project template.
2. Make sure the Tool chain is set to ARM, and click OK.
3. Select the project template Empty project, and click ok button. This simply creates
an empty project that uses default project settings.
4. In the standard Save As dialog box that appears, specify where you want to place
your project file, that is, in your newly created projects directory. Type your
project name in the File name box, and click Save to create the new project. E.g.
LED.
RTOS Package comprises set of ‘C’ files and headed files. C Files are classified as
Application file, CPU files, μC/OS-II Files and BSP.
In this project, we have to split the C files according to the functions. So these files are
integrated under separate folder.
APP
BSP
CPU
UCOS-II
- PORT
- SOURCE
1. Creating several groups is a possibility for you to organize your source files
logically according to your project needs.
2. To create new group Choose Project>Add Group.
3. Type your group name and click ok button.
Now create APP group
Under ucos-ii group, create two group named as source and ports.
Add Corresponding files to above mentioned group
3. SETTING PROJECT OPTIONS
Now you will set the project options. For application projects, options can be set
on all levels of nodes. First you will set the general options to suit the processor
configuration in this tutorial. Because these options must be the same for the whole build
configuration, they must be set on the project node.
1. Select the project folder icon UART - Debug in the Workspace window and
choose Project>Options. Then select C/C++ Compiler where you have select
CODE menu, enable ARM Processor Mode.
57
After that Select Preprocessor menu from same window.
At Preprocessor, we have to include all the directories as given below
$PROJ_DIR$
$PROJ_DIR$\..\uCOS-II\ports
$PROJ_DIR$\..\uCOS-II\source
$PROJ_DIR$\..\BSP
$PROJ_DIR$\..\CPU
For Creating the Hex file, we choose output file format as given below.
Select Linker file as given below.
If there is no error, Message window shows like this. Now Hex file is created.
ISP UTILITY
NXP Semiconductors produce a range of Microcontrollers that feature both onchip
Flash memory and the ability to be reprogrammed using In-System Programming
technology. Flash Magic is Windows software that allows easy access to all the ISP
features provided by the devices. These features include:
Procedure:
1. Select the COM Port
2. Select the Baud Rate
3. Select Device ( Eg.LPC2148)
4. Interface – None ISP
5. Select Osc. Frequency – 12Mhz
6. Enable “ Erase Blocks used by Hex files”
7. Select the Hex File to be downloaded.
8. Click start
Processing……..
After downloaded completely, window shows like this
Result:
EX. NO:
DATE:
INTERFACING OF ADC AND DAC
AIM To develop a C-Language program for reading an on-chip ADC, convert into decimal
and to display it in PC and to generate a square wave depending on this ADC reading. The ADC
input is connected to any analog sensor/ on board potentiometer.
THEORY:
PROGRAM :ADC
/* - - - - - HEADER FILES - - - - - */
#include<nxp/iolpc2148.h>
#include<stdio.h>
#include "uart.h"
#include "adc.h"
/* - - - - - User defined Variables - - - - - */
unsigned int val=0,volt;
/* - - - - - MAIN FUNCT ION STARTS HERE - - - - - */
void main(void)
{
PINSEL1_bit.P0_28=1;
init(); /* Call the initialization function. Function definition is in “uart.h” */
uart_inital(); /* Call the uart function. Function definition is in
“uart.h” */ adc(); /* Call adc function. Function definition is in “adc.h”
*/ PINSEL1=0X01000000; /*ADC0.1*/
while(1)
{
while(AD0DR_bit.DONE==0); /* Start A/D Conversion */
val=AD0DR1_bit.RESULT;
printf("adc = %d \r\n",val);
}
}
/* The Datas has to be passed or moved on to the VALUE bits i.e 15 - 6 and the result will
be
(VALUE/(1024*Vref))
*/
RESULT:
EX. NO:
DATE:
AIM :
To develop a C-Language program for reading the RTC, convert into decimal and to
display it.
}
/* Hint: ARM processor crystal freq. = 12 MHz = 12,000,000 Hz
RTC crystal freq. = 32.768 KHz = 32,768 Hz
Calculate,
PREINT = (12,000,000 / 32,768)-1 = 365 in Decimal = 0x16D in Hex.
PREFRAC = 12,000,000 - (365+1)*32,768 = 6912 in Decimal = 0x1B00 in Hex.
And, for
CIIR = Counter Increment Interrupt Register,
CCR = Clock Control Register
ILR = Interrupt Location Register
Refer, "Volume 1: LPC214x User Manual" PDF Document */
RESULT:
EX. NO:
DATE:
INTERFACING KEYBOARD AND LCD
AIM:
To develop a C-Language program for displaying the Key pressed in the Keypad in the
LCD module. The display should come in the desired line and column.
THEORY :
PROGRAM
/* Keypad Interface
// K1 TO K8 : P0.16 TO P0.23
// Key Value is displayed on UART0
// SCAN LINES : P0.20 TO P0.23 (OUTPUT)
// READ LINES : PO.16 TO P0.19 (INPUT) */
/* - - - - - Header Files - - - - - */
#include<nxp/iolpc2148.h>
#include<stdio.h>
# include "lcd.h"
#include "ke y.h"
/* - - - - - main function starts here - - - - - */
void main()
{
PINSEL2 = 0x00000000; /* P0.16 TO P0.23 Configured as GPIO. */
IO0DIR = 0X00F00F05; /* P0.20 TO P0.23 (O/P), P0.16 TO P0.19(I/P) */
IO1DIR=0x00FF0000; /* LCD data pins as output */
comm(command); /* function to call LCD co mmands */
data1("Press any Key"); /* call the function to display the data in LCD */
while(1)
{
scomm(0xC0); /* function to write single datas in LCD location C0 */
key(); /* call the keypad function*/
}
}
RESULT :
EX. NO:
AIM :
To develop a C-Language program for reading an on-chip ADC, convert into decimal
and to display it in PC and to generate a square wave depending on this ADC reading. The ADC
input is connected to any analog sensor/ on board potentiometer.
THEORY:
PROGRAM :ADC
/* - - - - - HEADER FILES - - - - - */
#include<nxp/iolpc2148.h>
#include<stdio.h>
#include "uart.h"
#include "adc.h"
/* - - - - - User defined Variables - - - - - */
unsigned int val=0,volt;
/* - - - - - MAIN FUNCT ION STARTS HERE - - - - - */
void main(void)
{
PINSEL1_bit.P0_28=1;
init(); /* Call the initialization function. Function definition is in “uart.h” */
uart_inital(); /* Call the uart function. Function definition is in
“uart.h” */ adc(); /* Call adc function. Function definition is in “adc.h”
*/ PINSEL1=0X01000000; /*ADC0.1*/
while(1)
{
while(AD0DR_bit.DONE==0); /* Start A/D Conversion */
val=AD0DR1_bit.RESULT;
printf("adc = %d \r\n",val);
}
}
I
I
PROGRAM: DAC
/* - - - - - Header Files - - - - - */
#include<nxp/iolpc2148.h>
/*The settling time of the DAC is 2.5 µs and the maximum current is 350 µA when BIAS=1*/
#define DAC_BIAS 0x00010000
/* - - - - - delay routine - - - - - */
void delay(unsigned int x)
{
for(int i=0;i<=x;i++);
}
/* - - - - - main function - - - - -*/
void main()
{
PINSEL1=0X00080000;
while(1)
{
/* The Datas has to be passed or moved on to the VALUE bits i.e 15 - 6 and the result will be
(VALUE/(1024*Vref)) */
DACR = (1023 << 6) |
DAC_BIAS;
delay(100000);
delay(100000);
delay(100000);
delay(100000);
/* The Datas has to be passed or moved on to the VALUE bits i.e 15 - 6 and the result will
be
(VALUE/(1024*Vref))
*/
RESULT:
EX. NO:
DATE:
AIM :
To develop a C-Language program for reading the RTC, convert into decimal and to
display it.
}
/* Hint: ARM processor crystal freq. = 12 MHz = 12,000,000 Hz
RTC crystal freq. = 32.768 KHz = 32,768 Hz
Calculate,
PREINT = (12,000,000 / 32,768)-1 = 365 in Decimal = 0x16D in Hex.
PREFRAC = 12,000,000 - (365+1)*32,768 = 6912 in Decimal = 0x1B00 in Hex.
And, for
CIIR = Counter Increment Interrupt Register,
CCR = Clock Control Register
ILR = Interrupt Location Register
Refer, "Volume 1: LPC214x User Manual" PDF Document */
RESULT:
EX. NO:
DATE:
INTERFACING KEYBOARD AND LCD
AIM:
To develop a C-Language program for displaying the Key pressed in the Keypad in the
LCD module. The display should come in the desired line and column.
THEORY :
PROGRAM
/* Keypad Interface
// K1 TO K8 : P0.16 TO P0.23
// Key Value is displayed on UART0
// SCAN LINES : P0.20 TO P0.23 (OUTPUT)
// READ LINES : PO.16 TO P0.19 (INPUT) */
/* - - - - - Header Files - - - - - */
#include<nxp/iolpc2148.h>
#include<stdio.h>
# include "lcd.h"
#include "ke y.h"
/* - - - - - main function starts here - - - - - */
void main()
{
PINSEL2 = 0x00000000; /* P0.16 TO P0.23 Configured as GPIO. */
IO0DIR = 0X00F00F05; /* P0.20 TO P0.23 (O/P), P0.16 TO P0.19(I/P) */
IO1DIR=0x00FF0000; /* LCD data pins as output */
comm(command); /* function to call LCD co mmands */
data1("Press any Key"); /* call the function to display the data in LCD */
while(1)
{
scomm(0xC0); /* function to write single datas in LCD location C0 */
key(); /* call the keypad function*/
}
}
RESULT :
EX.NO:
DATE:
FLASHING OF LED
AIM :
To develop a ‘C’ program to make the LED blink (including delay routine).
Upon change in the delay program the speed should vary.
THEORY:
PROGRAM :
#include <includes.h>
#include <intrinsics.h>
#include<stdio.h>
main( )
{
PINSEL1=0X00000001;
IO1DIR=0XFF000000;
while(1)
{
IO1SET=0XFF000000;
delay( );
IO1CLR=0XFF000000;
delay( );
}
}
void delay( )
{
for(i=0;i<=0x00ff;i++)
for(j=0;j<=0x0ff;j++);
}
RESULT:
Garbage Segregator and Bin Level Indicator
IDEA:
With progress in human technolo gy we have seen a substantial progress in the amount of waste
generated. Rec ycling is the only way to manage this huge amount of waste. But recycling requires
garb age to be segregated. Without segregation garbage cannot be recycled because different type
of garbage requires different recycling processes.
Also It is important to educate users and instruct them every time they come near the dustbin
about instructions about throwing the trash. For this purpose we design a garbage disposal s ystem
that uses multiple dustbins with a voice based system that speaks to the user each time he she
stands before the dustbin.
The system makes use o f a camera to detect presence if any person in front of the dustbin. If a
person is detected, the s ystem issues voice instructions to the user about throwing right garbage in
the right bin. In case the dustbin is full it instructs the user to find another dustbin to throw
garbage in.
To develop this s ystem we make use of a raspberry Pi controller. The controller is interfaced with
a camera and a voice speaker for detection and communication. The controller gets dustbin level
input using ultrasonic level sensors each having LED indicators interfaced to it. The level sensors
are used to constantly feed the raspberry pi with bin levels.
The raspberry pi is also interfaced with a Wifi module to transmit the level data over the internet.
The Level sensor panels are made to be easily mounted over any dustbin. This allows the system
to be easily screwed over any dustbin for instant installation.
The data is transmitted over IO T to IOT gecko platform which displa ys the bin level data over
internet. This indication can be used to alert the authorities that the garbage bins need to be
emptied. Thus the system automates garbage segregation and level monitoring to help counter the
garbage crisis using IOT.
Note: The Dustbins are not included in this kit. The sensors can be mounted over any op en
dustbins.
Components
Raspberry P i
Wifi Module
Ultrasonic Level Sensors
LED Indicators
Camera
Speaker
Wiring
Supporting Frame
Resistors
Capacitors
Diodes
IC‟s
Transistors
Connectors
PCB
Colour based Product Sorting
IDEA:
Color Based Object Sorting has a wide usage in fruit sorting as well as cand y sorting industries.
This system puts forward a mechanism to detect color and sort items through ima ge processing.
Once identified a mechanism is used to sort the candies into particular bins baskets. We here
demonstrate this mechanism using a camera with electronic circuitry along with sorting
mechanism using 3 bins. The system uses raspberry pi connected to a controller circuit to achieve
this task. The controller circuit consists of a camera attached to it that detects color of a sma ll
object in front of it. A motor is used to feed an object to the camera chamber. As soon is the color
is detected a signal is sent to the sorter mechanism which uses a motor to position the sorting tube
towards respective sectio n. A feeder is then used to push the object towards the tubs so that it gets
sorted and next object is pulled in b y the feeder. The action details are sent to the IOT server
using iotgecko platform to keep track of the number of objects sorted in each section. Thus, we
achieve a completely automated IOT based sorting system.
Hardware Specifications
Raspberry Pi 3
Camera Servo
Motor LCD
Display
Resistors
Capacitors
Transistors
Diodes
LED
Transformer/Adapter
Push Buttons
Switch
IC
IC Sockets
Connector Shaft
Bed Frame
Tubes
Supporting Frame
Software Specifications
Programming Language:
Python
IOTGecko
BLOCK DIAGRAM:
87
Image Processing based Fire Detection
IDEA:
The main advantage o f Image Processing Based F ire Detection S ystem is the early
warning benefit. This system can be installed just about anywhere in a commercial
building, malls and at many more public places for fire d etection. This system uses camera
for detecting fires. So we do not need any other sensors to detect fire. S ystem processes
the camera input and then processor processes it to detect fires. The heat signatures and
fire illumination patterns are detected in images to determine if it is a fire and take action
accordingly. On detecting fire system goes into emergency mode and sounds an alarm.
Also displays the status on the LCD display informing about the system.
Hardware Specifications
Raspberry Pi 3
Camera
Buzzer
LCD Display
Resistors
Capacitors
Transistors
Diodes
LED
Transformer/Adapter
Push Buttons
Switch
IC
IC Sockets
Software Specifications
Linux
BLOCK DIAGRAM:
Vehicle Numbe r Plate Detection
IDEA:
SMART LOCKSYSTEM
IDEA:
From connected cars to connected wearables to home security, the Internet of Things is rapidly marking its presenc e in
every field. Now we have IoT enabled home automation and security devices that can be controlled from anywhere
in the world using the Internet of Things. There are many kinds of Wi-Fi door lock available in the market which makes
your home more secure and saves time in f inding the keys. Here we are also building a s imilar Wi-Fi door lock which
can be controlled from the Smartphone
So in this project, we are going to make an IOT based Door Lock System using NodeMCU, Solenoid Lock,
and Adafruit IO . Here NodeMCU will act as the main controller and connect the user to the door lock system
using the Internet. This allows the user to lock/unlock his Home‟s door lock by us ing a smartphone from anywhere
in the world.
Components Required
NodeMCU ESP8266
Solenoid Lock
Rela y Module
Buzzer
Reference: https://www.researchgate.net/publication/367087623_Smart_Door_Locking_System_Using_IoT