5.11 Webgesteuerte Smart Farm
5.11.0 Verbinden Sie das ESP32 Board mit dem Netzwerk
Das ESP32 Board ist mit Wi-Fi (2.4G) und Bluetooth (4.2) ausgestattet, wodurch es sich einfach mit WiFi verbinden und mit anderen Geräten im Netzwerk kommunizieren kann.
Was Sie vorbereiten müssen:
-Ein 2.4 GHz WiFi (Es kann ein mobiler Hotspot oder ein Router sein)
-Den WIFI-Namen und das Passwort
-Ein Telefon/IPAD/Computer, das sich mit demselben WiFi verbinden kann.
Arduino IDE stellt Ihnen die Bibliotheksdatei <WiFi.h> zur Verfügung, die Wi-Fi-Konfigurationen und die Überwachung des ESP32 Wi-Fi-Netzwerks unterstützt.
A. Basisstationsmodus (STA oder Wi-Fi Client-Modus): In diesem Modus verbindet sich ESP32 mit dem Wi-Fi Hotspot (AP).
B. AP-Modus (Soft-AP oder Wi-Fi Hotspot-Modus): In diesem Modus verbinden sich andere Wi-Fi-Geräte mit ESP32.
C. AP-STA-Modus: In diesem Modus ist ESP32 sowohl ein Wi-Fi Hotspot als auch ein Wi-Fi-Gerät, das sich mit einem anderen Wi-Fi Hotspot verbindet.
D. Diese Modi sind kompatibel mit mehreren sicheren Modi, wie WPA, WPA2 und WEP.
E. Es ist in der Lage, nach Wi-Fi Hotspots zu suchen, einschließlich aktiver und passiver Scans.
F. Es unterstützt den Promiscuous-Modus zur Überwachung von IEEE802.11 Wi-Fi Paketen.
Für weitere Details zu WLAN, siehe:
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/network/esp_wifi.html
Offizielle ESPRESSIF-Website: https://www.espressif.com.cn/en/home
Öffnen Sie den Code 5.11.0Connect-the-ESP32-to-the-Network mit der Arduino IDE.
#include <WiFi.h>
const char* ssid = "your_SSID";
const char* password = "your_PASSWORD";
void setup() {
Serial.begin(9600);
//Initialize Wifi
WiFi.begin(ssid, password);
//Scan for wifi. If connection fails, stay in connecting, and execute "while" loop
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
//Connected. Print the IP address
Serial.println("Connected to WiFi");
Serial.println(WiFi.localIP());
}
void loop() {
}
Ändern Sie your_SSID im Code in den Namen Ihres WLANs und your_PASSWORD in das WLAN-Passwort
const char* ssid = "your_SSID";
const char* password = "your_PASSWORD";
Wählen Sie das Board ESP32 Dev Module und den COM-Port und laden Sie den Code hoch.

Testergebnis:
Laden Sie den Code hoch, und das Board verbindet sich mit dem Wi-Fi-Netzwerk und zeigt die IP-Adresse auf dem seriellen Monitor an.

5.11.1 Eine Website einrichten - HELLOWORLD
Solange eine Verbindung zum Wi-Fi besteht, kann die Webserver-Bibliothek des ESP32 Webseiten bereitstellen. Im folgenden Beispielcode richten wir eine einfache Website ein, die „Hello, World!“ anzeigt.
Öffnen Sie den Code 5.11.1WiFi-HTML-HELLOWORLD mit der Arduino IDE.
#include <WiFi.h>
#include <WebServer.h>
const char* ssid = "your_SSID";
const char* password = "your_PASSWORD";
WebServer server(80); //Set the server port to 80. Enter the website by IP address rather than the port number.
//Initialize the website
void handleRoot() {
//Used to send HTTP to the client-side for response, sending 200 means success.
server.send(200, "text/html", "<h1>Hello, World!</h1>");
}
void setup() {
Serial.begin(9600);
//Initialize wifi
WiFi.begin(ssid, password);
//Scan for wifi. If connection fails, stay in connecting, and execute "while" loop
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
//Connected. Print the IP address
Serial.println("Connected to WiFi");
Serial.println(WiFi.localIP());
server.on("/", handleRoot);
//Start server
server.begin();
Serial.println("Web server started");
}
void loop() {
server.handleClient();
}
Ändern Sie your_SSID im Code in den Namen Ihres WLANs und your_PASSWORD in das WLAN-Passwort. Laden Sie dann den Code hoch.
const char* ssid = "your_SSID";
const char* password = "your_PASSWORD";
Wählen Sie das Board ESP32 Dev Module und den COM-Port und laden Sie den Code hoch.

Testergebnis:
In diesem Beispielcode richten wir einen Webserver mit der WebServer-Bibliothek auf ESP32 ein. Die Funktion handleRoot() fordert die Verarbeitung im Stammverzeichnis an und sendet die HTML-Antwort „Hello, World!“ an den Client. Dann richtet setup() die Stammroute ein und server.begin() startet den Webserver.
Klicken Sie auf den seriellen Monitor, um die IP-Adresse anzuzeigen:

HINWEIS: Wenn PC, Mobiltelefone und ESP32-Board mit einem Netzwerk verbunden sind, können Sie diese Website gleichzeitig auf PC und Telefonen besuchen.
Greifen Sie auf die IP im PC-Browser oder Telefon-Browser zu:

Hinweis: Erfordert 2,4 GHz WLAN, nicht 5G. Der PC oder das Mobiltelefon, das auf die IP-Adresse zugreift, muss mit demselben WLAN wie das ESP32-Board verbunden sein.

5.11.2 Webgesteuerte Smart Farm

Öffnen Sie den Code 5.11.2WiFi-HTML-Smart-Farm mit der Arduino IDE.
#include <Arduino.h>
#include <WiFi.h>
#include <WebServer.h>
#include <LiquidCrystal_I2C.h>
#include <dht11.h>
#include <ESP32Servo.h>
// Pin Definitions
#define DHT11PIN 17 // Temperature and humidity sensor pin
#define LEDPIN 27 // LED pin
#define SERVOPIN 26 // Servo pin
#define FANPIN1 19 // Fan IN+ pin
#define FANPIN2 18 // Fan IN- pin
#define STEAMPIN 35 // Steam sensor pin
#define LIGHTPIN 34 // Photoresistor pin
#define SOILHUMIDITYPIN 32 // Soil humidity sensor pin
#define WATERLEVELPIN 33 // Water level sensor pin
#define RELAYPIN 25 // Relay pin
// Initialize sensors and components
dht11 DHT11;
LiquidCrystal_I2C lcd(0x27, 16, 2);
Servo myservo; // Servo object to control the servo
// WiFi credentials
const char *SSID = "your_SSID";
const char *PASS = "your_PASSWORD";
// Create WebServer object