Professional Documents
Culture Documents
Există anumiți pini care scot un semnal de 3,3 V atunci când ESP8266 pornește.
Acest lucru poate fi problematic dacă aveți relee sau alte periferice conectate
la acele GPIO.
Următoarele GPIO scot un semnal HIGH la pornire:
GPIO16
GPIO3
GPIO1
GPIO10
GPIO9
*/
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESPAsyncTCP.h>
#include <ESPAsyncWebServer.h>
#include "LittleFS.h"
#include <Arduino_JSON.h>
#include <EEPROM.h>
// Replace with your network credentials
const char* ssid = "PRAM";
const char* password = "123456789";
AsyncWebSocket ws("/ws");
// Set LED GPIO
/*
const int Releu1 = 5;
const int Releu2 = 4;
*/
int dutyCycle1;
int dutyCycle2;
int dutyCycle3;
bool ledState1 = 0;
bool ledState2 = 0;
bool ledState3 = 0;
bool ledState4 = 0;
bool ledState5 = 0;
// Initialize LittleFS
void initFS() {
if (!LittleFS.begin()) {
Serial.println("An error has occurred while mounting LittleFS");
}
else {
Serial.println("LittleFS mounted successfully");
}
}
// Initialize WiFi
void initWiFi() {
/*
WiFi.mode(WIFI_AP);
WiFi.softAP(APssid, APpassword);
//WiFi.begin(ssid, password);
Serial.print("Connecting to WiFi ..");
while (WiFi.status() != WL_CONNECTED) {
Serial.print('.');
delay(1000);
}
Serial.println(WiFi.localIP());
*/
WiFi.softAP(ssid, password,13);
IPAddress IP = WiFi.softAPIP();
Serial.print("AP IP address: ");
Serial.println(IP);
//.....................................
void notifyClients() {
ws.textAll(String(ledState1));
ws.textAll(String(ledState2));
ws.textAll(String(ledState3));
ws.textAll(String(ledState4));
ws.textAll(String(ledState5));
}
EEPROM.write(35, sliderValue2.toInt());
EEPROM.commit();
// EEPROM.update(35, sliderValue2);
Serial.println(dutyCycle2);
Serial.println(getSliderValues());
notifyClients(getSliderValues());
}
//..........................................
if (message.indexOf("3s") >= 0) {
sliderValue3 = message.substring(2);
dutyCycle3 = sliderValue3.toInt();
EEPROM.write(70, sliderValue3.toInt());
EEPROM.commit();
// EEPROM.update(70, sliderValue3);
Serial.println(dutyCycle3);
Serial.print(getSliderValues());
notifyClients(getSliderValues());
}
if (strcmp((char*)data, "getValues") == 0) {
notifyClients(getSliderValues());
}
//.............................................
}
}
void onEvent(AsyncWebSocket *server, AsyncWebSocketClient *client, AwsEventType
type, void *arg, uint8_t *data, size_t len) {
switch (type) {
case WS_EVT_CONNECT:
Serial.printf("WebSocket client #%u connected from %s\n", client->id(),
client->remoteIP().toString().c_str());
break;
case WS_EVT_DISCONNECT:
Serial.printf("WebSocket client #%u disconnected\n", client->id());
break;
case WS_EVT_DATA:
handleWebSocketMessage(arg, data, len);
break;
case WS_EVT_PONG:
case WS_EVT_ERROR:
break;
}
}
void initWebSocket() {
ws.onEvent(onEvent);
server.addHandler(&ws);
}
//............................
if (var == "STATE5") {
if (ledState5) {
return "on";
}
else {
return "off";
}
notifyClients("LED5on");
}
return String();
/*
return String(var == "STATE1" && ledState1 ? "on" : "off");
return String(var == "STATE2" && ledState2 ? "on" : "off");
*/
}
void setup() {
Serial.begin(115200);
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
pinMode(ledPin5, OUTPUT);
pinMode(ledPin6, OUTPUT);
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
digitalWrite(ledPin5, LOW);
pinMode(buttonStanga, INPUT);
pinMode(buttonDreapta, INPUT);
pinMode(buttonOprit, INPUT);
EEPROM.begin(100);
sliderValue1 = EEPROM.read(0);
sliderValue2 = EEPROM.read(35);
sliderValue3 = EEPROM.read(70);
initWiFi();
initFS();
initWebSocket();
// Start server
server.begin();
}
void loop() {
timpP = sliderValue1.toInt();
timpO = sliderValue2.toInt();
timpT = sliderValue3.toInt();
//320
if (tempT <= 80*timpT){
tempT =tempT + 70 - timpP;
}
}
else{
tempT =tempT -(70- timpO);
if (tempT <= 9){
tempT = 0;
}
}
ws.cleanupClients();
}
} */
if (buttonD == LOW && tempS >= 50 ) {
// turn LED on:
ledState2 = HIGH;
digitalWrite(ledPin2, ledState2);
tempD = 0;
notifyClients("LED2on");
// Serial.print("ledPin2");
delay(4);
}
else {
// turn LED off:
ledState2 = LOW;
if (tempT <= 9){
digitalWrite(ledPin2, ledState2);
notifyClients("LED2off");
delay(4);
}
}
else {
if (tempT <= 9){
digitalWrite(ledPin6, HIGH);
}
}
/*
if(ledState3 == true){
notifyClients("LED3on");
}
else{
notifyClients("LED3off");}
if(ledState4 == true){
notifyClients("LED4on");
}
else{
notifyClients("LED4off");}
if(ledState5 == true){
notifyClients("LED5on");
}
else{
notifyClients("LED5off");}
*/
//Serial.println(sliderValue1);
//Serial.println(sliderValue2);
}