Co można zrobić z pomocą ESP8266?

Поделиться
HTML-код
  • Опубликовано: 16 июл 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
  • НаукаНаука

Комментарии • 20

  • @InzynierNaukowy
    @InzynierNaukowy  11 дней назад

    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 9 дней назад

      nie lepiej stworzyć githuba sobie?

    • @InzynierNaukowy
      @InzynierNaukowy  9 дней назад

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

    • @yankovalsky7696
      @yankovalsky7696 2 дня назад

      Ewentualnie podaj tylko link do pastebin.

  • @dzikidzik2648
    @dzikidzik2648 10 дней назад +2

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

  • @Zuubiik
    @Zuubiik 6 дней назад +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

  • @MH-vx1fo
    @MH-vx1fo 10 дней назад

    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 10 дней назад

    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  10 дней назад

      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 2 дня назад

      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 8 дней назад

    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  8 дней назад +1

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

  • @wojciechkorthals644
    @wojciechkorthals644 10 дней назад

    zadziała z esp 32- c6?

    • @InzynierNaukowy
      @InzynierNaukowy  9 дней назад

      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 9 дней назад

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

    • @InzynierNaukowy
      @InzynierNaukowy  9 дней назад

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