VAŽNO! Ovdje pročitajte kako se registrirati na forum. Bez registracije, nećete biti u mogućnosti pisati na forumu.

Upavljanje rasvjetom preko WLANa

Tvoj projekt je upravo dovršen? Podijeli s nama što si napravio u ovom podforumu! Upute drugima kako napraviti isti projekt su uvijek dobrodošle!
Avatar
ivan_margit#8742
Hobist
Hobist
Postovi: 50
Pridružen/a: uto pro 29, 2020 8:08 am
Lokacija: Velika Gorica

Upavljanje rasvjetom preko WLANa

Post Postao/la ivan_margit#8742 » čet sij 21, 2021 3:28 pm

Dakle, ovo je moj prvi projekt.
Do sada sam se uglavnom igrao tutorialima i eksperimentalnim pločicama i pokušavao reproducirati tuđe projekte.

IDEJA
Ideja je bila napraviti daljinsko paljenje za rasvjetu na terasi. Znači, rasvjeta je postojeća i sada je trebalo na postojeći krug dodati "nešto" što će mi omogućiti da uz postojeće prekidače palim i gasim rasvjetu (dva strujna kruga: led cijevi, i led lampice).

REALIZACIJA
Zamisao je bila iskoristiti bistabilne releje koji bi zajedno s izmjeničnim prekidačima palili/gasili rasvjetu.
Za upravljanje sam odabrao ESP32 koji sam kupio preko banggooda.
Problem je nastao kada sam primjetio da mi ESP32 daje 3V na GPIO-vima, a relej radi na 5V. To sam riješio pomoću dva tranzistora i otpornika.
slika
(LEDice na izlazu iz releja su tu samo da simuliraju prespajanje releja.)

Bistabilni relej koji radi s 3V jednostravno nisam uspio pronaći. Pun ih je internet ali su ili preskupi ili ih imaju na stranici, a zapravo nemaju na stanju.
Tranzistore sam htio zamjeniti optocouplerom. I to sam jedva pronašao jedan koji podnosi struju veću od 50mA na sekundaru, ali na kraju sam pogriješio jer sam kupio optocuplere s triacom, koji kada otvore strujni krug isti ostaje otvoren jer rade na izmjeničnu struju. Tako na kraju nisam uspio pojednostaviti si život već sam bio osuđen na 5V relej koji sam napajao s VIN pina, a kojim sam upravljao preko GPIO-a i tranzistora.

Skriptu sam preuezo s ove stranice i prilagodio ju svojim potrebama.

slika

Dodao sam i ledice u svaki krug da mogu provjeriti dobiva li relej signal, isprobao prvo za stolom. Obzirom da sam imao tako puno komponenata nije mi sve stalo na jedan kat pa sam morao razdvojiti sve.

slika

Po putu mi je par puta pukla žica u blizini mjesta gdje sam lemio jer sam više puta razdvajao katove i trebalo mi je vremena dok shvatim zašto ne radi, a radilo je :)

Kada sam ga ugradio, nije radio jer je WLAN signal bio preslab. Očito je bio problem u tome što je bio negdje u kutu između betonskih elemenata i armature. Malo sam istraživao lokaciju preko mobitela i nekon WLAN scannera i pomakao taj svoj uređaj i sada radi :) Antena se pokazala da nije nužna.

slika

Većinu dijelova sam kupio ranije preko banggooda. Nešto sam kupio preko e-radionice.

P.S. Slike sam pokušao skalirati, ali ne uspijeva mi.
Zadnja izmjena: ivan_margit#8742, dana/u čet sij 21, 2021 11:05 pm, ukupno mijenjano 1 put.
domagoj#1816
Supporter
Supporter
Postovi: 323
Pridružen/a: ned tra 15, 2018 2:59 pm
Lokacija: Zagreb

Re: Upavljanje rasvjetom preko WLANa

Post Postao/la domagoj#1816 » čet sij 21, 2021 5:16 pm

