WeMOS Server Connection

Fra HTX Arduino
Spring til navigation Spring til søgning
WeMOS WiFi Processor
WeMOS Server Connection - Simpel Server - Flere SSID - ESP8266 - Watchdog - Interrupt
Anvendelse LED-eksempel - AD-eksempel - Mail - POST metode - Web Publicering

Denne beskrivelse tager udgangspunkt i et eksempel fundet ved esp8266learning.com[1]

Bibliotek

Når man har fået Arduino IDE'et til at fungere med WeMOS som beskrevet derunder, så har man adgang til et bibliotek ved navn ESP8266WiFi. Man skal have forbindelse til det ved at skrive:

#include <ESP8266WiFi.h>

Oprettelse af Server

For at oprette server-objektet, så skriver man følgende inden setup():

WiFiServer server(80);

Kontakt til det trådløse net

For at kunne få kontakt til et trådløst ned, skal man kende noget til netværket. Netværket skal gerne være af typen med WPA2-Personal godkendelse (Skolens netværk på Holstebro HTX er af typen WPA2-Enterprice, og kan derfor ikke fungere sammen med WeMOS).

Hvis man ikke lige har et eksisterende netværk, hvor man kender adgangskoden til, så vil men normalt have muligheden for at oprette et mobilt hotspot ved hjælp af sin telefon, hvis den har WiFi og forbindelse til internettet.

Alternativt, så man man på skolen gøre det at man deler interettet ud fra sin bærbare computer, ved at lade den oprette er mobilhotspot. Det kan man i Windows 10 finde under Windows Indstillinger - Netværk og Internet - Mobilhotspot, hvor man slår det til fx med følgende indstillinger:

Indstillinger til mobilhotspot
Indstillinger til mobilhotspot

Under alle omstændigheder skal man kende følgende:

  • ssid - der er navnet på det trådløse netværk
  • password - der er password til det trådløse netværk

Oplysningerne angives som følger:

const char* ssid = "ssid name";
const char* password = "ssid password";


Når man har disse oplysninger, så kan man inde i setup() anvende følgende kode:

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

Denne kode forsøger at oprette forbindelse til det trådløse netværk, og venter indtil status er Connected.

Statisk IP-adresse

Man kan også oprette forbindelse til det trådløse netværk ved at anvende en fast IP-adresse. Man kan bare være sikker på at der ikke er andre der enten har fået den IP-adresse tildelt, eller at andre connecter til den samme statiske IP-adresse. Begge dele vil kunne resultere i en IP-adresse-konflikt, der vil gøre at man ikke kan kommunikere på netværket.

Hvis man har styr på IPadressen, så kan man connecte på følgende måde i stedet for ovenstående:

  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
  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(".");
  }

Flere netværk

Da man er nødt til at angive netværk-navn og password til netværket, så kan det tit være en fordel at man kan angive flere forskellige netværk. Dette understøttes af WiFiMulti.

Der connectes til biblioteket som vist her, og så sættes netværksnavne og passwords op:

#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>

const char* ssid1 = "ssid-name1";
const char* ssid2 = "ssid-name2";

const char* password1 = "ssid-password1";
const char* password2 = "ssid-password2";

int ledPin = 2;
WiFiServer server(80);
ESP8266WiFiMulti wifiMulti;

I setup() skal man så initialisere wifiMulti og connecte til et af de angivne netværk. Det sker som vist her:

  wifiMulti.addAP(ssid1, password1); // SSID and Password for router to connect to
  wifiMulti.addAP(ssid2, password2); // SSID and Password for router to connect to 

  while (wifiMulti.run() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

Start af Server

Når der er forbindelse til det trådløse netværk, så kan man starte serveren med følgende kode, og man kan udskrive i den serielle monitor hvilken IP-adresse serveren eksisterer på.

  server.begin();
  Serial.println("Server started");
 
  // Print the IP address
  Serial.print("Use this URL : ");
  Serial.print("http://");
  Serial.print(WiFi.localIP());
  Serial.println("/");

Man kan efterfølgende taste den IP-adresse i sin browser, og på den måde få forbindelse til WeMOS Serveren.

Anvendelsen af serveren

Når serveren er sat op og har forbindelse til WiFi netværket, så kan man lave forskellige respons, som gennemgået i WeMOS LED-eksempel og WeMOS AD-eksempel

Referencer