Sari la conținut
ELFORUM - Forumul electronistilor

NodeMCU


Untold

Postări Recomandate

Va salut.

 

Mi-am luat si eu un nodeMCU sa-mi fac o automatizare pt lumini si intampin o problema: nu reusesc sa-l conectez din serial monitor din IDE...

I-am instalat driverul pt C340G, il vad in device manager, am descarcat si aplicatia pe telefon insa, cum am zi, nu reusesc sa-l conectez ca sa-i vad IP-ul...Ma poate ajta cineva?

NodeMCU.jpg

Link spre comentariu

In tutuorialul de pe youtube pe care l-am vazut, in serial monitor dupa 3-4 puncte aparea conected to....si arata si IP-ul. La mine nu se intampla asta, deci e cum ati spus, nu se conecteaza la wi-fi. Mai jos codul pe care l-am scris in nodeMCU si link-ul de unde am luat proiectul:

 

  1. //Visit www.roboshala.com for more details on NodeMCU and other projects.
    
    #include <ESP8266WiFi.h>
    
    const char* ssid = "CPH1613"; // SSID i.e. Service Set Identifier is the name of your WIFI
    const char* password = "12345678"; // Your Wifi password, in case you have open network comment the whole statement.
    
    int R1=D1; // GPIO13 or for NodeMCU you can directly write D7
    int R2=D2;
    int R3=D3;
    int R4=D4;
    WiFiServer server(80); // Creates a server that listens for incoming connections on the specified port, here in this case port is 80.
    
    void setup() {
    Serial.begin(115200);
    delay(10);
    
    pinMode(R1, OUTPUT);
    pinMode(R2, OUTPUT);
    pinMode(R3, OUTPUT);
    pinMode(R4, OUTPUT);
    
    digitalWrite(R1,HIGH);
    digitalWrite(R2,HIGH);
    digitalWrite(R3,HIGH);
    digitalWrite(R4,HIGH);
    
    
    
    // Connect to WiFi network
    Serial.println();
    Serial.println();
    Serial.print("Connecting to ");
    Serial.println(ssid);
    
    WiFi.begin(ssid, password);
    
    while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
    }
    Serial.println("");
    Serial.println("WiFi connected");
    
    // Start the server
    server.begin();
    Serial.println("Server started");
    
    // Print the IP address
    Serial.print("Use this URL to connect: ");
    Serial.print("http://");
    Serial.print(WiFi.localIP()); //Gets the WiFi shield's IP address and Print the IP address of serial monitor
    Serial.println("/");
    
    }
    
    void loop() {
    // Check if a client has connected
    WiFiClient client = server.available();
    if (!client) {
    return;
    }
    
    // Wait until the client sends some data
    Serial.println("new client");
    while(!client.available()){
    delay(1);
    }
    
    // Read the first line of the request
    String request = client.readStringUntil('\r');
    Serial.println(request);
    client.flush();
    
    // Match the request
    
    
    if (request.indexOf("/Relay1On") != -1) {
    digitalWrite(R1,LOW);
    
    client.println("HTTP/1.1 200 OK");
    client.println("Content-Type: text/html");
    client.println("");
    client.println("<!DOCTYPE HTML>");
    client.println("<html>");
    client.println("Relay 1 is ON");
    client.println("</html>");
    client.stop();
    delay(1);
    }
    if (request.indexOf("/Relay1Off") != -1) {
    digitalWrite(R1, HIGH);
    
    client.println("HTTP/1.1 200 OK");
    client.println("Content-Type: text/html");
    client.println("");
    client.println("<!DOCTYPE HTML>");
    client.println("<html>");
    client.println("Relay 1 is OFF");
    client.println("</html>");
    client.stop();
    delay(1);
    }
    
    
    if (request.indexOf("/Relay2On") != -1) {
    digitalWrite(R2,LOW);
    
    client.println("HTTP/1.1 200 OK");
    client.println("Content-Type: text/html");
    client.println("");
    client.println("<!DOCTYPE HTML>");
    client.println("<html>");
    client.println("Relay 2 is ON");
    client.println("</html>");
    client.stop();
    delay(1);
    
    }
    if (request.indexOf("/Relay2Off") != -1) {
    digitalWrite(R2, HIGH);
    
    client.println("HTTP/1.1 200 OK");
    client.println("Content-Type: text/html");
    client.println("");
    client.println("<!DOCTYPE HTML>");
    client.println("<html>");
    client.println("Relay 2 is OFF");
    client.println("</html>");
    client.stop();
    delay(1);
    }
    
    
    if (request.indexOf("/Relay3On") != -1) {
    digitalWrite(R3,LOW);
    
    client.println("HTTP/1.1 200 OK");
    client.println("Content-Type: text/html");
    client.println("");
    client.println("<!DOCTYPE HTML>");
    client.println("<html>");
    client.println("Relay 3 is ON");
    client.println("</html>");
    client.stop();
    delay(1);
    }
    if (request.indexOf("/Relay3Off") != -1) {
    digitalWrite(R3, HIGH);
    
    client.println("HTTP/1.1 200 OK");
    client.println("Content-Type: text/html");
    client.println("");
    client.println("<!DOCTYPE HTML>");
    client.println("<html>");
    client.println("Relay 3 is OFF");
    client.println("</html>");
    client.stop();
    delay(1);
    }
    
    if (request.indexOf("/Relay4On") != -1) {
    digitalWrite(R4,LOW);
    
    client.println("HTTP/1.1 200 OK");
    client.println("Content-Type: text/html");
    client.println("");
    client.println("<!DOCTYPE HTML>");
    client.println("<html>");
    client.println("Relay 4 is ON");
    client.println("</html>");
    client.stop();
    delay(1);
    }
    if (request.indexOf("/Relay4Off") != -1) {
    digitalWrite(R4, HIGH);
    
    client.println("HTTP/1.1 200 OK");
    client.println("Content-Type: text/html");
    client.println("");
    client.println("<!DOCTYPE HTML>");
    client.println("<html>");
    client.println("Relay 4 is OFF");
    client.println("</html>");
    client.stop();
    delay(1);
    }
    
    }

     

 