Pozdrav!
Lijep i sažet opis projekta. Super. Mene su uvijek privlačili projekti koji se temelje na komunikaciji, pogotovo bežičnoj. Usput, kada niskim naponom moram upravljati AC trošilom obično koristim solid state relay. Istina, to nije najjeftinije rješenje, ali kako se ne kužim u elektroniku onda si i ne mogu baš pomoći. Doduše, često mi treba PWM signal pa mi relej ionako ne bi pomogao. U svakom sluačju, SSR je super jer ga se aktivira s 3-32 VDC, može progutati PWM, a na AC strani trpe i do 400A, pa su gotovo uvijek primjenjivi.
Pozdrav, Domagoj
Avatar
haluzanpavao#9135
Ozbiljni hardveraš
Ozbiljni hardveraš
Postovi: 75
Pridružen/a: sri lip 13, 2018 12:19 pm

Re: Upavljanje rasvjetom preko WLANa

Post Postao/la haluzanpavao#9135 » čet sij 21, 2021 8:49 pm

Pozdrav
slika
evo da pomognem u rješavanju drajvanja 220v potrošača sa mikrokontrolerom
LP
Sretno
Avatar
ivan_margit#8742
Hobist
Hobist
Postovi: 50
Pridružen/a: uto pro 29, 2020 8:08 am
Lokacija: Velika Gorica

Re: Upavljanje rasvjetom preko WLANa

Post Postao/la ivan_margit#8742 » čet sij 21, 2021 11:01 pm

domagoj#4633 je napisao/la:
čet sij 21, 2021 5:16 pm
Pozdrav!
Lijep i sažet opis projekta. Super. Mene su uvijek privlačili projekti koji se temelje na komunikaciji, pogotovo bežičnoj. Usput, kada niskim naponom moram upravljati AC trošilom obično koristim solid state relay. Istina, to nije najjeftinije rješenje, ali kako se ne kužim u elektroniku onda si i ne mogu baš pomoći. Doduše, često mi treba PWM signal pa mi relej ionako ne bi pomogao. U svakom sluačju, SSR je super jer ga se aktivira s 3-32 VDC, može progutati PWM, a na AC strani trpe i do 400A, pa su gotovo uvijek primjenjivi.
Pozdrav, Domagoj
Gledao sam i SS releje, ali nisam našao niti jedan bistabilni. Svi su u pravilu bili NO/NC.
Avatar
ivan_margit#8742
Hobist
Hobist
Postovi: 50
Pridružen/a: uto pro 29, 2020 8:08 am
Lokacija: Velika Gorica

Re: Upavljanje rasvjetom preko WLANa

Post Postao/la ivan_margit#8742 » čet sij 21, 2021 11:10 pm

haluzanpavao#4264 je napisao/la:
čet sij 21, 2021 8:49 pm
Pozdrav
slika
evo da pomognem u rješavanju drajvanja 220v potrošača sa mikrokontrolerom
LP
Sretno
Zahvaljujem. Svakako ću morati ovo još proučiti jer s triacima nisam na ti. Ali ovakvo brzinski kada pogledam čini mi se da ovaj sklop radi kao serijski prekidač, ne izmjenični.
Avatar
haluzanpavao#9135
Ozbiljni hardveraš
Ozbiljni hardveraš
Postovi: 75
Pridružen/a: sri lip 13, 2018 12:19 pm

Re: Upavljanje rasvjetom preko WLANa

Post Postao/la haluzanpavao#9135 » pet sij 22, 2021 9:32 pm

