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);
}