Sunday, 25 June 2017

Ethernet Interface with Arduino UNO:

This summary is not available. Please click here to view the post.

Wi-Fi Interface with Arduino UNO

Wi-Fi Interface with Arduino UNO:


#include<SoftwareSerial.h>

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
#include <SPI.h>
#include <MFRC522.h>

const char* ssid = "your SERVER ID name";//
const char* password = "your SERVER ID password ";
//WiFiClient client;
char server[] = "YOUR SERVER IP";   //eg: 192.168.1.170
#define SS_PIN 2 //FOR RFID SS PIN IS 2 BECAUSE WE ARE USING BOTH ETHERNET SHIELD AND RS-522
#define RST_PIN 15
#define No_Of_Card 3

 WiFiClient client;

//WiFiServer server(80) BY DEFAULT;
SoftwareSerial mySerial(8,9);  
MFRC522 rfid(SS_PIN,RST_PIN);
MFRC522::MIFARE_Key key;
byte id[No_Of_Card][4]={
  {444,154,10,210},             //RFID NO-1
  {106,115,45,840},             //RFID NO-2
  {704,65,72,46}              //RFID NO-3
};
byte id_temp[3][3];
byte i;
int j=0;
void setup()
{
 Serial.begin(115200);
  delay(10);
  mySerial.begin(115200);
  SPI.begin();
  rfid.PCD_Init();

    for(byte i=0;i<6;i++)
  {
    key.keyByte[i]=0xFF;
  }

  // Connect to WiFi network
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected TO Server");


  Serial.println("Server started");
  Serial.print(WiFi.localIP());
  delay(1000);
  Serial.println("connecting...");
 }
void loop()
{  // Check if a client has connected
  int m=0;
  if(!rfid.PICC_IsNewCardPresent())
  return;
  if(!rfid.PICC_ReadCardSerial())
  return;
  for(i=0;i<4;i++)
  {
   id_temp[0][i]=rfid.uid.uidByte[i];
             delay(50);
  }

   for(i=0;i<No_Of_Card;i++)
  {
          if(id[i][0]==id_temp[0][0])
          {
            if(id[i][1]==id_temp[0][1])
            {
              if(id[i][2]==id_temp[0][2])
              {
                if(id[i][3]==id_temp[0][3])
                {
                  Serial.print("your card no :");
                  for(int s=0;s<4;s++)
                  {
                    Serial.print(rfid.uid.uidByte[s]);
                    Serial.print(" ");
                 
                  }
                  Serial.println("\nVALID");
                  Sending_To_DB();
                  j=0;
                         
                            rfid.PICC_HaltA(); rfid.PCD_StopCrypto1();   return;
                }
              }
            }
          }
   else
   {j++;
    if(j==No_Of_Card)
    {
      Serial.println("inVALID");
      Sending_To_DB();
      j=0;
    }
   }
  }

   
  rfid.PICC_HaltA();

  // Stop encryption on PCD
  rfid.PCD_StopCrypto1();
 }

 void Sending_To_DB()   //CONNECTING WITH MYSQL
 {
   if (client.connect(server, 80)) {
    Serial.println("connected");
 
       
    client.print("GET /rfid_read.php?allow=");  //YOUR URL
    if(j!=No_Of_Card)
    {
   
      client.print('1');
    }
    else
    {
   
      client.print('0');
    }
    Serial.println("&id=");
    client.print("&id=");
    for(int s=0;s<4;s++)
                  {
                    Serial.println(rfid.uid.uidByte[s]);
                    client.print(rfid.uid.uidByte[s]);
                               
                  }
    client.print(" ");      //SPACE BEFORE HTTP/1.1
    client.print("HTTP/1.1");
    client.print("Host: ");
     client.println(server);
    client.println("Host: YOUR SERVER IP");//eg: 192.168.1.170
    client.println("Connection: close");
    client.println();
  } else {
    // if you didn't get a connection to the server:
    Serial.println("connection failed");
  }
  client.stop();
 }

How to used Gauge in MQTT cloud using Python

How to used Gauge in MQTT cloud using Python:


from Adafruit_IO import Client
aio = Client('Your Adafruit IO Key')

import RPi.GPIO as GPIO
import time
import signal
import sys

# use Raspberry Pi board pin numbers
GPIO.setmode(GPIO.BCM)

aio.send('gauge',10)

data = aio.receive('gauge')
print('Received value: {0}'.format(data.value))


Circuit Diagram:



How to receive data from MQTT Cloud to Raspberry Pi

How to receive data from MQTT Cloud to Raspberry Pi


# Open https://accounts.adafruit.com
# Import standard python modules.
import RPi.GPIO as GPIO

import sys

# Import Adafruit IO MQTT client.
from Adafruit_IO import MQTTClient

GPIO.setmode(GPIO.BCM)

# Set to your Adafruit IO key & username below.
ADAFRUIT_IO_USERNAME      = 'Your Adafruit IO user name'# to find your username
ADAFRUIT_IO_KEY           = 'Your Adafruit IO Key'  # to find in io.adafruit
                                                 

# Set to the ID of the feed to subscribe to for updates.
FEED_ID1 = 'output1'
FEED_ID2 = 'output2'

GPIO.setup(23, GPIO.OUT)
GPIO.output(23, GPIO.LOW)
GPIO.setup(2, GPIO.OUT)
GPIO.output(2, GPIO.LOW)