https://www.roboshala.com/wifi-home-automation/

Editat de nico_2010
Codul a fost formatat
Link spre comentariu

Data viitoare poti posta codul aici ex: https://pastebin.com/c3Lvb3pX , scriptul forumului observ ca nu stie sa restranga codul sau nu ai folosit formatarea pentru cod. :rade:

Acum nu am posibilitatea sa testez pe ESP-ul meu dar sper ca datele de conectarea la reteaua WiFi sunt corecte. Adica routerul la care vrei sa te conectezi wireless are acest SSID sI parola:

const char* ssid = "CPH1613"; // SSID i.e. Service Set Identifier is the name of your WIFI
const char* password = "12345678"; // Your Wifi password, in case you have open network comment the whole statement.

Altfel ESP-ul nu are cum sa stie la ce retea WIFI trebuie sa se conecteze si ce parola are respectiva retea.

Editat de Stefan.
Link spre comentariu

Nu prea inteleg....in fine, node-ul genereaza (daca ma exprim bine) si el o retea wi-fi, am conectat laptop-ul la ea, dar acelasi rezultat...n-am lucrat pana acum cu Arduino, sunt 0! Eu am net de la UPC, ar trebui sa modific sketch-ul cu ssid-ul si pass routerului UPC?

Untitled.jpg

Editat de Untold
Link spre comentariu

Din bruma de engleza pe care o stiu eu inteleg asa:

 

char* ssid = "CPH1613"; // SSID i.e. Service Set Identifier is the name of your WIFI  - SSID este numele WiFi-ului (router din casa) tau ex: UPC Wi-Free

const char* password = "12345678"; // Your Wifi password, in case you have open network comment the whole statement. - Parola ta WiFi, in cazul in care nu ai parola la WiFi trebuie ca linia asta sa o comenztezi // elimini.

 

Nu stiu de ce ESP-ul tau functioneaza si in mod AP, drept dovata existenta retelei WiFi cu numele Farylink_9F93F7, dar scrie in loc de CPH1613 si 12345678 datele de la WIFI-ul tau.

Editat de Stefan.
Link spre comentariu

Da, Node-ul se conecteaza la un router si primeste un IP in LAN, de exemplu 192.168.0.2.  Cand in cod definesti "WifiServer" el de fapt asculta la request-uri prin reteaua LAN pe ip-ul primit deci daca pe laptop in browser accesezi  192.168.0.2/test/1 tu vei putea citi ca string in cod "/test/1". De acolo trebuie sa iti faci o lista de parametrii sa treci prin ele cu un "switch" sau if/else si sa faci ceva in functie de ce parametrii ai primit.

Link spre comentariu

Am mai testat si am concluzionat urmatoarele: aplicatia de pe tel merge partial, in sensul ca, pe serial monitor imi zice rel1 on, rel1 off, etc...pe tel insa nu primesc raspuns de la node...in mod sigur e de vina telefonul care are o versiune de Android f veche (2.36) si nu suporta toate caracteristicile necesare), ar trebui ca butonul de on sa se inverzeasca sau ceva ca sa-mi confirme ca rel respectiv e on, nu? Alta problema e ca doar pt rel 4 mi se aprinde ledul de pe nodeMCU la on si se stinge la off...

rel response serial monitor.jpg

Link spre comentariu

Incearca de pe calculator sa accesez din orice browser (Chrome, Friefox, etc..)  urmatorul link  http://192.168.0.80/Relay1On   si vezi ce se intampla, daca am interpretat corect codul ar trebuii sa iti apara o pagina alba in care sa scrie "Relay 1 is ON". In cazul in care apare atunci aplicatia / telefonul este de vina, daca tot nu apare atunci poate fi si de la codul din Node

Editat de Bandi Szasz
Link spre comentariu

Vad ca ai definite 4 relee, incearca firmware-ul espurna, instructiunile in al 2-lea link, este gata facut, si mai are si multe chestii in plus:

 

https://github.com/xoseperez/espurna/releases/download/1.12.6/espurna-1.12.6-itead-sonoff-4ch.bin

sau

https://github.com/xoseperez/espurna/releases/download/1.12.6/espurna-1.12.6-nodemcu-lolin.bin

 

instructiuni: (in loc de /dev/ttyUSB0 scrii COM4)

https://github.com/xoseperez/espurna/wiki/Binaries

Editat de deejay2k1
typo
Link spre comentariu
  • 5 săptămâni mai târziu...

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum
×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări