I am trying to turn an LED on/off by using GSM 808 module. Here #a0 = LED off
and #a1 = LED on
. I have used lcdShow
function to display characters in LCD display. But nothing appears on display. What is wrong in this code?
#include <SoftwareSerial.h>
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
//I2C pins declaration
LiquidCrystal_I2C lcd (0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
SoftwareSerial SIM808 (10, 11);
char inchar;
const int LED = 2;
void setup ()
{
Serial.begin (9600);
SIM808.begin (9600);
delay (10000);
SIM808.print ("AT+CMGF=1\r");
delay (100);
SIM808.print ("AT+CNMI = 2,2,0,0,0\r");
delay (100);
lcd.begin (16, 2);
lcd.backlight ();
delay (1000);
pinMode (LED, OUTPUT);
digitalWrite (LED, HIGH);
}
void loop ()
{
if (SIM808.available () > 0)
{
inchar = SIM808.read ();
if (inchar == '#')
{
lcdShow (inchar);
delay (10);
inchar = SIM808.read ();
if (inchar == 'a')
{
lcdShow (inchar);
delay (10);
inchar = SIM808.read ();
if (inchar == '0')
{
lcdShow (inchar);
digitalWrite (LED, LOW);
}
else if (inchar == '1')
{
lcdShow (inchar);
digitalWrite (LED, HIGH);
}
}
}
SIM808.println ("AT+CMGD = 1,4");
}
}
void lcdShow (char i)
{
lcd.setCursor (0, 0);
lcd.print (i);
delay (5000);
}