Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*************************************************************
- TEST EVENTOR versja 1 programowanie funkcji w Arduino IDE
- *************************************************************/
- #define BLYNK_PRINT Serial
- #include <ESP8266WiFi.h>
- #include <BlynkSimpleEsp8266.h>
- char auth[] = "1111111111111111111111111111111111";
- char ssid[] = "000000";
- char pass[] = "ppppppppp";
- #include <Timers.h> //
- Timers <4> akcja; // 4 wątki\
- WidgetLED led1(V1); // vLED wskażnik połącznia z arduino - miga co 1 sek jeśli jest połączenie
- #define led_bialy 12 // led jak odbiornik 1
- #define led_blue 14 // odbiornik 2
- #define led_esp 2 // odbiornik 3
- #define przyc1 4 //przycisk 1
- #define przyc2 5
- #define przyc3 13
- int opoznienie =10; //czas załączenia odbiornika w sek
- bool startlicz = 0; //zmienna licznika załączenia - start/stop
- int licz = 0; //zmienna licznika załączenia - licznik czasu
- BLYNK_WRITE(V10) //vprzyc 1 przycisk wirtualny w telefonnie
- {
- if (param.asInt()) {
- zalodb1(); //załączenie odbiornika 1
- }
- }
- BLYNK_WRITE(V11) //sterowanie odbiornikiem 2 i 3 z aplikacji BLYNK
- {
- if (param.asInt()) {
- zalodb2(); //załączenie odbiornika 2
- zalodb3(); //procedura załączenia odbiornika 3
- }
- }
- BLYNK_WRITE(V12) //sterowanie odbiornikiem 1,2,3 z aplikacji BLYNK
- {
- if (param.asInt()) {
- wylodb1(); // wyłączenie odbiornika 1
- wylodb2(); // wyłączenie odbiornika 2
- wylodb3(); // wyłączenie odbiornika 3
- }
- }
- BLYNK_WRITE(V25)
- {
- opoznienie = param.asInt();
- }
- void timer1sek() //coś do zrobienia co 1 sek
- {
- liczasek(); //licznik zalączenia
- miganievLED(); //mruganie vLED w telefonie info ze moduł działa
- }
- void setup()
- {
- Serial.begin(115200);
- pinMode(led_bialy, OUTPUT); // port jako wyj do odbiornika
- digitalWrite(led_bialy, 1); // wyłączenie odbiornika - wyłącza wysoki stan
- pinMode(led_blue, OUTPUT); //
- digitalWrite(led_blue, 1);
- pinMode(led_esp, OUTPUT); //
- digitalWrite(led_esp, 1);
- pinMode(przyc1, INPUT_PULLUP); // port jako wejście z przyciku
- pinMode(przyc2, INPUT_PULLUP);
- pinMode(przyc3, INPUT_PULLUP);
- akcja.attach(0, 1000, timer1sek); // timer 1 sek
- Blynk.begin(auth, ssid, pass, IPAddress(192, 168, 2, 126), 8442); // BLYNK postawiony na prywatnym serwerze NAS SYNOLOGY
- Serial.println(__FILE__);
- }
- void loop()
- {
- Blynk.run();
- akcja.process(); // timer
- mojeproceduryobslugi(); //główna procedura programu realizująca zadane funkcje
- }
- byte stanprzyc1 = 0; //pamiętanie poprzedniego stanu klawisza by reagować na zmianę stanu
- byte stanprzyc2 = 0;
- byte stanprzyc3 = 0;
- void mojeproceduryobslugi()
- {
- if (digitalRead(przyc1) == 0) { //sprawdzamy czy nacisniety przycisk 1
- if (stanprzyc1 == 1) { // sprawdzamy czy poprzedni stan był 1
- zalodb1(); //załączenie odbiornika 1
- }
- }
- stanprzyc1 = digitalRead(przyc1); //zapamietanie nowego stanu przycisku
- if (digitalRead(przyc2) == 0) { //sprawdzamy czy nacisniety przycisk 2
- if (stanprzyc2 == 1) { // sprawdzamy czy poprzedni stan był 1
- zalodb2(); //załączenie odbiornika 2
- zalodb3(); //procedura załączenia odbiornika 3
- }
- }
- stanprzyc2 = digitalRead(przyc2); //zapamietanie nowego stanu przycisku
- if (digitalRead(przyc3) == 0) { //sprawdzamy czy nacisniety przycisk 3
- if (stanprzyc3 == 1) { // sprawdzamy czy poprzedni stan był 1
- wylodb1(); // wyłączenie odbiornika 1
- wylodb2(); // wyłączenie odbiornika 2
- wylodb3(); // wyłączenie odbiornika 3
- }
- }
- stanprzyc3 = digitalRead(przyc3); //zapamietanie nowego stanu przycisku
- }
- void zalodb1() {
- digitalWrite(led_bialy, 0); // załączenie odbiornika 0 jest aktywne
- Blynk.virtualWrite(V20, 1); // wyswietlenia załączenia odbiornika 1 aktywne
- }
- void zalodb2() {
- digitalWrite(led_blue, 0);
- Blynk.virtualWrite(V21, 1);
- }
- void zalodb3() {
- digitalWrite(led_esp, 0);
- Blynk.virtualWrite(V22, 1);
- licz = opoznienie; //ustawienie licznika czasu załączenia
- startlicz = 1; //włączenie odliczania załączenia
- }
- void wylodb1() {
- digitalWrite(led_bialy, 1);
- Blynk.virtualWrite(V20, 0);
- }
- void wylodb2() {
- digitalWrite(led_blue, 1);
- Blynk.virtualWrite(V21, 0);
- }
- void wylodb3() {
- digitalWrite(led_esp, 1);
- Blynk.virtualWrite(V22, 0);
- startlicz = 0; //zatrzymanie licznika opóźnienia
- }
- void liczasek() // licznik czasu załączenia odbiornika wywoływany co 1 sek przez Timer
- {
- if (startlicz != 0) {
- licz--;
- Blynk.virtualWrite(V25, licz);
- if (licz < 1) {
- licz = 0;
- startlicz = 0;
- wylodb3(); // wyłączenie odbiornika 3 po odliczeniu czasu
- }
- }
- }
- int wskrunAr = 0; //vLED miga co 1 sek wskaxnik komunikacji między modułem a aplikacją w telefonie
- 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