Hello, I'm trying to run my Wifi Mesh Door Lock But The Door Unlocking Functions Runs Again and Again. When I Press The Button It Unlocks The Door Again And Again Not Only Once. Can You Help Me To Make The Code If I Press The Once The Door Must Unlock Once
?
I'm Using Wemos D1
Link To Board
Here Is My Code
////Z SHOCK.E
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMesh.h>
#include <TypeConversionFunctions.h>
#include <assert.h>
#include "SSD1306Wire.h"
SSD1306Wire display(0x3c, 5, 4);
const int Zpush = 14;
const uint8_t ZoGo[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0xE0, 0xFF, 0xFF,
0xFF, 0xFF, 0x0F, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00,
0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0xFC, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0xFE, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x01, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03,
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x80, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x03, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07,
0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x80, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x07, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F,
0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xC0, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x0F, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F,
0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xC0, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x0F, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F,
0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xE0, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x0F, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F,
0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xC0, 0xFF, 0xFF, 0x7F,
0xF9, 0xFF, 0xFF, 0x1F, 0xE0, 0xFF, 0xFF, 0x1F, 0xE0, 0xFF, 0xFF, 0x0F,
0xC0, 0xFF, 0xFF, 0x07, 0xC0, 0xFF, 0xFF, 0x0F, 0xE0, 0xFF, 0xFF, 0x03,
0x00, 0xFF, 0xFF, 0x1F, 0xE0, 0xFF, 0xFF, 0x01, 0x00, 0xFE, 0xFF, 0x0F,
0xC0, 0xFF, 0xFF, 0x01, 0x00, 0xFE, 0xFF, 0x0F, 0xC0, 0xFF, 0xFF, 0x00,
0x00, 0xFC, 0xFF, 0x0F, 0xE0, 0xFF, 0x7F, 0x00, 0x00, 0xF8, 0xFF, 0x1F,
0xE0, 0xFF, 0x7F, 0x00, 0x00, 0xF8, 0xFF, 0x0F, 0xC0, 0xFF, 0x3F, 0x00,
0x00, 0xF0, 0xFF, 0x0F, 0xC0, 0xFF, 0x3F, 0x00, 0x00, 0xF0, 0xFF, 0x0F,
0xE0, 0xFF, 0x1F, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0xC0, 0xFF, 0x1F, 0x00,
0x00, 0xE0, 0xFF, 0x1F, 0xE0, 0xFF, 0x1F, 0x00, 0x00, 0xE0, 0xFF, 0x0F,
0xE0, 0xFF, 0x0F, 0x00, 0x00, 0xC0, 0xFF, 0x0F, 0xC0, 0xFF, 0x0F, 0x00,
0x00, 0xC0, 0xFF, 0x0F, 0xC0, 0xFF, 0x0F, 0x00, 0x00, 0xC0, 0xFF, 0x1F,
0xE0, 0xFF, 0x07, 0x00, 0x0C, 0xC0, 0xFF, 0x0F, 0xE0, 0xFF, 0x07, 0x00,
0x0E, 0x80, 0xFF, 0x0F, 0xC0, 0xFF, 0x07, 0x00, 0x0E, 0x80, 0xFF, 0x1F,
0xC0, 0xFF, 0x07, 0x00, 0x0F, 0x90, 0xFF, 0x0F, 0xE0, 0xFF, 0x07, 0x80,
0x1F, 0x9C, 0xFF, 0x0F, 0xC0, 0xFF, 0x07, 0x80, 0x8F, 0x9F, 0xFF, 0x0F,
0xE0, 0xFF, 0x03, 0xC0, 0xEF, 0x9F, 0xFF, 0x0F, 0xC0, 0xFF, 0x03, 0xE0,
0xFD, 0x9F, 0xFF, 0x1F, 0xE0, 0xFF, 0x07, 0xE0, 0xFD, 0x0F, 0xFF, 0x0F,
0xC0, 0xFF, 0x03, 0xF0, 0xFC, 0x8F, 0xFF, 0x0F, 0xE0, 0xFF, 0x03, 0x78,
0xFC, 0x07, 0xFF, 0x1F, 0xE0, 0xFF, 0x03, 0x38, 0xC8, 0x03, 0xFF, 0x0F,
0xC0, 0xFF, 0x03, 0x3C, 0xE0, 0x01, 0xFF, 0x0F, 0xC0, 0xFF, 0x03, 0x1E,
0xE0, 0x01, 0xFF, 0x1F, 0xE0, 0xFF, 0x03, 0x1E, 0xF0, 0x80, 0xFF, 0x0F,
0xE0, 0xFF, 0x03, 0x4F, 0x78, 0x00, 0xFF, 0x0F, 0xC0, 0xFF, 0x83, 0xF7,
0x3C, 0x00, 0xFF, 0x0F, 0xC0, 0xFF, 0x83, 0x7F, 0x3E, 0x00, 0xFF, 0x0F,
0xE0, 0xFF, 0xC3, 0xFF, 0x1E, 0x80, 0xFF, 0x0F, 0xC0, 0xFF, 0xE7, 0xFF,
0x0F, 0x00, 0xFF, 0x1F, 0xE0, 0xFF, 0xE3, 0xFF, 0x07, 0x80, 0xFF, 0x0F,
0xE0, 0xFF, 0xF7, 0xE7, 0x07, 0x80, 0xFF, 0x0F, 0xC0, 0xFF, 0xF7, 0xC1,
0x03, 0x80, 0xFF, 0x1F, 0xC0, 0xFF, 0x77, 0xC0, 0x01, 0x80, 0xFF, 0x0F,
0xE0, 0xFF, 0x07, 0xE0, 0x00, 0x80, 0xFF, 0x0F, 0xE0, 0xFF, 0x07, 0xC0,
0x00, 0xC0, 0xFF, 0x0F, 0xC0, 0xFF, 0x0F, 0x00, 0x00, 0xC0, 0xFF, 0x1F,
0xC0, 0xFF, 0x0F, 0x00, 0x00, 0xC0, 0xFF, 0x0F, 0xE0, 0xFF, 0x0F, 0x00,
0x00, 0xC0, 0xFF, 0x0F, 0xC0, 0xFF, 0x1F, 0x00, 0x00, 0xE0, 0xFF, 0x0F,
0xE0, 0xFF, 0x1F, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0xC0, 0xFF, 0x1F, 0x00,
0x00, 0xE0, 0xFF, 0x1F, 0xE0, 0xFF, 0x3F, 0x00, 0x00, 0xF0, 0xFF, 0x0F,
0xC0, 0xFF, 0x3F, 0x00, 0x00, 0xF0, 0xFF, 0x0F, 0xE0, 0xFF, 0x7F, 0x00,
0x00, 0xF8, 0xFF, 0x0F, 0xE0, 0xFF, 0x7F, 0x00, 0x00, 0xF8, 0xFF, 0x1F,
0xC0, 0xFF, 0xFF, 0x00, 0x00, 0xFC, 0xFF, 0x0F, 0xC0, 0xFF, 0xFF, 0x01,
0x00, 0xFE, 0xFF, 0x0F, 0xE0, 0xFF, 0xFF, 0x01, 0x00, 0xFE, 0xFF, 0x0F,
0xE0, 0xFF, 0xFF, 0x03, 0x80, 0xFF, 0xFF, 0x1F, 0xC0, 0xFF, 0xFF, 0x07,
0x80, 0xFF, 0xFF, 0x0F, 0xC0, 0xFF, 0xFF, 0x1F, 0xE0, 0xFF, 0xFF, 0x0F,
0xE0, 0xFF, 0xFF, 0x7F, 0xFC, 0xFF, 0xFF, 0x1F, 0xC0, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x0F, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F,
0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xC0, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x0F, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F,
0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xC0, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x0F, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F,
0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xC0, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x0F, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F,
0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x80, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x07, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07,
0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03,
0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0xFE, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x01, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0xF8, 0xFF, 0xFF,
0xFF, 0xFF, 0x7F, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00,
0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x80, 0xFF, 0xFF,
0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, };
const uint8_t wifiChen[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xC0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x3F, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xE0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x1F, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x0F, 0x10,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x38, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF0, 0x07, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x07, 0x78,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x03, 0x7C, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF8, 0x03, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x03, 0xFE,
0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x03, 0xFE, 0x01, 0x00, 0x00, 0x00,
0x00, 0xFC, 0x01, 0xFE, 0x01, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0xFF,
0x01, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0xFF, 0x00, 0x00, 0x00, 0x00,
0x00, 0xFC, 0x01, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x7F,
0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00,
0x00, 0xFE, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x80, 0x3F,
0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xC0, 0x3F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x7F, 0xC0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xC0, 0x1F,
0x20, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xC0, 0x1F, 0x60, 0x00, 0x00, 0x00,
0x00, 0x7F, 0xE0, 0x1F, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xE0, 0x0F,
0xF0, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xE0, 0x0F, 0xF0, 0x00, 0x00, 0x00,
0x00, 0x7F, 0xE0, 0x0F, 0xF8, 0x01, 0x00, 0x00, 0x80, 0x3F, 0xE0, 0x0F,
0xF8, 0x01, 0x00, 0x00, 0x00, 0x3F, 0xE0, 0x0F, 0xFC, 0x03, 0x00, 0x00,
0x80, 0x3F, 0xF0, 0x07, 0xFC, 0x03, 0x00, 0x00, 0x80, 0x3F, 0xF0, 0x07,
0xFC, 0x03, 0x00, 0x00, 0x80, 0x3F, 0xF0, 0x07, 0xFC, 0x01, 0x00, 0x00,
0x80, 0x3F, 0xF0, 0x07, 0xFC, 0x01, 0x00, 0x00, 0x80, 0x1F, 0xF0, 0x07,
0xFE, 0x01, 0x00, 0x00, 0x80, 0x3F, 0xF0, 0x07, 0xFE, 0x00, 0x00, 0x00,
0x80, 0x1F, 0xF0, 0x03, 0xFE, 0x00, 0x1E, 0x00, 0x80, 0x1F, 0xF0, 0x03,
0xFE, 0x00, 0x3F, 0x00, 0x80, 0x1F, 0xF8, 0x03, 0x7E, 0x80, 0x7F, 0x00,
0xC0, 0x1F, 0xF0, 0x03, 0x7F, 0xC0, 0x7F, 0x00, 0x80, 0x1F, 0xF8, 0x03,
0x7F, 0xE0, 0xFF, 0x00, 0xC0, 0x1F, 0xF8, 0x03, 0x7E, 0xE0, 0xFF, 0x00,
0x80, 0x1F, 0xF0, 0x03, 0x7F, 0xE0, 0xFF, 0x01, 0xC0, 0x1F, 0xF8, 0x03,
0x7F, 0xE0, 0xFF, 0x01, 0x80, 0x1F, 0xF8, 0x03, 0x3F, 0xF0, 0xFF, 0x01,
0x80, 0x1F, 0xF8, 0x03, 0x7F, 0xF0, 0xFF, 0x01, 0xC0, 0x1F, 0xF8, 0x01,
0x3F, 0xF0, 0xFF, 0x03, 0xC0, 0x1F, 0xF8, 0x03, 0x3F, 0xF0, 0xFF, 0x01,
0x80, 0x1F, 0xF8, 0x03, 0x7F, 0xF0, 0xFF, 0x03, 0xC0, 0x1F, 0xF8, 0x01,
0x3F, 0xF0, 0xFF, 0x01, 0x80, 0x1F, 0xF8, 0x03, 0x7F, 0xF0, 0xFF, 0x03,
0x80, 0x1F, 0xF8, 0x03, 0x3F, 0xF0, 0xFF, 0x03, 0xC0, 0x1F, 0xF8, 0x03,
0x7F, 0xF0, 0xFF, 0x01, 0xC0, 0x1F, 0xF8, 0x01, 0x7F, 0xF0, 0xFF, 0x01,
0x80, 0x1F, 0xF8, 0x03, 0x7F, 0xE0, 0xFF, 0x01, 0xC0, 0x1F, 0xF8, 0x03,
0x7F, 0xE0, 0xFF, 0x01, 0x80, 0x1F, 0xF0, 0x03, 0x7F, 0xE0, 0xFF, 0x00,
0x80, 0x1F, 0xF8, 0x03, 0x7E, 0xC0, 0xFF, 0x00, 0x80, 0x1F, 0xF8, 0x03,
0x7E, 0xC0, 0x7F, 0x00, 0xC0, 0x1F, 0xF0, 0x03, 0xFF, 0x80, 0x7F, 0x00,
0x80, 0x1F, 0xF0, 0x03, 0xFE, 0x80, 0x3F, 0x00, 0x80, 0x3F, 0xF0, 0x03,
0xFE, 0x00, 0x1E, 0x00, 0x80, 0x1F, 0xF0, 0x07, 0xFE, 0x00, 0x00, 0x00,
0x80, 0x3F, 0xF0, 0x07, 0xFE, 0x01, 0x00, 0x00, 0x80, 0x1F, 0xF0, 0x07,
0xFC, 0x01, 0x00, 0x00, 0x80, 0x3F, 0xF0, 0x07, 0xFC, 0x01, 0x00, 0x00,
0x80, 0x3F, 0xF0, 0x07, 0xFC, 0x03, 0x00, 0x00, 0x00, 0x3F, 0xE0, 0x07,
0xFC, 0x03, 0x00, 0x00, 0x80, 0x3F, 0xE0, 0x0F, 0xF8, 0x03, 0x00, 0x00,
0x80, 0x3F, 0xE0, 0x0F, 0xF8, 0x01, 0x00, 0x00, 0x00, 0x3F, 0xE0, 0x0F,
0xF8, 0x01, 0x00, 0x00, 0x00, 0x7F, 0xE0, 0x0F, 0xF8, 0x00, 0x00, 0x00,
0x00, 0x7F, 0xE0, 0x0F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xC0, 0x1F,
0x70, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xC0, 0x1F, 0x60, 0x00, 0x00, 0x00,
0x00, 0x7F, 0xC0, 0x1F, 0x20, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xC0, 0x3F,
0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xC0, 0x3F, 0x00, 0x00, 0x00, 0x00,
0x00, 0xFE, 0x80, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x80, 0x7F,
0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00,
0x00, 0xFE, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x01, 0xFF,
0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0xFF, 0x00, 0x00, 0x00, 0x00,
0x00, 0xFC, 0x01, 0xFE, 0x01, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0xFE,
0x01, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x03, 0xFE, 0x01, 0x00, 0x00, 0x00,
0x00, 0xF8, 0x03, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x03, 0xFC,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x03, 0x7C, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF8, 0x07, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x38,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x0F, 0x30, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF0, 0x0F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x0F, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xE0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x1F, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xC0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x7F, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, };
const uint8_t wifiCon[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xF8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x03,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x07, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xFC, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x0F,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xFE, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x1F,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x1F,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x07,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00,
0x00, 0xC0, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x03,
0x02, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x03, 0x06, 0x00, 0x00, 0x00,
0x00, 0xC0, 0xFF, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x01,
0x0F, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x81, 0x0F, 0x00, 0x00, 0x00,
0x00, 0xE0, 0xFF, 0x81, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xC0,
0x1F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xC0, 0x3F, 0x00, 0x00, 0x00,
0x00, 0xF0, 0x7F, 0xC0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xE0,
0x7F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x7F, 0xE0, 0x7F, 0x00, 0x00, 0x00,
0x00, 0xF8, 0x7F, 0xE0, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x7F, 0xF0,
0xFF, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x3F, 0xF0, 0xFF, 0x01, 0x00, 0x00,
0x00, 0xF8, 0x3F, 0xF0, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x3F, 0xF0,
0xFF, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x3F, 0xF8, 0xFF, 0x00, 0x00, 0x00,
0x00, 0xF8, 0x1F, 0xF8, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x1F, 0xF8,
0x7F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x1F, 0xF8, 0x3F, 0x00, 0x00, 0x00,
0x00, 0xFC, 0x1F, 0xFC, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x1F, 0xFC,
0x3F, 0x10, 0x00, 0x00, 0x00, 0xFC, 0x1F, 0xFC, 0x1F, 0x10, 0x00, 0x00,
0x00, 0xFC, 0x0F, 0xFC, 0x1F, 0x38, 0x00, 0x00, 0x00, 0xFC, 0x0F, 0xFC,
0x1F, 0x78, 0x00, 0x00, 0x00, 0xFC, 0x1F, 0xFE, 0x0F, 0x7C, 0x00, 0x00,
0x00, 0xFC, 0x0F, 0xFE, 0x0F, 0xFC, 0x00, 0x00, 0x00, 0xFE, 0x0F, 0xFE,
0x0F, 0xFC, 0x00, 0x00, 0x00, 0xFC, 0x0F, 0xFE, 0x0F, 0xFE, 0x01, 0x00,
0x00, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x01, 0x00, 0x00, 0xFE, 0x07, 0xFE,
0x0F, 0xFE, 0x03, 0x00, 0x00, 0xFE, 0x0F, 0xFE, 0x07, 0xFE, 0x03, 0x00,
0x00, 0xFE, 0x0F, 0xFF, 0x07, 0xFE, 0x07, 0x00, 0x00, 0xFE, 0x07, 0xFE,
0x07, 0xFF, 0x07, 0x00, 0x00, 0xFE, 0x07, 0xFE, 0x07, 0xFF, 0x0F, 0x00,
0x00, 0xFE, 0x0F, 0xFF, 0x07, 0xFF, 0x0F, 0x00, 0x00, 0xFE, 0x07, 0xFF,
0x07, 0xFF, 0x1F, 0x00, 0x00, 0xFE, 0x07, 0xFE, 0x07, 0xFF, 0x3F, 0x00,
0x00, 0xFE, 0x07, 0xFF, 0x07, 0xFF, 0x3F, 0x00, 0x00, 0xFE, 0x0F, 0xFF,
0x87, 0xFF, 0x3F, 0x00, 0x00, 0xFE, 0x07, 0xFE, 0x07, 0xFF, 0x7F, 0x00,
0x00, 0xFE, 0x07, 0xFF, 0x03, 0xFF, 0x7F, 0x00, 0x00, 0xFE, 0x0F, 0xFF,
0x07, 0xFF, 0x7F, 0x00, 0x00, 0xFE, 0x07, 0xFF, 0x03, 0xFF, 0x7F, 0x00,
0x00, 0xFE, 0x07, 0xFE, 0x87, 0xFF, 0x7F, 0x00, 0x00, 0xFE, 0x07, 0xFF,
0x07, 0xFF, 0x3F, 0x00, 0x00, 0xFE, 0x07, 0xFE, 0x07, 0xFF, 0x1F, 0x00,
0x00, 0xFE, 0x0F, 0xFF, 0x07, 0xFF, 0x1F, 0x00, 0x00, 0xFE, 0x07, 0xFF,
0x07, 0xFF, 0x0F, 0x00, 0x00, 0xFE, 0x0F, 0xFE, 0x07, 0xFF, 0x0F, 0x00,
0x00, 0xFE, 0x0F, 0xFF, 0x07, 0xFE, 0x07, 0x00, 0x00, 0xFE, 0x07, 0xFE,
0x07, 0xFF, 0x07, 0x00, 0x00, 0xFE, 0x0F, 0xFE, 0x07, 0xFE, 0x03, 0x00,
0x00, 0xFE, 0x0F, 0xFE, 0x0F, 0xFE, 0x03, 0x00, 0x00, 0xFE, 0x0F, 0xFE,
0x0F, 0xFE, 0x03, 0x00, 0x00, 0xFC, 0x0F, 0xFE, 0x0F, 0xFE, 0x3F, 0x00,
0x00, 0xFE, 0x0F, 0xFE, 0x0F, 0xFC, 0xFF, 0x00, 0x00, 0xFC, 0x0F, 0xFE,
0x0F, 0xFC, 0xFF, 0x01, 0x00, 0xFC, 0x0F, 0xFE, 0x0F, 0xFC, 0xFF, 0x01,
0x00, 0xFC, 0x1F, 0xFC, 0x1F, 0xF8, 0xFF, 0x07, 0x00, 0xFC, 0x0F, 0xFC,
0x1F, 0xF8, 0xE1, 0x07, 0x00, 0xFC, 0x1F, 0xFC, 0x1F, 0x7C, 0x80, 0x0F,
0x00, 0xFC, 0x1F, 0xFC, 0x3F, 0x3C, 0x00, 0x0F, 0x00, 0xFC, 0x1F, 0xFC,
0x3F, 0x3C, 0x00, 0x1E, 0x00, 0xF8, 0x1F, 0xF8, 0x3F, 0x1E, 0x00, 0x1E,
0x00, 0xFC, 0x1F, 0xFC, 0x7F, 0x0E, 0x00, 0x1C, 0x00, 0xF8, 0x3F, 0xF8,
0x7F, 0x0F, 0x00, 0x38, 0x00, 0xF8, 0x1F, 0xF8, 0xFF, 0x0F, 0x18, 0x38,
0x00, 0xF8, 0x3F, 0xF8, 0xFF, 0x07, 0x18, 0x38, 0x00, 0xF8, 0x3F, 0xF0,
0xFF, 0x03, 0x3C, 0x70, 0x00, 0xF8, 0x3F, 0xF0, 0xFF, 0x03, 0x38, 0x70,
0x00, 0xF0, 0x7F, 0xF0, 0xFF, 0x03, 0x38, 0x70, 0x00, 0xF8, 0x7F, 0xF0,
0xFF, 0x03, 0x78, 0xE0, 0x00, 0xF0, 0x7F, 0xE0, 0xFF, 0x03, 0x70, 0x60,
0x00, 0xF0, 0x7F, 0xE0, 0xFF, 0x01, 0xF0, 0xE0, 0x00, 0xF0, 0xFF, 0xC0,
0xFF, 0x01, 0xE0, 0x60, 0x00, 0xF0, 0xFF, 0xC0, 0xBF, 0x01, 0xE0, 0xE0,
0x00, 0xE0, 0xFF, 0xC0, 0xDF, 0x01, 0xE0, 0xE1, 0x00, 0xE0, 0xFF, 0x81,
0xDF, 0x01, 0xE0, 0xE1, 0x00, 0xE0, 0xFF, 0x81, 0x8F, 0x01, 0xF0, 0xC0,
0x00, 0xE0, 0xFF, 0x01, 0x8F, 0x01, 0x70, 0xE0, 0x00, 0xC0, 0xFF, 0x01,
0xC7, 0x01, 0x78, 0xC0, 0x00, 0xC0, 0xFF, 0x03, 0x83, 0x01, 0x3C, 0xE0,
0x00, 0xC0, 0xFF, 0x03, 0xC2, 0x01, 0x3C, 0xE0, 0x00, 0xC0, 0xFF, 0x07,
0xC0, 0x01, 0x1E, 0xE0, 0x00, 0x80, 0xFF, 0x07, 0x80, 0x01, 0x1E, 0xE0,
0x00, 0x80, 0xFF, 0x07, 0x80, 0x01, 0x0F, 0x60, 0x00, 0x80, 0xFF, 0x0F,
0x80, 0x03, 0x0F, 0xE0, 0x00, 0x80, 0xFF, 0x0F, 0x80, 0x83, 0x07, 0x70,
0x00, 0x00, 0xFF, 0x1F, 0x80, 0xC3, 0x03, 0x70, 0x00, 0x00, 0xFF, 0x1F,
0x80, 0xC3, 0x03, 0x70, 0x00, 0x00, 0xFF, 0x3F, 0x00, 0xE7, 0x01, 0x70,
0x00, 0x00, 0xFE, 0x1F, 0x00, 0xC7, 0x00, 0x78, 0x00, 0x00, 0xFE, 0x1F,
0x00, 0xC7, 0x00, 0x38, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x8E, 0x00, 0x3C,
0x00, 0x00, 0xFC, 0x0F, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x00, 0xFC, 0x07,
0x00, 0x1E, 0x00, 0x1C, 0x00, 0x00, 0xF8, 0x07, 0x00, 0x3C, 0x00, 0x1E,
0x00, 0x00, 0xF8, 0x07, 0x00, 0x7C, 0x00, 0x0F, 0x00, 0x00, 0xF8, 0x03,
0x00, 0x78, 0xC0, 0x0F, 0x00, 0x00, 0xF0, 0x01, 0x00, 0xF8, 0xE5, 0x07,
0x00, 0x00, 0xF0, 0x00, 0x00, 0xF0, 0xFF, 0x07, 0x00, 0x00, 0xE0, 0x00,
0x00, 0xF0, 0xFF, 0x01, 0x00, 0x00, 0xE0, 0x00, 0x00, 0xC0, 0xFF, 0x01,
0x00, 0x00, 0x60, 0x00, 0x00, 0xC0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x5E, 0x00, };
const uint8_t Zlock[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x03, 0x00,
0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0xE0,
0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x1F, 0x00,
0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xF0,
0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0x7F, 0x00,
0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xF0,
0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0x00,
0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01,
0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xE0, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03,
0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xF8, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x07, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07,
0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0xFE, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x07, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F,
0x00, 0xFE, 0x07, 0xF0, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0xFE, 0x01, 0xF0,
0xFF, 0xFF, 0xFF, 0x07, 0x00, 0xFF, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0x0F,
0x00, 0xFF, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x7F, 0x00, 0xF0,
0xFF, 0xFF, 0xFF, 0x0F, 0x80, 0x7F, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0x0F,
0x80, 0x3F, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0x0F, 0x80, 0x3F, 0x00, 0xF0,
0xFF, 0xFF, 0xFF, 0x0F, 0x80, 0x1F, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0x0F,
0x80, 0x1F, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0x0F, 0x80, 0x1F, 0x00, 0xF0,
0xFF, 0xFF, 0xFF, 0x0F, 0xC0, 0x1F, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0x0F,
0xC0, 0x0F, 0x00, 0xF0, 0xFF, 0xFC, 0xFF, 0x0F, 0xC0, 0x1F, 0x00, 0xF0,
0x7F, 0xF8, 0xFF, 0x0F, 0xC0, 0x0F, 0x00, 0xF0, 0x7F, 0xF8, 0xFF, 0x0F,
0xC0, 0x0F, 0x00, 0xF0, 0x3F, 0xF0, 0xFF, 0x0F, 0xC0, 0x0F, 0x00, 0xF0,
0x3F, 0x00, 0xFC, 0x0F, 0xC0, 0x0F, 0x00, 0xF0, 0x3F, 0x00, 0xFC, 0x0F,
0xC0, 0x0F, 0x00, 0xF0, 0x3F, 0x00, 0xFC, 0x0F, 0xC0, 0x0F, 0x00, 0xF0,
0x3F, 0x00, 0xFE, 0x0F, 0xC0, 0x0F, 0x00, 0xF0, 0x3F, 0xF0, 0xFF, 0x0F,
0xC0, 0x0F, 0x00, 0xF0, 0x7F, 0xF8, 0xFF, 0x0F, 0xC0, 0x0F, 0x00, 0xF0,
0x7F, 0xF8, 0xFF, 0x0F, 0xC0, 0x1F, 0x00, 0xF0, 0xFF, 0xFC, 0xFF, 0x0F,
0xC0, 0x1F, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0x0F, 0x80, 0x1F, 0x00, 0xF0,
0xFF, 0xFF, 0xFF, 0x0F, 0x80, 0x1F, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0x0F,
0x80, 0x1F, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0x0F, 0x80, 0x3F, 0x00, 0xF0,
0xFF, 0xFF, 0xFF, 0x0F, 0x80, 0x3F, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0x0F,
0x80, 0x7F, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x7F, 0x00, 0xF0,
0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0xFF, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0x0F,
0x00, 0xFF, 0x01, 0xF0, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0xFE, 0x01, 0xF0,
0xFF, 0xFF, 0xFF, 0x07, 0x00, 0xFE, 0x07, 0xF0, 0xFF, 0xFF, 0xFF, 0x0F,
0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0xFC, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x07, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07,
0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0xF8, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x07, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07,
0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xE0, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03,
0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0x01,
0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xF0,
0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0x7F, 0x00,
0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xE0,
0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x3F, 0x00,
0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xE0,
0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x07, 0x00,
0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80,
0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, };
const uint8_t ZunLock[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF8, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x0F,
0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00,
0x00, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x0F,
0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00,
0x80, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x0F,
0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00,
0xE0, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x7F, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xF0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xF8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x03, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xF8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xF8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xF8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFC, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x01, 0x00, 0x00,
0xF0, 0xFF, 0xFF, 0x07, 0xFC, 0x01, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F,
0xFC, 0x01, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x3F, 0xF8, 0x01, 0x00, 0x00,
0xFC, 0xFF, 0xFF, 0x3F, 0xF8, 0x03, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x7F,
0xF8, 0x03, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x7F, 0xF8, 0x07, 0x00, 0x00,
0xFE, 0xFF, 0xFF, 0x7F, 0xF0, 0x07, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x7F,
0xF0, 0x07, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x1F, 0x00, 0x00,
0xFE, 0xFF, 0xFF, 0xFF, 0xF0, 0x1F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0xE0, 0x7F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFE, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xF8, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xCF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x87, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0xFF, 0x87, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
0xFF, 0x03, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03, 0xC0, 0xFF,
0x00, 0x00, 0x00, 0x00, 0xFF, 0x03, 0xC0, 0xFF, 0x00, 0x00, 0x00, 0x00,
0xFF, 0x03, 0xC0, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03, 0xE0, 0xFF,
0x00, 0x00, 0x00, 0x00, 0xFF, 0x03, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
0xFF, 0x87, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x87, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0xFF, 0xCF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00,
0xFE, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x7F,
0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00,
0xFC, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x1F,
0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, };
const char exampleMeshName[] PROGMEM = "Z SHOCK.E";
const char exampleWiFiPassword[] PROGMEM = "Zy7%&(*Cvbnjforoobar82#67cm_-_(:))";
unsigned int requestNumber = 0;
unsigned int responseNumber = 0;
String manageRequest(const String &request, ESP8266WiFiMesh &meshInstance);
transmission_status_t manageResponse(const String &response, ESP8266WiFiMesh &meshInstance);
void networkFilter(int numberOfNetworks, ESP8266WiFiMesh &meshInstance);
/* Create the mesh node object */
ESP8266WiFiMesh meshNode = ESP8266WiFiMesh(manageRequest, manageResponse, networkFilter, FPSTR(exampleWiFiPassword), FPSTR(exampleMeshName), "", true);
/**
Callback for when other nodes send you a request
@param request The request string received from another node in the mesh
@param meshInstance The ESP8266WiFiMesh instance that called the function.
@returns The string to send back to the other node
*/
String manageRequest(const String &request, ESP8266WiFiMesh &meshInstance) {
// We do not store strings in flash (via F()) in this function.
// The reason is that the other node will be waiting for our response,
// so keeping the strings in RAM will give a (small) improvement in response time.
// Of course, it is advised to adjust this approach based on RAM requirements.
/* Print out received message */
Serial.print("Request received: ");
Serial.println(request);
/* return a string to send back */
return ("Hello world response #" + String(responseNumber++) + " from " + meshInstance.getMeshName() + meshInstance.getNodeID() + ".");
}
transmission_status_t manageResponse(const String &response, ESP8266WiFiMesh &meshInstance) {
transmission_status_t statusCode = TS_TRANSMISSION_COMPLETE;
/* Print out received message */
Serial.print(F("Request sent: "));
Serial.println(meshInstance.getMessage());
Serial.print(F("Response received: "));
Serial.println(response);
if (response == "ZunLocked")
ZunLocked();
meshInstance.setMessage(String(F("Hello world request #")) + String(++requestNumber) + String(F(" from "))
+ meshInstance.getMeshName() + meshInstance.getNodeID() + String(F(".")));
// (void)meshInstance; // This is useful to remove a "unused parameter" compiler warning. Does nothing else.
return statusCode;
}
void networkFilter(int numberOfNetworks, ESP8266WiFiMesh &meshInstance) {
for (int networkIndex = 0; networkIndex < numberOfNetworks; ++networkIndex) {
String currentSSID = WiFi.SSID(networkIndex);
int meshNameIndex = currentSSID.indexOf(meshInstance.getMeshName());
/* Connect to any _suitable_ APs which contain meshInstance.getMeshName() */
if (meshNameIndex >= 0) {
uint64_t targetNodeID = stringToUint64(currentSSID.substring(meshNameIndex + meshInstance.getMeshName().length()));
if (targetNodeID < stringToUint64(meshInstance.getNodeID())) {
ESP8266WiFiMesh::connectionQueue.push_back(NetworkInfo(networkIndex));
}
}
}
}
void conchan() {
display.drawFastImage( 0, 0, 128, 64, wifiChen);
display.display();
delay(3000);
display.clear();
display.display();
}
void unlock() {
String request = String(F("ZunLock"));
meshNode.attemptTransmission(request, false);
display.clear();
display.display();
display.drawFastImage( 0, 0, 128, 64, ZunLock);
display.display();
Zslock();
}
void con() {
display.setFont(ArialMT_Plain_10);
display.setLogBuffer(2,15 );
display.print("Connecting");
delay(300);
display.print(".");
display.drawLogBuffer(0, 0);
display.display();
delay(300);
display.print(".");
display.drawLogBuffer(0, 0);
display.display();
delay(300);
display.print(".");
display.drawLogBuffer(0, 0);
display.display();
delay(300);
display.print(".");
display.drawLogBuffer(0, 0);
display.display();
delay(300);
display.print(".");
display.drawLogBuffer(0, 0);
display.display();
delay(300);
display.print(".");
display.drawLogBuffer(0, 0);
display.display();
contrue();
}
void contrue() {
display.clear();
display.display();
display.drawFastImage( 0, 0, 128, 64, wifiCon);
display.display();
delay(2000);
display.clear();
display.display();
}
void Zslock() {
delay(1000);
display.clear();
display.display();
display.drawFastImage( 0, 0, 128, 64, Zlock);
display.display();
delay(1000);
display.clear();
display.display();
}
void ZunLocked() {
display.clear();
display.display();
display.drawFastImage( 0, 0, 128, 64, ZunLock);
display.display();
Zslock();
}
void Zintro() {
Serial.print("\nZ SHOCK.E Admin Mesh Server");
Serial.print("\nStarting Z SHOCK.E Admin Mesh Server.......................................................");
display.drawFastImage( 0, 0, 128, 64, ZoGo);
display.display();
delay(4000);
display.setFont(ArialMT_Plain_16);
display.clear();
display.display();
}
void Zinit() {
display.init();
display.setContrast(255);
}
void setup() {
// Prevents the flash memory from being worn out, see: https://github.com/esp8266/Arduino/issues/1054 .
// This will however delay node WiFi start-up by about 700 ms. The delay is 900 ms if we otherwise would have stored the WiFi network we want to connect to.
WiFi.persistent(false);
pinMode(Zpush, INPUT);
Zinit();
Zintro();
Serial.begin(115200);
delay(50); // Wait for Serial.
con();
//yield(); // Use this if you don't want to wait for Serial.
// The WiFi.disconnect() ensures that the WiFi is working correctly. If this is not done before receiving WiFi connections,
// those WiFi connections will take a long time to make or sometimes will not work at all.
WiFi.disconnect();
Serial.println();
Serial.println();
Serial.println(F("Setting up mesh node..."));
/* Initialise the mesh node */
meshNode.begin();
meshNode.activateAP(); // Each AP requires a separate server port.
meshNode.setStaticIP(IPAddress(192, 168, 4, 22)); // Activate static IP mode to speed up connection times.
}
int32_t timeOfLastScan = -10000;
void loop() {
if (digitalRead(Zpush) == 0) {
delay(100);
unlock();
}
if (millis() - timeOfLastScan > 3000 // Give other nodes some time to connect between data transfers.
|| (WiFi.status() != WL_CONNECTED && millis() - timeOfLastScan > 2000)) { // Scan for networks with two second intervals when not already connected.
timeOfLastScan = millis();
// One way to check how attemptTransmission worked out
if (ESP8266WiFiMesh::latestTransmissionSuccessful()) {
Serial.println(F("Transmission successful."));
}
// Another way to check how attemptTransmission worked out
if (ESP8266WiFiMesh::latestTransmissionOutcomes.empty()) {
Serial.println(F("No mesh AP found."));
} else {
for (TransmissionResult &transmissionResult : ESP8266WiFiMesh::latestTransmissionOutcomes) {
if (transmissionResult.transmissionStatus == TS_TRANSMISSION_FAILED) {
Serial.println(String(F("Transmission failed to mesh AP ")) + transmissionResult.SSID);
} else if (transmissionResult.transmissionStatus == TS_CONNECTION_FAILED) {
Serial.println(String(F("Connection failed to mesh AP ")) + transmissionResult.SSID);
} else if (transmissionResult.transmissionStatus == TS_TRANSMISSION_COMPLETE) {
} else {
Serial.println(String(F("Invalid transmission status for ")) + transmissionResult.SSID + String(F("!")));
assert(F("Invalid transmission status returned from responseHandler!") && false);
}
}
}
Serial.println();
} else {
/* Accept any incoming connections */
meshNode.acceptRequest();
}
}