Tako je - ovaj jednostavni i jeftini sklop je prekidač kontroliran MCU_om.
Ako sam dobro shvatio tvoj projekt je nadogradnja na postoječu VN instalaciju.
Ja sam shvatio da do sada imaš jedn prekidač koji pali i gasi rasvjetu na terasi.
Ako je to tako - treba prepustiti MCU da pali gasi rasvjetu preko triaka - u odnosu na stanje tipkala (prekidača koje treba spojiti na MCU), WIFI naredbi koje sismuliraju tipkalo ......
Par if ...then naredbi i posao gotov.
Ako te zadovoljava ova izvedba koju si napravio, a dobra je i meni se sviđa pristup zadatku i ustrajnost, (nedostaje mi konkretna šema cijelog kruga i program sa tvojim modifikacijama).
Ako treba neka pomoč tu sam da pomognem sa svojim iskustvom i željom da još uvujek učim.
Pozdrav
Avatar
ivan_margit#8742
Hobist
Hobist
Postovi: 50
Pridružen/a: uto pro 29, 2020 8:08 am
Lokacija: Velika Gorica

Re: Upavljanje rasvjetom preko WLANa

Post Postao/la ivan_margit#8742 » sub sij 23, 2021 6:54 pm

U pravu si.... Gledao sam malo i druge projekte pa vidim da su drugi dali komplet sheme i codove.... Moram sjesti za računalo da to napišem i skiciram.
Avatar
ivan_margit#8742
Hobist
Hobist
Postovi: 50
Pridružen/a: uto pro 29, 2020 8:08 am
Lokacija: Velika Gorica

Re: Upavljanje rasvjetom preko WLANa

Post Postao/la ivan_margit#8742 » sub sij 23, 2021 7:37 pm

Znači ovako, vidim da su drugi podribnije opisivali prjekte pa da i ja svoj naopunim:

Korišteni materijal:
- ESP32 - 1 kom
- relej DS1E-ML2-DC5V - 2 kom
- LED - 4 kom
- otpornik 220 ohm - 4 kom
- otpornik 1kohm - 4 kom
- otpornik 10 kohm - 4 kom
- NPN tranzistor S8050 - 2 kom
- PNP tranzistor S8550 - 2 kom
- punjač za mobitel (220VAC/5VDC 2A) - 1 kom
- USB/microUSB kabel - 1 kom
- kutija s prozirnim poklopcem - 1 kom
- univerzalne protoboard pločice - 2 kom
- plastični distanceri s vijcima M2 - 4 seta
- headeri i kablići za spajanje
Avatar
ivan_margit#8742
Hobist
Hobist
Postovi: 50
Pridružen/a: uto pro 29, 2020 8:08 am
Lokacija: Velika Gorica

Re: Upavljanje rasvjetom preko WLANa

Post Postao/la ivan_margit#8742 » sub sij 23, 2021 7:41 pm

Evo i koda:

Kod: Označite sve

// Load Wi-Fi library
#include <WiFi.h>

// Replace with your network credentials
const char* ssid = "alanford";
const char* password = "08rujan12";

// Set web server port number to 80
WiFiServer server(80);

// Variable to store the HTTP request
String header;

// Auxiliar variables to store the current output state
String output26State = "off";
String output27State = "off";
String output32State = "off";
String output33State = "off";

// Assign output variables to GPIO pins
const int output26 = 26;
const int output27 = 27;
const int output32 = 32;
const int output33 = 33;

// Current time
unsigned long currentTime = millis();
// Previous time
unsigned long previousTime = 0; 
// Define timeout time in milliseconds (example: 2000ms = 2s)
const long timeoutTime = 2000;

void setup() {
  Serial.begin(115200);
  // Initialize the output variables as outputs
  pinMode(output26, OUTPUT);
  pinMode(output27, OUTPUT);
  pinMode(output32, OUTPUT);
  pinMode(output33, OUTPUT);
  // Set outputs to LOW
  digitalWrite(output26, LOW);
  digitalWrite(output27, LOW);
  digitalWrite(output32, LOW);
  digitalWrite(output33, LOW);

  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
  delay(500);
  server.begin();
}

