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.

5458448

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.

image-20250417153507142

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.

5458448

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:

image-20250417155849702

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:

image-20250417155955349

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.

image-20250417160135272

5.11.2 Webgesteuerte Smart Farm

flo11

Ö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