Arduino - Bestuurt Deurslot via Web
In deze tutorial leert u hoe u Arduino gebruikt om een deurslot te bedienen via een webinterface die toegankelijk is via een webbrowser op een computer of smartphone. Zo werkt het allemaal:
- We programmeren de Arduino om als webserver te fungeren
- Wanneer u het IP-adres van uw Arduino in de webbrowser typt, maakt de browser een HTTP-verzoek naar de Arduino.
- De Arduino stuurt terug naar de webbrowser een webpagina. De webpagina laat zien:
- Of de deur op dat moment vergrendeld of ontgrendeld is.
- Een knop om de deur te ontgrendelen.
- Een andere knop om de deur te vergrendelen.
- Als dit de eerste keer is dat u de Arduino Uno R4 gebruikt, zie dan hoe u de omgeving instelt voor Arduino Uno R4 in Arduino IDE.
- Open de Library Manager door te klikken op het Library Manager-icoon aan de linkerkant van de Arduino IDE.
- Zoek naar Web Server for Arduino Uno R4 WiFi en vind de Web Server bibliotheek gemaakt door DIYables.
- Klik op de Installeren-knop om de Web Server bibliotheek toe te voegen.
- Kopieer de bovenstaande code en open deze met de Arduino IDE
- Pas de wifi-gegevens (SSID en wachtwoord) in de code aan naar uw eigen netwerk
- Klik op de Upload-knop in de Arduino IDE om de code naar de Arduino te uploaden
- Open de Seriële Monitor
- Bekijk het resultaat in de Seriële Monitor.
- U ziet een IP-adres, bijvoorbeeld: 192.168.0.2. Dit is het IP-adres van de Arduino Web Server.
- Open een webbrowser en typ één van de drie onderstaande formats in de adresbalk:
- Let op: het IP-adres kan verschillen. Controleer altijd de actuele waarde in de Seriële Monitor.
- Daarnaast ziet u de volgende output in de Seriële Monitor:
- Controleer de status van het deurslot
- U zult de webpagina van de Arduino zien op de webbrowser zoals hieronder:

Hardware Vereist
Of u kunt de volgende kits kopen:
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.
Over Solenoïde Slot en Arduino Uno R4
Als u niet vertrouwd bent met de Arduino Uno R4 en het solenoïde slot (zoals hun pinout, werking en programmeren), kunt u alles hierover leren in de volgende tutorials:
Aansluitschema

This image is created using Fritzing. Click to enlarge image
Arduino Code
/*
* Deze Arduino code is ontwikkeld door newbiely.nl
* Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld.
* Voor volledige instructies en schema's, bezoek:
* https://newbiely.nl/tutorials/arduino/arduino-controls-door-lock-via-web
*/
#include <UnoR4WiFi_WebServer.h>
#define RELAY_PIN 7 // Arduino pin connected to the solenoid lock via relay
const char HTML_CONTENT[] PROGMEM = R"rawliteral(
<!DOCTYPE HTML>
<html>
<head>
<link rel="icon" href="data:,">
<title>Door Control</title>
</head>
<body>
<h1>Door Control System</h1>
<p>The door is <span style="color: red;">%DOOR_STATUS%</span></p>
<br>
<a href="/door/unlock">UNLOCK</a>
<br><br>
<a href="/door/lock">LOCK</a>
</body>
</html>
)rawliteral";
// WiFi credentials
const char WIFI_SSID[] = "YOUR_WIFI_SSID"; // change your network SSID (name)
const char WIFI_PASSWORD[] = "YOUR_WIFI_PASSWORD"; // change your network password
// Door state
int doorState = LOW;
// Create web server instance
UnoR4WiFi_WebServer server;
// Handler for the main door control page
void sendHTML(WiFiClient& client) {
String status = (doorState == LOW) ? "LOCKED" : "UNLOCKED";
String response = HTML_CONTENT;
response.replace("%DOOR_STATUS%", status);
server.sendResponse(client, response.c_str());
}
void handleDoor(WiFiClient& client, const String& method, const String& request, const QueryParams& params, const String& jsonData) {
sendHTML(client);
}
// Handler for unlock command
void handleUnlock(WiFiClient& client, const String& method, const String& request, const QueryParams& params, const String& jsonData) {
doorState = HIGH;
digitalWrite(RELAY_PIN, doorState);
Serial.println("Unlock the door");
sendHTML(client);
}
// Handler for lock command
void handleLock(WiFiClient& client, const String& method, const String& request, const QueryParams& params, const String& jsonData) {
doorState = LOW;
digitalWrite(RELAY_PIN, doorState);
Serial.println("Lock the door");
sendHTML(client);
}
void setup() {
Serial.begin(9600);
delay(1000);
// Initialize relay pin
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, doorState);
Serial.println("Arduino Uno R4 WiFi - Door Lock Web Control");
// Connect to WiFi
Serial.print("Connecting to ");
Serial.println(WIFI_SSID);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println(" connected!");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
// Configure routes
server.addRoute("/", handleDoor);
server.addRoute("/door/unlock", handleUnlock);
server.addRoute("/door/lock", handleLock);
// Start server
server.begin();
Serial.println("\n=== Web Server Ready! ===");
Serial.print("Visit: http://");
Serial.println(WiFi.localIP());
}
void loop() {
server.handleClient();
}
Snelle Stappen

COM6
Arduino Uno R4 WiFi - Door Lock Web Control
Connecting to YOUR_WIFI_SSID
connected!
IP address: 192.168.0.254
Starting web server on IP: 192.168.0.254
=== Web Server Ready! ===
Visit: http://192.168.0.254
Autoscroll
Clear output
9600 baud
Newline
192.168.0.2
192.168.0.2/door/unlock
192.168.0.2/door/lock
COM6
Arduino Uno R4 WiFi - Door Lock Web Control
Connecting to YOUR_WIFI_SSID
connected!
IP address: 192.168.0.254
Starting web server on IP: 192.168.0.254
=== Web Server Ready! ===
Visit: http://192.168.0.254
Method: GET
Requested path: /
Client disconnected
Method: GET
Requested path: /door/unlock
Unlock the door
Client disconnected
Method: GET
Requested path: /door/lock
Lock the door
Client disconnected
Autoscroll
Clear output
9600 baud
Newline

Als u de uitstraling van de webpagina wilt verbeteren met een indrukwekkende grafische gebruikersinterface (UI), kunt u inspiratie en begeleiding vinden in de tutorial Arduino - Webserver.