Skocz do zawartości

dab1994

Użytkownicy
  • Zawartość

    3
  • Rejestracja

  • Ostatnio

Reputacja

3 Neutralna

O dab1994

  • Ranga
    1/10

Informacje

  1. Jeśli, chodzi o czujniki to sam pomysł jest taki żeby udostępniać odczyty z czujnika jako liczbę z dwoma miejscami po przecinku i w samej aplikacji tak samo wprowadzić nazwę, adres i jego numer, dodatkowo wybierając przy tym, czy mam być wyświetla w formacie liczbowym, czy procentowym. Nie mam pomysłu jak rozwiązać problem z przekaźnikami nie wiem, czy problem dotyczy przekaźników czy przycisków, po prostu stan żarówki zmienia się na przeciwny i tak zostaje, ale nie jest jakoś szczególnie uciążliwe.
  2. Dzień dobry, W swoim pierwszym wpisie, chciałbym przedstawić własną wersję sterownika światła sterowanego za pomocą aplikacji na androida. Sam sterownik składa się z: NodeMCU MODUŁ 2 PRZEKAŹNIKÓW 5V Dwóch przycisków Wspomagając się powyższym rysunkiem, zmontowałem całość korzystając z płytki uniwersalnej. NodeMCU łączy się z lokalną siecią WiFi. Do sterowania wykorzystuje bibliotekę aREST udostępniając funkcje on, off i get przyjmujące jako parametr numer przekaźnika. Kod w wersji skróconej i zdjęcia urządzenia do podejrzenia poniżej. // Rest and esp library #include <ESP8266WiFi.h> #include <aREST.h> // WiFi parameters const char* ssid = "ssid"; const char* password = "password"; const int SWITCH1 = 5; const int SWITCH2 = 16; const int RELAY1 = 12; const int RELAY2 = 14; const unsigned long INTERVAL = 500; bool relay1State = LOW; bool relay2State = LOW; bool switch1State = LOW; bool switch2State = LOW; unsigned long currentMillis = 0; unsigned long switch1Millis = 0; unsigned long switch2Millis = 0; aREST rest = aREST(); const int LISTEN_PORT = 80; WiFiServer server(LISTEN_PORT); int onControl(String value); int offControl(String value); int getControl(String value); void setup(void) { rest.set_id("10"); rest.set_name("Light Switches"); Serial.begin(115200); pinMode(SWITCH1, INPUT); pinMode(SWITCH2, INPUT); pinMode(RELAY1, OUTPUT); pinMode(RELAY2, OUTPUT); digitalWrite(RELAY1, !relay1State); digitalWrite(RELAY2, !relay2State); rest.variable("light1", &relay1State); rest.variable("light2", &relay2State); rest.function("on", onControl); rest.function("off", offControl); rest.function("get", getControl); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("Light Switches connected"); server.begin(); Serial.println("Light Switches address"); Serial.println(WiFi.localIP()); } void loop() { currentMillis = millis(); if (currentMillis - switch1Millis >= INTERVAL && digitalRead(SWITCH1)) { switch1State = !switch1State; if(switch1State==HIGH){ digitalWrite(RELAY1, LOW); relay1State = !LOW; } if(switch1State==LOW){ digitalWrite(RELAY1,HIGH ); relay1State = !HIGH; } switch1Millis = currentMillis; } if (currentMillis - switch2Millis >= INTERVAL && digitalRead(SWITCH2)) { switch2State = !switch2State; if(switch2State==HIGH){ digitalWrite(RELAY2, LOW); relay2State = !LOW; } if(switch2State==LOW){ digitalWrite(RELAY2,HIGH); relay2State = !HIGH; } switch2Millis = currentMillis; } WiFiClient client = server.available(); if (!client) { return; } while (!client.available()) { delay(10); } rest.handle(client); } int onControl(String value) { if (value=="0") { digitalWrite(RELAY1, LOW); relay1State = !LOW; switch1State = HIGH; return 0; } if (value=="1") { digitalWrite(RELAY2, LOW); relay2State = !LOW; switch2State = HIGH; return 0; } return -100; } int offControl(String value) { if (value=="0") { digitalWrite(RELAY1, HIGH); relay1State = !HIGH; switch1State = LOW; return 0; } if (value=="1") { digitalWrite(RELAY2, HIGH); relay2State = !HIGH; switch2State = LOW; return 0; } return -100; } int getControl(String value) { if (value=="0") { return relay1State; } if (value=="1") { return relay2State; } return -100; } Aplikacja składa się z czterech ekranów. Pierwszy to przełączanie żarówki przez przytrzymanie odpowiadającego jej pola na ekranie. Dwa kolejne odpowiadają za włącznie i wyłączenie wszystkich żarówek jednocześnie. Ostatni odpowiada za dodawanie i usuwanie połączeń, czyli wprowadzamy nazwę, adres urządzenia i numer przełącznika. Problemy i dalszy rozwój Jestem zadowolony z działania sterownika jedyny problem, jaki zaobserwowałem to przełączanie się przekaźników podczas podłączania innych urządzeń do przedłużacza, do którego jest wpięty. W aplikacji do bieżącej funkcjonalności chcę dodać włącznie wcześniej zdefiniowanych grup żarówek. I dodać nową funkcjonalności w postaci sterowania taśmami led, możliwość włączenia komputera, a także zakładkę gromadzącą wartości z czujników. Cały kod i aplikacja znajduje się w moim repozytorium
  3. Dzień dobry, Mam na imię Dawid. Hobbistycznie zajmuję się Arduino, którym zainteresowałem się właśnie dzięki kursom. Programuję w języku Java i rozwijam swoje umiejętności w programowaniu na Androida. W planach mam spróbowanie swoich sił w AVR.
×
×
  • Utwórz nowe...