Hello. I am trying to make an automatic plugpoint using nodemcu. It works properly but the only problem I encountered was that the local Ip of my wifi changed everyday. So I decided to use an i2c lcd with it. the lcd doensnt print anything with this code.
#include <ESP8266WiFi.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
const char* ssid = "TP-Link_3540";
const char* password = "saraf123";
int Switch1 = 13;
int Switch2 = 12;
int Switch3 = 15;
//int led = ;
int i;
WiFiServer server(80);
void setup()
{
Serial.begin(115200);
lcd.init();
lcd.init();
lcd.backlight();
pinMode(Switch1, OUTPUT);
digitalWrite(Switch1, HIGH);
pinMode(Switch2, OUTPUT);
digitalWrite(Switch2, HIGH);
pinMode(Switch3, OUTPUT);
digitalWrite(Switch3, HIGH);
// pinMode(led, OUTPUT);
// digitalWrite(led, HIGH);
pinMode(2, OUTPUT);
digitalWrite(2, HIGH);
pinMode(4, OUTPUT);
digitalWrite(4, HIGH);
Serial.println(); // Connect to WiFi network
Serial.print("Connecting to ");
lcd.print("connecting to");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println("WiFi connected");
server.begin(); // Start the server
Serial.println("Server started");
Serial.print("Use this URL to connect: "); // Print the IP address
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
}
void loop()
{
if ((WiFi.status() == WL_CONNECTED) ) {
Serial.println("Connected");
// digitalWrite(led,HIGH);
digitalWrite(2,LOW);
}
if ((WiFi.status() != WL_CONNECTED) ) {
Serial.println("Reconnecting to WiFi...");
digitalWrite(2,HIGH);
// digitalWrite(led,LOW);
WiFi.disconnect();
WiFi.begin(ssid, password);
}
WiFiClient client = server.available(); // Check if a client has connected
if (!client)
{
return;
}
while(!client.available())
{
delay(1);
}
String request = client.readStringUntil('\r'); // Read the first line of the request
Serial.println(request);
client.flush();
if (request.indexOf("/gpio/1") != -1)
{
digitalWrite(Switch1, LOW);
}
if (request.indexOf("/gpio/0") != -1)
{
digitalWrite(Switch1, HIGH);
}
if (request.indexOf("/gpio/2") != -1)
{
digitalWrite(Switch2, LOW);
}
if (request.indexOf("/gpio/3") != -1)
{
digitalWrite(Switch2, HIGH);
}
if (request.indexOf("/gpio/4") != -1)
{
digitalWrite(Switch3, LOW);
}
if (request.indexOf("/gpio/5") != -1)
{
digitalWrite(Switch3, HIGH);
}
if (request.indexOf("/gpio/6") != -1)
{
digitalWrite(4,HIGH);
// digitalWrite(led,LOW);
for(i=0;i<=60;i++){
Serial.println(i);
delay(1000);
if (i==60){
digitalWrite(Switch3, HIGH);
digitalWrite(Switch1, HIGH);
digitalWrite(Switch2, HIGH);
digitalWrite(4,LOW);
}
}
}
if (request.indexOf("/gpio/7") != -1)
{
digitalWrite(4,HIGH);
// digitalWrite(led,LOW);
for(i=0;i<=3600;i++){
Serial.println(i);
delay(1000);
if (i==3600){
digitalWrite(Switch3, HIGH);
digitalWrite(Switch1, HIGH);
digitalWrite(Switch2, HIGH);
digitalWrite(4,LOW);
}
}
}
if (request.indexOf("/gpio/8") != -1)
{
digitalWrite(4,HIGH);
// digitalWrite(led,LOW);
for(i=0;i<=5400;i++){
Serial.println(i);
delay(1000);
if (i==5400){
digitalWrite(Switch3, HIGH);
digitalWrite(Switch1, HIGH);
digitalWrite(Switch2, HIGH);
digitalWrite(4,LOW);
}
}
}
if (request.indexOf("/gpio/9") != -1)
{
digitalWrite(4,HIGH);
// digitalWrite(led,LOW);
for(i=0;i<=7200;i++){
Serial.println(i);
delay(1000);
if (i==7200){
digitalWrite(Switch3, HIGH);
digitalWrite(Switch1, HIGH);
digitalWrite(Switch2, HIGH);
digitalWrite(4,LOW);
}
}
}
// Return the response
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println(""); // do not forget this one
}
but if i use this code then it seems to display just fine
#include <ESP8266WiFi.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
const char* ssid = "TP-Link_3540";
const char* password = "saraf123";
int Switch1 = 13;
int Switch2 = 12;
int Switch3 = 15;
//int led = ;
int i;
WiFiServer server(80);
void setup()
{
Serial.begin(115200);
lcd.init();
lcd.init();
lcd.backlight();
lcd.print("connecting to");
pinMode(Switch1, OUTPUT);
digitalWrite(Switch1, HIGH);
pinMode(Switch2, OUTPUT);
digitalWrite(Switch2, HIGH);
pinMode(Switch3, OUTPUT);
digitalWrite(Switch3, HIGH);
// pinMode(led, OUTPUT);
// digitalWrite(led, HIGH);
pinMode(2, OUTPUT);
digitalWrite(2, HIGH);
pinMode(4, OUTPUT);
digitalWrite(4, HIGH);
Serial.println(); // Connect to WiFi network
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println("WiFi connected");
server.begin(); // Start the server
Serial.println("Server started");
Serial.print("Use this URL to connect: "); // Print the IP address
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
}
void loop()
{
if ((WiFi.status() == WL_CONNECTED) ) {
Serial.println("Connected");
// digitalWrite(led,HIGH);
digitalWrite(2,LOW);
}
if ((WiFi.status() != WL_CONNECTED) ) {
Serial.println("Reconnecting to WiFi...");
digitalWrite(2,HIGH);
// digitalWrite(led,LOW);
WiFi.disconnect();
WiFi.begin(ssid, password);
}
WiFiClient client = server.available(); // Check if a client has connected
if (!client)
{
return;
}
while(!client.available())
{
delay(1);
}
String request = client.readStringUntil('\r'); // Read the first line of the request
Serial.println(request);
client.flush();
if (request.indexOf("/gpio/1") != -1)
{
digitalWrite(Switch1, LOW);
}
if (request.indexOf("/gpio/0") != -1)
{
digitalWrite(Switch1, HIGH);
}
if (request.indexOf("/gpio/2") != -1)
{
digitalWrite(Switch2, LOW);
}
if (request.indexOf("/gpio/3") != -1)
{
digitalWrite(Switch2, HIGH);
}
if (request.indexOf("/gpio/4") != -1)
{
digitalWrite(Switch3, LOW);
}
if (request.indexOf("/gpio/5") != -1)
{
digitalWrite(Switch3, HIGH);
}
if (request.indexOf("/gpio/6") != -1)
{
digitalWrite(4,HIGH);
// digitalWrite(led,LOW);
for(i=0;i<=60;i++){
Serial.println(i);
delay(1000);
if (i==60){
digitalWrite(Switch3, HIGH);
digitalWrite(Switch1, HIGH);
digitalWrite(Switch2, HIGH);
digitalWrite(4,LOW);
}
}
}
if (request.indexOf("/gpio/7") != -1)
{
digitalWrite(4,HIGH);
// digitalWrite(led,LOW);
for(i=0;i<=3600;i++){
Serial.println(i);
delay(1000);
if (i==3600){
digitalWrite(Switch3, HIGH);
digitalWrite(Switch1, HIGH);
digitalWrite(Switch2, HIGH);
digitalWrite(4,LOW);
}
}
}
if (request.indexOf("/gpio/8") != -1)
{
digitalWrite(4,HIGH);
// digitalWrite(led,LOW);
for(i=0;i<=5400;i++){
Serial.println(i);
delay(1000);
if (i==5400){
digitalWrite(Switch3, HIGH);
digitalWrite(Switch1, HIGH);
digitalWrite(Switch2, HIGH);
digitalWrite(4,LOW);
}
}
}
if (request.indexOf("/gpio/9") != -1)
{
digitalWrite(4,HIGH);
// digitalWrite(led,LOW);
for(i=0;i<=7200;i++){
Serial.println(i);
delay(1000);
if (i==7200){
digitalWrite(Switch3, HIGH);
digitalWrite(Switch1, HIGH);
digitalWrite(Switch2, HIGH);
digitalWrite(4,LOW);
}
}
}
// Return the response
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println(""); // do not forget this one
}