Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**************************************************************
- ta procedura nie zatrzymuje programu przy braku sieci
- V1 - vLED OK
- **************************************************************/
- #define BLYNK_PRINT Serial // Comment this out to disable prints and save space
- #include <ESP8266WiFi.h>
- #include <BlynkSimpleEsp8266.h>
- #include <Timers.h> //
- Timers <4> akcja; // 4 wątki
- #include <Ticker.h> //do wachdoga
- Ticker tickerOSWatch;
- #define OSWATCH_RESET_TIME 30 //wd w sek
- char kod[] = "**ESP_MIS v1.0**";
- char ssid[] = "aaa";
- char pass[] = "ccccccccccccccccc";
- char auth[] = "xxxxxxxxxxxxxxxxxxxxxxx";
- WidgetLED led1(V1); // vLED wskażnik połącznia z arduino - miga co 1 sek jeśli jest połączenie
- WidgetTerminal terminal(V13);
- #define led_blue 15 //wskaznk połaczenia wifi - off jest, miga nie ma wifi i może być reset, on - brak połączenia z BLYNK
- #define led_bialy 0 // cos na razie miga
- #define Ledblueon 1
- #define Ledblueoff 0
- #define Ledbialyon 0
- #define Ledbialyoff 1
- bool stan_ledblue = 0; //off
- bool stan_ledbialy = 0;//off
- bool LED12 = HIGH;
- void miganieLED2()
- {
- LED12 = !LED12;
- if (LED12 == 0) {
- digitalWrite(2, LOW);
- digitalWrite(0, LOW);
- }
- else {
- digitalWrite(2, HIGH);
- digitalWrite(0, HIGH);
- }
- }
- void transmitBLYNK() { //procedura wysyłania do serwera BLYNK
- }
- BLYNK_WRITE(V20)
- {
- int poziom = param.asInt();
- }
- void bezwifi() {
- }
- void timer1sek() //coś do zrobienia co 1 sek
- {
- transmitBLYNK(); //procedura wysyłania do serwera BLYNK zamiast BLYNK_Read który działa tylko gdy aplikacja w telefonie jest otwarta
- miganievLED(); //mruganie ldem w telefonie info ze moduł działa
- miganieLED2(); //miganie ledem na esp
- czyjestwifi(); //sprawdzenie czy jest wifi i połączenie z BLYNK
- wdwifi(); // reset gdy nie ma wifi i możliwość działania gdy nie ma połączenia z BLYNK
- wysledblue();// wyswietla stan ledblue
- }
- //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++= koniec procedur
- static unsigned long last_loop; //dla WD
- void ICACHE_RAM_ATTR osWatch(void) { //watchdog 30 sek
- unsigned long t = millis();
- unsigned long last_run = abs(t - last_loop);
- if (last_run >= (OSWATCH_RESET_TIME * 1000)) {
- // save the hit here to eeprom or to rtc memory if needed
- ESP.restart(); // normal reboot
- //ESP.reset(); // hard reset
- }
- }
- void setup()
- {
- pinMode(12, OUTPUT); // dioda sygnalizacyjna pracy pętli 1 sek w przerwaniu
- digitalWrite(12, LOW);
- pinMode(2, OUTPUT); // dioda sygnalizacyjna pracy pętli 1 sek w przerwaniu
- digitalWrite(2, LOW);
- pinMode(led_bialy, OUTPUT); //
- digitalWrite(led_bialy, Ledbialyon);
- pinMode(led_blue, OUTPUT); // dioda sygnalizacyjna pracy pętli 1 sek w przerwaniu
- digitalWrite(led_blue, Ledblueoff);
- akcja.attach(0, 1500, timer1sek); // uruchamianie timera 1 sek
- // akcja.attach(1, 50000, spij); // usypianie
- Serial.begin(115200);
- //wachdog
- last_loop = millis();
- tickerOSWatch.attach_ms(((OSWATCH_RESET_TIME / 3) * 1000), osWatch);
- WifiBlynk(); //logowanie do wifi i blynk
- Serial.println(__FILE__);
- digitalWrite(led_blue, Ledblueon);
- } //SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS koniec setup
- void loop() //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> loop
- {
- last_loop = millis(); //wd
- akcja.process(); //
- Blynk.run();
- }
- //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> end loop
- void WifiBlynk() { //logowanie do wifi i blynk nie wstrzymujące wejścia do pętli głównej
- WiFi.begin(ssid, pass);
- Blynk.config(auth);
- WiFi.status();
- Blynk.connect();
- }
- bool isFirstConnect = true;
- BLYNK_CONNECTED() {
- if (isFirstConnect) {
- Blynk.syncAll(); //ważna procedura - po starcie arduino synchronizuje wszystkiw wirtualne piny ze zmiennymi programu
- isFirstConnect = false;
- }
- }
- bool czywifi = -1; //czy jest wifi - 0 nie ma
- bool czyblynk = -1;
- byte liczreset = 0;
- bool run_wd_wifi = 0; //trzeba by zresetować
- void wdwifi() {
- if (czywifi == 0) {
- Serial.println("brak wifi ");
- stan_ledblue = !stan_ledblue;
- liczreset++;
- if (liczreset > 10) {
- spij(1); //reset i włącz RF
- }
- } else {
- liczreset = 0;
- if (czyblynk == 0) {
- Serial.println("brak blynk ");
- stan_ledblue = Ledblueon;
- }else{
- stan_ledblue = Ledblueoff;
- }
- }
- Serial.println("ECHO");
- }
- void czyjestwifi()
- {
- if (WiFi.status() == WL_CONNECTED) { //sprawdzenie czy uruchomiło się wifi
- czywifi = 1;
- if (Blynk.connected() == true) { //sprawdzenie czy jest połączenie z blynk
- czyblynk = 1;
- } else {
- czyblynk = 0;
- // Blynk.connect(5); //kolejna próba połączenia z BLYNK
- }
- } else {
- czywifi = 0;
- czyblynk = 0;
- }
- }
- void wysledblue()
- {
- digitalWrite(led_blue, stan_ledblue);
- }
- void spij(int x) //procedura deepsleep x w sek, ale też załączania RF
- {
- Serial.println("wej deepsleep i do RF on");
- delay(1000);
- ESP.deepSleep(x * 1 * 1000 * 1000, WAKE_RF_DEFAULT);
- delay(1000);
- delay(1000);
- }
- int wskrunAr = 0; //vLED miga co sek
- void miganievLED()
- {
- wskrunAr = !wskrunAr ;
- if (wskrunAr == 0) {
- led1.off(); //miganie vLED dla kontroli połączenia z UNO
- }
- else {
- led1.on();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement