Required:
1. NodeMCU ESP8266 Module
2. Arduino IDE
3. Relay Module
4. Virtuino App Download from google play store: https://play.google.com/store/apps/details?id=com.virtuino_automations.virtuino&hl=en
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Code:
/* Virtuino NodeMCU ESP8266 web server and WiFi multi acess point
* Created by Rishikesh Kumar
* Updated/Edited November 2017
* Before running this code config the settings below as the instructions on the right
* Download latest Virtuino android app from the link: https://play.google.com/store/apps/details?id=com.virtuino_automations.virtuino&hl=el
* Contact address for questions or comments: kumar.rishikesh5@gmail.com
*/
/*========= Virtuino General methods
*
* void vDigitalMemoryWrite(int digitalMemoryIndex, int value) write a value to a Virtuino digital memory (digitalMemoryIndex=0..31, value range = 0 or 1)
* int vDigitalMemoryRead(int digitalMemoryIndex) read the value of a Virtuino digital memory (digitalMemoryIndex=0..31, returned value range = 0 or 1)
* void vMemoryWrite(int memoryIndex, float value); write a value to Virtuino memory (memoryIndex=0..31, value range as float value)
* float vMemoryRead(int memoryIndex); read a value of Virtuino memory (memoryIndex=0..31, returned a float value
* run(); neccesary command to communicate with Virtuino android app (on start of void loop)
* int getPinValue(int pin); read the value of a Pin. Usefull to read the value of a PWM pin
* long lastCommunicationTime; Stores the last communication with Virtuino time
*/
// 1. On Arduino IDE software select the board NodeMCU. If the board isn't in boards list, open the boards manager, on the search line enter esp8266 and download all ESP8266 boards
// 2. Open the Virtuino library file: VirtuinoESP.h, enable the line #define NODEMCU and disable the other boards
// 3. Connect the NODEMCU ESP8266 module to usb and upload this code
#include <ESP8266WiFi.h>
#include "Virtuino_ESP_WifiServer.h"
WiFiServer server(8000); // Set Server port
Virtuino_ESP_WifiServer virtuino(&server);
//Its availavle pin in NodeMCU ESP8266 pins= D0,D1,D2,D3,D4,D5,D6,D7,D8,D9,D10
// Example variables
int storedValue=0;
int counter =0;
long storedTime=0;
//============================================================== setup
void setup() {
//----- Virtuino settings
virtuino.DEBUG=true; // set this value TRUE to enable the serial monitor status
Serial.begin(9600); // Enable this line only if DEBUG=true
delay(10);
//----- NodeMCU module settings
//----- prepare GPIO2
pinMode(2, OUTPUT);
digitalWrite(2, 0);
// Settings as Access point - Create a private Wifi Network. Enable the next five lines to use module as Acces point
Serial.print("Setting soft-AP ... "); // Default IP: 192.168.4.1
WiFi.mode(WIFI_AP); // Config module as Acces point only. Set WiFi.mode(WIFI_AP_STA); to config module as Acces point and station
boolean result = WiFi.softAP("Vicinity InfoIndia", "12345678"); // SSID: Vicinity India Password:12345678
if(result == true) Serial.println("Vicinity India Server Ready");
else Serial.println("Failed!");
// ---- Start the server
server.begin();
Serial.println("Vicinity India Server started");
//---- Enter your setup code below
pinMode(D0,OUTPUT);
pinMode(D1,OUTPUT);
pinMode(D2,OUTPUT);
pinMode(D3,OUTPUT);
pinMode(D4,OUTPUT);
pinMode(D5,OUTPUT);
pinMode(D6,OUTPUT);
pinMode(D7,OUTPUT);
pinMode(D8,OUTPUT);
}
//============================================================== loop
void loop() {
virtuino.run();
// enter your loop code here.
//------ avoid to use delay() function in your code
int v=virtuino.vDigitalMemoryRead(0); // Read virtual memory 0 from Virtuino app
if (v!=storedValue)
{
Serial.println("-------Virtual pin DV0 is changed to="+String(v));
if (v==1) digitalWrite(D0,0);
else digitalWrite(D0,1);
if (v==1) digitalWrite(D1,0);
else digitalWrite(D1,1);
if (v==1) digitalWrite(D2,0);
else digitalWrite(D2,1);
if (v==1) digitalWrite(D3,0);
else digitalWrite(D3,1);
if (v==1) digitalWrite(D4,0);
else digitalWrite(D4,1);
if (v==1) digitalWrite(D5,0);
else digitalWrite(D5,1);
if (v==1) digitalWrite(D6,0);
else digitalWrite(D6,1);
if (v==1) digitalWrite(D7,0);
else digitalWrite(D7,1);
if (v==1) digitalWrite(D8,0);
else digitalWrite(D8,1);
storedValue=v;
}
}
Virtuino App Setting: https://www.youtube.com/watch?v=jTH_XYxDhuc&feature=youtu.be