Internet of Things Lab Manual
ISBN 9788119221745

Highlights

Notes

  

Chapter 6: Mini Project

Project 1: Using ultrasonic sensor measure the distance of object in inches/cm. Display the distance in LCD and play buzzer when the object is nearest to the project. Also share the distance value in thingspeak.com

Component:

Circuit Diagram:

Program:

#include <LiquidCrystal.h>

int trig = 12;int echo = 11;int travelTime;float distance;

float distanceInch;int buzzer = 10;

LiquidCrystal lcd(2,3,4,5,6,7);

void setup()

{

Serial.begin(115200);pinMode(trig, OUTPUT);pinMode(echo, INPUT);delay(1000);

Serial.println(“AT+CWJAP=\”Simulator Wifi\“,\”\“\r\n”); delay(3000);

lcd.begin(16,2);

lcd.print(“Dist CM:”);

}

void loop()

{

lcd.setCursor(10,0);digitalWrite(trig, LOW);delayMicroseconds(10);digitalWrite(trig, HIGH);

delay(10);digitalWrite(trig, LOW);

travelTime = pulseIn(echo,HIGH);delay(20);

distance = (travelTime / 2) * 0.0343;

distanceInch = (travelTime / 2)* 0.013464; lcd.print(distance);

lcd.setCursor(0,1);

lcd.print(“Dist In:”);lcd.setCursor(10,1);lcd.print(distanceInch);if(distance < 80){

tone(buzzer, 100);

}

else{noTone(buzzer);

}

Serial.println(“AT+CIPSTART=\”TCP\“,\”api.thingspeak.com\“,80\r\n”); delay(500);

int len = 65;Serial.print(“AT+CIPSEND=”);Serial.println(len);

delay(10);

Serial.print(“GET /update?api_key=M0AJWWJG5TXHJEGX&field1=” + String(distance)+“ HTTP/1.1\r\n”);

delay(100); Serial.println(“AT+CIPCLOSE=0\r\n”); delay(600);

}

Steps:

    1. Create new channel for ultrasonic sensor data upload

    2. API key

    3. Graph (Data @ ThinkSpeak)

Output:

Project 2: Build a simple calculator with LCDdisplay

Components:

Circuit Diagram:

Code:

#include <Keypad.h>#include <LiquidCrystal.h>

LiquidCrystal lcd(13, 12, 8, 9, 10, 11);

double num1,num2;double total;

char operation,button;

const byte ROWS = 4;const byte COLS = 4;

char keys[ROWS][COLS] = {

{‘1’,’2’,’3’,’+’},

{‘4’,’5’,’6’,’-’},

{‘7’,’8’,’9’,’*’},

{‘C’,’0’,’=‘,’/’}

};

byte rowPins[ROWS] = {7,6,5,4};byte colPins[COLS] = {3,2,1,0};

Keypad kpd = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);

void domath()

{

  • switch(operation)
    • {
      • case ‘+’:
        • total = num1+num2;
        • break;case ‘-’:
        • total = num1-num2;break;
      • case ‘/’:
        • total = num1/num2;break;
      • case ‘*’:
        • total = num1*num2;break;

}

lcd.clear();lcd.setCursor(0,0);lcd.print(num1);lcd.print(‘ ‘);lcd.print(operation);lcd.print(‘ ‘);lcd.print(num2);lcd.setCursor(0,1);lcd.print(“Ans = ”);lcd.setCursor(6,1);lcd.print(total);

}

void setup() {lcd.begin(16,2);lcd.setCursor(0,0);lcd.print(“Welcome”);delay(1000);

lcd.setCursor(0,1);lcd.print(“Initiating”);delay(500);lcd.print(“.”);delay(500);lcd.print(“.”);delay(500);lcd.print(“.”);delay(1000);lcd.clear();lcd.setCursor(0,0);lcd.print(“Calculator”);delay(500);lcd.setCursor(0,1);lcd.print(“Initiatied”);delay(3000);lcd.clear();

lcd.begin(16, 2);

lcd.clear();lcd.setCursor(0, 0);

}

void loop()

{

  • while(1)
    • {
      • button = kpd.getKey();
      • if (button >=‘0’ && button <=‘9’)
    • {
      • lcd.clear();
      • num1 = num1*10 + (button -’0’);lcd.setCursor(0,0);lcd.print(num1);
    • }

if (num1!=0 && (button==‘+’ || button==‘-’ || button==‘*’ || button==‘/’))

{

operation = button;lcd.setCursor(0,1);lcd.print(operation);break;

}

}

while(1)

  • {
    • button = kpd.getKey();
    • if (button >=‘0’ && button <=‘9’)
    • {
      • num2 = num2*10 + (button -’0’);lcd.setCursor(1,1);
      • lcd.print(‘ ‘);lcd.print(num2);
    • }

if (button == ‘=‘ && num2!=0)

{

domath();break;

}

}

while(1)

  • {
    • button = kpd.getKey();;if (button ==‘C’)
    • {
      • lcd.clear();lcd.setCursor(0,0);num1=0;
      • num2=0; total=0;operation=0;break;
    • }
  • }

}

Output:

Addition

Subtraction

Multiplication

Division

References:

Reference Books:

table-wrap

Reference No.

Reference Name

1

Make: Learn electronics with Arduino, Jodi Culkin and Eric Hagan, Maker Media.

2

Programming Arduino: Getting started with sketches, Simon Monk, TMH

3

Getting Started with Arduino: A Beginners Guide, Brad Kendal,

4

From Machine-to-Machine to the Internet of Things: Introduction to a New Age of Intelligence, Jan Holler VlasiosTsiatsis Catherine Mulligan Stefan Aves and StamatisKarnouskos David Boyle

5

The Internet of Things in the Cloud:A Middleware Perspectiv,By Honbo Zhou