De ESP8266 is een module waarmee je Arduino WiFi verbindingen kunt laten maken. Een ESP8266 kun je voor veel doelen inzetten en is erg eenvoudig in gebruik. De modules zijn klein en erg geschikt voor Domotica en IOT toepassingen. Maar hoe begin je? Dat lees je hier.

Wat gaan we maken?

We gaan de ESP8266 WiFi module installeren, programmeren en configureren voor het gebruik in je thuisnetwerk. Zodra je module gereed hebt voor gebruik kun je alle kanten op. Van Wifi thermometers tot Wifi deurbellen of dimmers. Je kunt het zo gek niet bedenken. De mogelijkheden zijn zo groot omdat de bordjes compatibel zijn met Arduino.

Wat heb je nodig?

Wemos D1 mini met headers

Het voordeel van het gebruik van een Wemos D1 mini of een gelijkwaardig bordje is dat ie gewoon via USB direct te gebruiken is. De losse ESP module zul je via kabeltjes op je Arduino moeten aansluiten.

Aansluiten en installeren

  1. Sluit het board aan op een USB poort.
  2. Windows zal gaan zoeken naar de juiste drivers, vaak de CH340 driver
  3. Zodra Windows de driver geïnstalleerd heeft zie je in het Apparaatbeheer een nieuwe COM poort staan. Schijf dit op of onthoud het poortnummer.

    Apparaatbeheer CH340 driver ESP8266

  4. Installeer als laatste de Arduino IDE, uit de Windows Store (als je Windows 10 hebt) of van de website van Arduino

Arduino IDE in de Windows Store

Zo. De voorbereidingen zijn klaar. We gaan nu de programmeer software, Arduino IDE, opstarten en gebruiken.

Arduino IDE

  1. Start de Arduino IDE op
  2. Ga naar Preferences (of Voorkeuren) en voer de volgende url in bij Additional Board Manager URLs
    http://arduino.esp8266.co...age_esp8266com_index.json

    Hiermee voeg je ondersteuning toe voor Arduino bordjes van derden, zoals de Wemos D1 mini bijvoorbeeld. Als je bordje in deze lijst staat, hoef je verder niets in te stellen en te configureren.

    Arduino Voorkeuren voor ESP8266

  3. Ga naar Hulpmiddelen -> Board -> Board Manager. Zoek op Wemos en installeer.

    Boardmanager Arduino IDE

  4. Stel de COM poort in die je op geschreven hebt. De rest staat goed.

    Selecteer de juiste COM port in de Arduino IDE voor de ESP8266

  5. In het programma, de sketch (het witte venster in het midden), kun je je programma gaan maken. We zullen eerst makkelijk beginnen door een voorbeeld uit te proberen.
  6. Je kunt eerst het Blink example proberen. Klik op Bestand -> Voorbeelden -> 01. Basics -> Blink. Je scherm komt vol te staan met code.
  7. Klik op upload (de pijl) en het programma wordt op de esp8266 geschreven. Als het goed is, gaat de led knipperen. (want dat is het voorbeeld programma.)
  8. Nu we zeker weten dat het werkt gaan we aan de slag met de Wifi

    LED aan en uitzetten met WiFi!

  9. Maak een nieuwe Sketch
  10. kopieer en plak onderstaande code
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    
    #include <ESP8266WiFi.h>
     
    const char* ssid = "ssid name";
    const char* password = "ssid password";
     
    int ledPin = LED_BUILTIN;
    WiFiServer server(80);
    IPAddress ip(192, 168, 1, 99); // where xx is the desired IP Address
    IPAddress gateway(192, 168, 1, 1); // set gateway to match your network
     
    void setup() {
      Serial.begin(115200);
      delay(10);
     
     
      pinMode(ledPin, OUTPUT);
      digitalWrite(ledPin, LOW);
     
      Serial.print(F("Setting static ip to : "));
      Serial.println(ip);
     
      // Connect to WiFi network
      Serial.println();
      Serial.println();
      Serial.print("Connecting to ");
      Serial.println(ssid);
      IPAddress subnet(255, 255, 255, 0); // set subnet mask to match your network
      WiFi.config(ip, gateway, subnet); 
      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 : ");
      Serial.print("http://");
      Serial.print(WiFi.localIP());
      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
     
      int value = LOW;
      if (request.indexOf("/LED=ON") != -1) {
        digitalWrite(ledPin, HIGH);
        value = HIGH;
      } 
      if (request.indexOf("/LED=OFF") != -1){
        digitalWrite(ledPin, LOW);
        value = LOW;
      }
     
     
     
      // Return the response
      client.println("HTTP/1.1 200 OK");
      client.println("Content-Type: text/html");
      client.println(""); //  do not forget this one
      client.println("<!DOCTYPE HTML>");
      client.println("<html>");
     
      client.print("Led pin is now: ");
     
      if(value == HIGH) {
        client.print("On");  
      } else {
        client.print("Off");
      }
      client.println("<br><br>");
      client.println("Click <a href=\"/LED=ON\">here</a> turn the LED on pin 5 ON<br>");
      client.println("Click <a href=\"/LED=OFF\">here</a> turn the LED on pin 5 OFF<br>");
      client.println("</html>");
     
      delay(1);
      Serial.println("Client disconnected");
      Serial.println("");
     
    }
  11. Verander de ip adressen, ssid en wachtwoord naar die van je netwerk.
  12. Open de Serial Monitor via Hulpmiddelen -> Serial Monitor en zet ‘m op 115200 baud. Je kunt nu de meldingen zien die de module laat zien. In de code staat aangegeven op welke ‘baud’ de module dat doet:
     Serial.begin(115200);

    De regels die beginnen met:

    Serial.println(

    zijn de regels die de module zal weergeven in de Serial Monitor.

    Serial Monitor Arduino IDE

  13. In de Serial Monitor zie je nu het IP-Adres en dat de verbinding gemaakt is.
  14. Als je in je browser het IP adres invoert kun je de led aan en uit zetten.

    LED bedienen met WiFi

  15. De LED op je Arduinobordje schakelt in of uit als je op ‘here’ klikt. Het werkt

Je kunt nu verder met andere toepassingen zoals bijvoorbeeld een LED dimmer, of Temperatuurmeter!

Doe mee met de conversatie

1 reactie

  1. Hey handige script en makkelijk om de verbinding te testen.
    ik heb alleen 1 puntje wat opviel in het script en werking van het bordje als led off moet zijn is deze aan en anders om

Laat een reactie achter

Laat weten wat je van dit artikel vindt!

Deze website gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.