void loop(){
  WiFiClient client = server.available();   // Listen for incoming clients

  if (client) {                             // If a new client connects,
    currentTime = millis();
    previousTime = currentTime;
    //Serial.println("New Client.");          // print a message out in the serial port
    String currentLine = "";                // make a String to hold incoming data from the client
    while (client.connected() && currentTime - previousTime <= timeoutTime) {  // loop while the client's connected
      currentTime = millis();
      if (client.available()) {             // if there's bytes to read from the client,
        char c = client.read();             // read a byte, then
        Serial.write(c);                    // print it out the serial monitor
        header += c;
        if (c == '\n') {                    // if the byte is a newline character
        
          if (currentLine.length() == 0) {
          
            client.println("HTTP/1.1 200 OK");
            client.println("Content-type:text/html");
            client.println("Connection: close");
            client.println();
            
            // turns the GPIOs on and off
            if (header.indexOf("GET /26/on") >= 0) {
              Serial.println("GPIO 26 on");
              output26State = "on";
              digitalWrite(output26, HIGH);
              delay (50);
              digitalWrite(output26, LOW);
            } else if (header.indexOf("GET /26/off") >= 0) {
              Serial.println("GPIO 26 off");
              output26State = "off";
              digitalWrite(output27, HIGH);
              delay (50);
              digitalWrite(output27, LOW);
            } else if (header.indexOf("GET /27/on") >= 0) {
              Serial.println("GPIO 32 on");
              output27State = "on";
              digitalWrite(output32, HIGH);
              delay (50);
              digitalWrite(output32, LOW);
            } else if (header.indexOf("GET /27/off") >= 0) {
              Serial.println("GPIO 33 on");
              output27State = "off";
              digitalWrite(output33, HIGH);
              delay (50);
              digitalWrite(output33, LOW);
            }
            
            // Display the HTML web page
            client.println("<!DOCTYPE html><html>");
            client.println("<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">");
            client.println("<title>ESP Remote Lights</title>");
            client.println("<link rel=\"icon\" href=\"data:,\">");
            // CSS to style the on/off buttons 
            // Feel free to change the background-color and font-size attributes to fit your preferences
            client.println("<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center;}");
            client.println(".button { background-color: #b6d1b7; border: none; border-radius: 8px; color: white; padding: 16px 40px;");
            client.println("text-decoration: none; font-size: 30px; margin: 2px; cursor: pointer;}");
            client.println(".button2 {background-color: #a6baa6;}</style></head>");
            
            // Web Page Heading
            client.println("<body><h1>Rasvjeta - Terasa</h1>");
            
            // Display current state, and ON/OFF buttons for GPIO 26  
            client.println("<p style=font-size:150%><b>LED Cijevi</b></p>");
            // If the output26State is off, it displays the ON button       
            if (output26State=="off") {
              client.println("<p><a href=\"/26/on\"><button class=\"button\">L1</button></a></p>");
            } else {
              client.println("<p><a href=\"/26/off\"><button class=\"button button2\">L2</button></a></p>");
            } 
               
            // Display current state, and ON/OFF buttons for GPIO 27  
            client.println("<p style=font-size:150%><b>LED Lanac</b></p>");
            // If the output27State is off, it displays the ON button       
            if (output27State=="off") {
              client.println("<p><a href=\"/27/on\"><button class=\"button\">L1</button></a></p>");
            } else {
              client.println("<p><a href=\"/27/off\"><button class=\"button button2\">L2</button></a></p>");
            }
            client.println("</body></html>");
            
            // The HTTP response ends with another blank line
            client.println();
            // Break out of the while loop
            break;
          } else { // if you got a newline, then clear currentLine
            currentLine = "";
          }
        } else if (c != '\r') {  // if you got anything else but a carriage return character,
          currentLine += c;      // add it to the end of the currentLine
        }
      }
    }
    // Clear the header variable
    header = "";
    // Close the connection
    client.stop();
    Serial.println("Client disconnected.");
    Serial.println("");
  }
}
Avatar
ivan_margit#8742
Hobist
Hobist
Postovi: 50
Pridružen/a: uto pro 29, 2020 8:08 am
Lokacija: Velika Gorica

Re: Upavljanje rasvjetom preko WLANa

Post Postao/la ivan_margit#8742 » sub sij 23, 2021 7:48 pm

A evo i skice sheme spajanja. Obzirom da bi bila prevelika da ju cijelu skiciram ovo u oblačiću je samo za jedan strujni krug osvjetljenja. Za drugi je identično samo se spaja na druga dva GPIO-a na ESP32.

slika

Skicirao sam rukom jer mi je bilo jednostavnije već se zezati s ovim online programima.
Avatar
haluzanpavao#9135
Ozbiljni hardveraš
Ozbiljni hardveraš
Postovi: 75
Pridružen/a: sri lip 13, 2018 12:19 pm

Re: Upavljanje rasvjetom preko WLANa

Post Postao/la haluzanpavao#9135 » sub sij 23, 2021 8:24 pm

Pozdrav Ivane;
Hvala što si uvažio zamolbu za kompletiranjem prikaza projekta (vrlo uporabna aplikacija u današnje vrijeme).
Imam samo jednu zamjerku (možda je namjerno tako ali mislim da je previd)
Primječujem po šemi da su ti dosadašnji prekidači i relei vođeni MCU_om u seriji- znači žarulja ili ledice ne gore ako nisu aktivna oba prekidača (i standardni prekidač i rele po svakom kanalu isto)
Zamislimo da si na terasi bez mobitela i ugasiš svjetlo na prekidaču - ne može se više upaliti sa MCU_om
za sada toliko.
Lijepi pozdrav od starog amatera elektronike
Avatar
ivan_margit#8742
Hobist
Hobist
Postovi: 50
Pridružen/a: uto pro 29, 2020 8:08 am
Lokacija: Velika Gorica

Re: Upavljanje rasvjetom preko WLANa

Post Postao/la ivan_margit#8742 » sub sij 23, 2021 8:37 pm

Pavle, hvala na komentaru.
Jesu u seriji, ali u izmjeničnim spoju. Svijetla palim/gasim ili preko prekidača ili preko releja.
Kao da imam dva izmjenična prekidača, samo što je jedan od njih relej, a drugi klasični prekidač.
Znači svijetlo mogu upaliti relejom, a ugasiti prekidačem, ili obratno. Ili bilo koja kombinacija.

Ja tek počinjem s elektronikom, a zanima me više nego joj mogu posvetiti vremena. Zapravo bih volio više znati o analognoj elektronici ali se ista sve manje koristi.
Moduliranje i demoduliramje mi je posebno zanimljivo.
Avatar
haluzanpavao#9135
Ozbiljni hardveraš
Ozbiljni hardveraš
Postovi: 75
Pridružen/a: sri lip 13, 2018 12:19 pm

Re: Upavljanje rasvjetom preko WLANa

Post Postao/la haluzanpavao#9135 » sub sij 23, 2021 8:50 pm

Sori nisam dobro pogledao šemu
sve je kaako treba nema greške :)
Nego kažeš da te zanima analogija preciznije modulacija, koja grana modulacije (amplitudna ili frekventna)?
u današnje vrijeme digitalne tehnike zgodno je kombinirati
Avatar
ivan_margit#8742
Hobist
Hobist
Postovi: 50
Pridružen/a: uto pro 29, 2020 8:08 am
Lokacija: Velika Gorica

Re: Upavljanje rasvjetom preko WLANa

Post Postao/la ivan_margit#8742 » sub sij 23, 2021 9:09 pm

Sve 5.
Ako bude kakva knjiga koju možete preporučiti za analognu elektroniku bio bih zahvalan.
Avatar
ivan_margit#8742
Hobist
Hobist
Postovi: 50
Pridružen/a: uto pro 29, 2020 8:08 am
Lokacija: Velika Gorica

Re: Upavljanje rasvjetom preko WLANa

Post Postao/la ivan_margit#8742 » sub sij 23, 2021 10:27 pm

Pa svejedno mi dođe. Je li velika razlika?
Odgovorite