#include #include #include #include #include #include #define SSD1306_128_64 // If using software SPI (the default case): #define OLED_MOSI D7 #define OLED_CLK D5 #define OLED_DC D1 #define OLED_CS D8 #define OLED_RESET D3 Adafruit_SSD1306 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS); //======================================== int msg; int msg1; int ipwr; int powr; int alarm; int odczyt; int odctemp; char stpieca[] = "Czekam!"; //int nastawa = 20; const char* ssid = "Nazwa sieci WiFi"; //nazwa domowej sieci WiFi. Wstaw swoja… nazwe const char* password = "Hasło"; // hasĹ‚o domowej sieci WiFi. Wstaw swoje hasl‚o WiFiUDP Udp; unsigned int localUdpPort = 5000; // port na jakim bedzie pracowal‚ sterownik. Ustal swoj adres portu char incomingPacket[255]; // wielkosc bufora danych //char replyPacekt[] = "Sterownik gotowy"; // odpowiedz jaka ma byc wyslana char packetBuffer[UDP_TX_PACKET_MAX_SIZE+1]; void setup() { pinMode(D6, OUTPUT); digitalWrite(D6, HIGH); Serial.begin(115000); Serial.println(); //obs.wys { display.begin(); display.display(); display.setTextSize(1); display.setTextColor(WHITE); } //=========Laczenie z WiFi ======================== Serial.printf("Lacze z %s ", ssid); WiFi.mode(WIFI_STA); //Modul‚ WiFi jako stacja robocza (WIFI_AP, WIFI_STA lub WIFI_AP_STA.) WiFi.begin(ssid, password); // nr IP pod jakim bedzie pracowal‚ sterownik. Ustal swoj adres IP i pszostale parametry sieci WiFi.config(IPAddress(192, 168, 1, 150), IPAddress(192, 168, 1, 1), IPAddress(255, 255, 255, 0)); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("Polaczono"); //obs.wys display.clearDisplay(); display.setCursor(0,0); display.print("STEROWNIK CO"); display.setCursor(0,9); display.print(WiFi.localIP()); display.setCursor(0,18); display.print("WWW.PDA.AZ.PL"); display.display(); //========================================================= delay(3000); Udp.begin(localUdpPort); Serial.printf("Sterownik CO IP %s, UDP port %d\n", WiFi.localIP().toString().c_str(), localUdpPort); } //========================================================= void loop(){ //---------Sprawdzenie sieci wifi---------------- WiFi.status(); int siec = WiFi.status(); if (siec == 3) { display.clearDisplay(); display.setTextSize(1); display.setCursor(0,0); display.print("POLACZONY DO WIFI"); display.display(); } else { display.clearDisplay(); display.setTextSize(1); display.setCursor(0,0); display.print("BRAK SIEECI WIFI"); display.display(); } //--------------------------------------------------------- //------ Odczyt przekazanego pakietu UDP ------------------ int packetSize = Udp.parsePacket(); if (packetSize) { // receive incoming UDP packets // Serial.printf("Odpowiedzialem Nadawcy IP %d %s, port %d\n", packetSize, Udp.remoteIP().toString().c_str(), Udp.remotePort()); int len = Udp.read(incomingPacket, 255); if (len > 0) { incomingPacket[len] = 0; } Udp.read(incomingPacket,UDP_TX_PACKET_MAX_SIZE); incomingPacket[packetSize]=0; } //------------------------------------------------------- //=============== Alarm z czujnika ================ if(incomingPacket[0]=='8') { display.clearDisplay(); display.setTextSize(1); display.setCursor(0,0); display.print("AWARIA ZASILANIA"); display.setCursor(0,18); display.print("CZUJNIKA"); display.display(); } //================================================= //===============Ustawienie temperatury================= if (incomingPacket[0]=='Z') { digitalWrite(D6, LOW); display.setTextSize(2); display.setCursor(0,9); display.print("PIEC ON"); display.display(); } if (incomingPacket[0] == 'W') { digitalWrite(D6, HIGH); display.setTextSize(2); display.setCursor(0,9); display.print("PIEC OFF"); display.display(); } }