Це відео не доступне.
Перепрошуємо.

Co można zrobić z pomocą ESP8266?

Поділитися
Вставка
  • Опубліковано 13 сер 2024
  • Cześć w tym filmie pokazuje kilka możliwości jakie daje mikrokontroler NodeMCU v3 wraz z modułem esp8266. Miłego oglądania :)
    Link pozwalający NodeMCU v3 z esp8266 w Arduino IDE:
    arduino.esp8266.com/stable/pac...
    Jeśli link się nie wyświetla w całości to radzę w niego wejść i go skopiować z paska wyszukiwania.
    Skrypty znajdują się w przypiętym komentarzu :)
    0:00 - 0:13 - Początek
    0:14 - 0:52 - Przygotowanie środowiska
    0:53 - 1:36 - Pierwsze zastosowanie
    1:37 - 3:17 - Drugie zastosowanie
    3:18 - 4:45 - Trzecie zastosowanie
    4:46 - 5:30 - Zakończenie

КОМЕНТАРІ • 22

  • @InzynierNaukowy
    @InzynierNaukowy  Місяць тому

    Pierwszy skrypt
    ---------------------------
    #include
    #define Led5 15
    #define Led4 13
    #define Led3 12
    #define Led2 14
    #define Led1 02
    bool led1,led2,led3,led4,led5;
    // Zmienne do konfiguracji punktu dostępu
    const char* ssid = "My_Serwer";
    const char* password = "019812341";// musi się składać z co najmniej 8 znaków
    // Utworzenie serwera webowego na porcie 80
    WiFiServer server(80);
    void setup() {
    Serial.begin(115200);
    pinMode(Led1, OUTPUT);
    pinMode(Led2, OUTPUT);
    pinMode(Led3, OUTPUT);
    pinMode(Led4, OUTPUT);
    pinMode(Led5, OUTPUT);
    delay(10);
    // Ustawienia punktu dostępu
    WiFi.softAP(ssid, password);
    Serial.println();
    Serial.print("Utworzono punkt dostępu: ");
    Serial.println(ssid);
    Serial.print("Adres IP: ");
    Serial.println(WiFi.softAPIP());
    // Uruchomienie serwera
    server.begin();
    Serial.println("Serwer rozpoczął pracę");
    }
    void loop() {
    WiFiClient client = server.available();
    if (!client) {
    return;
    }
    // Czekanie na dostęp klienta
    while (!client.available()) {
    delay(1);
    }
    // Odczyt żądania HTTP
    String request = client.readStringUntil('
    ');
    Serial.println(request);
    client.flush();
    if (request.indexOf("button_1") != -1)
    {
    led1 = !led1;
    digitalWrite(Led1, led1);
    }
    else if (request.indexOf("button_2") != -1)
    {
    led2 = !led2;
    digitalWrite(Led2, led2);
    }
    else if (request.indexOf("button_3") != -1)
    {
    led3 = !led3;
    digitalWrite(Led3, led3);
    }
    else if (request.indexOf("button_4") != -1)
    {
    led4 = !led4;
    digitalWrite(Led4, led4);
    }
    else if (request.indexOf("button_5") != -1)
    {
    led5 = !led5;
    digitalWrite(Led5, led5);
    }
    // Odpowiedź na żądanie HTTP
    // client.println("HTTP/1.1 200 OK");
    // client.println("Content-Type: text/html");
    //client.println("");
    client.println("");
    client.println("");
    client.println("");
    client.println("Sterowanie Diodami");
    client.println("");
    client.println("");
    client.println("");
    client.println("");
    client.println("body { background-color: #37434b; color: white; }");
    client.println("#container { width: 700px; height: 500px; margin-left: auto; margin-right: auto; }");
    client.println(".button { width: 100px; height: 100px; margin-left: 20px; margin-top: 250px; background-color: rgb(180, 180, 180); }");
    client.println("");
    client.println("");
    client.println("");

    client.println("");
    client.println("LED 1");
    client.println("LED 2");
    client.println("LED 3");
    client.println("LED 4");
    client.println("LED 5");
    client.println("");

    client.println("");
    client.println("");
    delay(1);
    Serial.println("Klient rozłączony");
    }
    ---------------------------
    Drugi skrypt
    ---------------------------
    #include
    #define Led5 15
    #define Led4 13
    #define Led3 12
    #define Led2 14
    #define Led1 02
    bool led1,led2,led3,led4,led5;
    const char* ssid = "SSID";
    const char* password = "Haslo_do_sieci";
    WiFiServer server(80);
    void setup() {
    Serial.begin(115200);
    pinMode(Led1, OUTPUT);
    pinMode(Led2, OUTPUT);
    pinMode(Led3, OUTPUT);
    pinMode(Led4, OUTPUT);
    pinMode(Led5, OUTPUT);

    delay(10);
    // Konfiguracja pinu diody jako wyjścia
    // Łączenie się z siecią Wi-Fi
    Serial.println();
    Serial.println();
    Serial.print("Łączenie się z ");
    Serial.println(ssid);
    WiFi.begin(ssid, password);
    while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
    }
    Serial.println("");
    Serial.println("Połączono z Wi-Fi");
    Serial.print("Adres IP: ");
    Serial.println(WiFi.localIP());
    // Start serwera
    server.begin();
    Serial.println("Serwer startowy");
    }
    void loop() {
    WiFiClient client = server.available(); // Sprawdzenie czy jest dostępny klient
    if (client) {
    Serial.println("Nowy klient");
    String currentLine = "";
    while (client.connected()) {
    if (client.available()) {
    char c = client.read();
    Serial.write(c);
    if (c == '
    ') {
    if (currentLine.length() == 0) {
    client.println("");
    client.println("");
    client.println("");
    client.println("Sterowanie Diodami");
    client.println("");
    client.println("");
    client.println("");
    client.println("");
    client.println("body { background-color: #37434b; color: white; }");
    client.println("#container { width: 700px; height: 500px; margin-left: auto; margin-right: auto; }");
    client.println(".button { width: 100px; height: 100px; margin-left: 20px; margin-top: 250px; background-color: rgb(180, 180, 180); }");
    client.println("");
    client.println("");
    client.println("");

    client.println("");
    client.println("LED 1");
    client.println("LED 2");
    client.println("LED 3");
    client.println("LED 4");
    client.println("LED 5");
    client.println("");

    client.println("");
    client.println("");
    break;
    } else {
    currentLine = "";
    }
    } else if (c != '
    ') {
    currentLine += c;
    }
    // Sprawdzanie czy klient zażądał włączenia lub wyłączenia LED
    if (currentLine.endsWith("button_1")) {
    led1 = !led1;
    digitalWrite(Led1, led1);
    }
    else if (currentLine.endsWith("button_2")) {
    led2 = !led2;
    digitalWrite(Led2, led2);
    }
    else if (currentLine.endsWith("button_3")) {
    led3 = !led3;
    digitalWrite(Led3, led3);
    }
    else if (currentLine.endsWith("button_4")) {
    led4 = !led4;
    digitalWrite(Led4, led4);
    }
    else if (currentLine.endsWith("button_5")) {
    led5 = !led5;
    digitalWrite(Led5, led5);
    }
    }
    }
    client.stop();
    Serial.println("Klient rozłączony");
    }
    }
    ---------------------------

    • @krucafuks123
      @krucafuks123 Місяць тому

      nie lepiej stworzyć githuba sobie?

    • @InzynierNaukowy
      @InzynierNaukowy  Місяць тому

      @@krucafuks123 Będę musiał to zrobić 😅

    • @yankovalsky7696
      @yankovalsky7696 Місяць тому

      Ewentualnie podaj tylko link do pastebin.

  • @dzikidzik2648
    @dzikidzik2648 Місяць тому +3

    Tworzy się ciekawy kanał. Życzę sukcesów.

  • @Zuubiik
    @Zuubiik Місяць тому +1

    8266 jako zewnętrzny mikrokontroler bez wifi nie jest zbyt dobrym rozwiązaniem. Ma mało zasobów w porównaniu z byle STM32. Myślę że tanią i świetną alternatywą są kontrolery RP2040 z dev biard pico W

  • @rapitu7205
    @rapitu7205 17 днів тому

    Hej od jakiegoś czasu bawię się z tą płytką i interesuje mnie OTA chciałbym wysyłać update code’u wireless bezpośrednio do płytki widzę że filmik jest dość świeży więc czy może chciałbyś mnie w tej kwestii i nagrać coś na ten temat

    • @InzynierNaukowy
      @InzynierNaukowy  16 днів тому

      Hmm. Obecnie pracuję nad dość sporym projektem na najbliższe dwa miesiące. Być może potem postaram się coś takiego zrobić.

  • @MH-vx1fo
    @MH-vx1fo Місяць тому

    Zapewne jestem pechowy - 8266 nigdy (kilka egzemplarzy) nie zadziałało mi poprawnie mimo zakupu z różnych źródeł.
    Mam na myśli próby komunikacji i uruchomienia choćby w trybie mikrokontrolera sterowaniem wyjścia .
    ESP 32 jako tako zależnie od sztuki i pochodzenia.
    Nie miałem nigdy problemów z raspberry pi pico atmegami czy jakimkolwiek klonem arduino. .

  • @grzesiektg
    @grzesiektg Місяць тому

    nie mówię, że się znam, ale czy potrzebowałeś na każdą diodę opornika? wydawało mi się, że mogłoby działać z jednym.
    ale ja z elektroniką jestem na bakier, więc może też nie działać ^^

    • @InzynierNaukowy
      @InzynierNaukowy  Місяць тому

      Faktycznie istnieje taka możliwość, ale lepiej jest dać każdej diodzie oddzielny rezystor tym bardziej warto to zrobić jeśli diody są różnego koloru bo wtedy potrzebują różnych rezystorów.

    • @yankovalsky7696
      @yankovalsky7696 Місяць тому

      W zależności od koloru, diody mają różne przedziały napięć i maksymalny prąd, przy którym działają poprawnie, inaczej można upalić. Rezystor ogranicza natężenie prądu, tym samym obniżając napięcie. Są kalkulatory, które wyliczą ci jaki dać rezystor do diody pod dane napięcie.

  • @pabloo9776
    @pabloo9776 Місяць тому

    można by próbować zrobić repeater wifi i sprawdzić jakie są jego możliwość względem innych repeaterów komercyjnych (gotowców) xd

    • @InzynierNaukowy
      @InzynierNaukowy  Місяць тому +1

      Tak, też o tym myślałem. Zapiszę sobie to do potencjalnych projektów na przyszłość. Dzięki😀

  • @wojciechkorthals644
    @wojciechkorthals644 Місяць тому

    zadziała z esp 32- c6?

    • @InzynierNaukowy
      @InzynierNaukowy  Місяць тому

      Na pewno da się osiągnąć taki sam rezultat, ale wymaga to innego skryptu i pobrania innego pakietu z płytkami bo ten nie ma w sobie esp 32 - c6.

    • @wojciechkorthals644
      @wojciechkorthals644 Місяць тому

      @@InzynierNaukowy zrobisz kiedyś film na ten temat albo zrobisz jakiś projekt?

    • @InzynierNaukowy
      @InzynierNaukowy  Місяць тому

      ​@@wojciechkorthals644 Obecnie nie mam tego w planach, ale nie wykluczam, że kiedyś zrobię coś z tą płytką.