# Define callback functions which will be called when certain events happen.
def connected(client):
 
    print 'Connected to Adafruit IO!  Listening for {0} changes...'.format(FEED_ID1)
    print 'Connected to Adafruit IO!  Listening for {0} changes...'.format(FEED_ID2)

     # Subscribe to changes on a feed named DemoFeed.
    client.subscribe(FEED_ID1)
    client.subscribe(FEED_ID2)


def disconnected(client):
    # Disconnected function will be called when the client disconnects.
    print 'Disconnected from Adafruit IO!'
    sys.exit(1)

def message(client, feed_id, payload):
    # Message function will be called when a subscribed feed has a new value.
    # The feed_id parameter identifies the feed, and the payload parameter has
    # the new value.
    print 'Feed {0} received new value: {1}'.format(feed_id, payload)
    if feed_id=="output1" and payload=="1":
           GPIO.output(23, GPIO.HIGH)
    if feed_id=="output1" and payload=="0":
        GPIO.output(23, GPIO.LOW)
    if feed_id=="output2" and payload=="1":
        GPIO.output(2, GPIO.HIGH)
    if feed_id=="output2" and payload=="0":
        GPIO.output(2, GPIO.LOW)



    #print 'Feed {0} received new value: {1}'.format(feed_id, payload)


# Create an MQTT client instance.
client = MQTTClient(ADAFRUIT_IO_USERNAME, ADAFRUIT_IO_KEY)

# Setup the callback functions defined above.
client.on_connect    = connected
client.on_disconnect = disconnected
client.on_message    = message

# Connect to the Adafruit IO server.
client.connect()

client.loop_blocking()




Circuit Diagram:



Security System using MQTT Cloud and Ultasonic Sensor

Security System using MQTT Cloud and Ultasonic Sensor


from Adafruit_IO import Client
aio = Client('Your Adafruit IO Key')

import RPi.GPIO as GPIO
import time
import signal
import sys

# use Raspberry Pi board pin numbers
GPIO.setmode(GPIO.BCM)

# set GPIO Pins
pinTrigger = 18
pinEcho = 24

def close(signal, frame):
print("\n ultrasonic distance detection...\n")
GPIO.cleanup()
sys.exit(0)

signal.signal(signal.SIGINT, close)

# set GPIO input and output channels
GPIO.setup(pinTrigger, GPIO.OUT)
GPIO.setup(pinEcho, GPIO.IN)

while True:
# set Trigger to HIGH
GPIO.output(pinTrigger, True)
# set Trigger after 0.01ms to LOW
time.sleep(0.00001)
GPIO.output(pinTrigger, False)

startTime = time.time()
stopTime = time.time()

# save start time
while 0 == GPIO.input(pinEcho):
startTime = time.time()

# save time of arrival
while 1 == GPIO.input(pinEcho):
stopTime = time.time()

# time difference between start and arrival
TimeElapsed = stopTime - startTime
# multiply with the sonic speed (34300 cm/s)
# and divide by 2, because there and back
distance = (TimeElapsed * 34300) / 2

print ("Distance: %.1f cm" % distance)
#        if distance <= 20:
       aio.send('Gauge', distance)
#       aio.send('MSG', "Detected")        
time.sleep(1)
#        else:
                   aio.send('Gauge', distance)
#          aio.send('MSG', "Not Detected")
#        
#
       
data = aio.receive('Gauge')
print('Received value: {0}'.format(data.value))


Circuit Diagram:



How to send Sensor( Ultrasonic) data to MQTT Cloud Server

How to send Sensor( Ultrasonic) data to MQTT Cloud Server:


from Adafruit_IO import Client
aio = Client('Your Adafruit IO Key')

import RPi.GPIO as GPIO
import time
import signal
import sys

# use Raspberry Pi board pin numbers
GPIO.setmode(GPIO.BCM)

# set GPIO Pins
pinTrigger = 18
pinEcho = 24

def close(signal, frame):
print("\n Ultrasonic distance detection \n")
GPIO.cleanup()
sys.exit(0)

signal.signal(signal.SIGINT, close)

# set GPIO input and output channels
GPIO.setup(pinTrigger, GPIO.OUT)
GPIO.setup(pinEcho, GPIO.IN)

while True:
# set Trigger to HIGH
GPIO.output(pinTrigger, True)
# set Trigger after 0.01ms to LOW
time.sleep(0.00001)
GPIO.output(pinTrigger, False)

startTime = time.time()
stopTime = time.time()

# save start time
while 0 == GPIO.input(pinEcho):
startTime = time.time()

# save time of arrival
while 1 == GPIO.input(pinEcho):
stopTime = time.time()

# time difference between start and arrival
TimeElapsed = stopTime - startTime
# multiply with the sonic speed (34300 cm/s)
# and divide by 2, because there and back
distance = (TimeElapsed * 34300) / 2

print ("Distance: %.1f cm" % distance)
#      
       aio.send('Guage', distance)
#        
#
       
data = aio.receive('Gauge')
print('Received value: {0}'.format(data.value))

Circuit Diagram:




How to send Text to MQTT Cloud Server.

How to send Text to MQTT Cloud Server.



from Adafruit_IO import Client
aio = Client('Your Adafruit IO Key')

import RPi.GPIO as GPIO
import time
import signal
import sys

# use Raspberry Pi board pin numbers
GPIO.setmode(GPIO.BCM)

while True:

aio.send('text', "Hello")
print('Received value: {0}'.format(data.value))

Circuit Diagram: