Arduino UNO R4 - MySQL
Deze tutorial legt u uit hoe u Arduino UNO R4 gebruikt om gegevens van sensoren te verzamelen en op te slaan in een MySQL database. In detail zullen we leren:
- Hoe u Arduino UNO R4 programmeert om verbinding te maken met MySQL database
- Hoe u Arduino UNO R4 programmeert om gegevens in MySQL database in te voegen
- Hoe u Arduino UNO R4 programmeert om gegevens in MySQL database bij te werken
- Hoe u Arduino UNO R4 programmeert om gegevens uit MySQL database op te halen

Hardware Vereist
Of u kunt de volgende kits kopen:
| 1 | × | DIYables STEM V4 IoT Starterskit (Arduino inbegrepen) | |
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
Arduino UNO R4 - MySQL
De Arduino UNO R4 kan op twee verschillende manieren verbinding maken met de MySQL database:
- Arduino UNO R4 verbindt direct met MySQL Server met behulp van een MySQL protocol (dit is de directe methode).
- Arduino UNO R4 verbindt met MySQL Server via een HTTP protocol (dit is de indirecte methode).
Laten we kijken welke beter is.
Arduino UNO R4 interacteert direct met MySQL Server

Dit lijkt misschien eenvoudig, maar er zijn verschillende nadelen:
- Het toestaan van een MySQL-gebruiker om op afstand toegang te krijgen tot de database kan risicovol zijn voor de beveiliging, zelfs met beperkte gebruikersrechten.
- Het verwerken van gegevens in Arduino UNO R4 of een MySQL server maakt de Arduino-code en MySQL-script complexer en gebruikt veel Arduino geheugen en CPU.
- De MySQL server kan een grote hoeveelheid gegevens naar Arduino UNO R4 sturen, wat ertoe kan leiden dat het geheugen opraakt.
- Veel MySQL bibliotheken ondersteunen geen SSL/TLS, wat betekent dat gebruikersnamen en wachtwoorden zonder versleuteling worden verzonden, wat een ander beveiligingsrisico vormt.
Arduino UNO R4 interacteert indirect met MySQL Server via HTTP/HTTPS
Deze indirecte methode lost alle problemen op die de directe methode heeft. Laten we eerst kijken hoe deze indirecte methode werkt voordat we onderzoeken hoe het de problemen van de directe methode vermijdt.
Hoe het werkt
- Stap 1: Arduino UNO R4 stuurt een HTTP Request naar Web Server
- Stap 2: Web Server voert PHP script uit
- Stap 3: PHP script ontvangt gegevens van HTTP Request, verwerkt deze en communiceert met MySQL database.
- Stap 4: PHP script verwerkt de resultaten en stuurt ze terug naar Arduino UNO R4 via HTTP Response

Deze gids legt u ook uit hoe u een webserver en MySQL server op uw PC installeert. Het lijkt complex, maar dat is het niet.
Nu gaan we onderzoeken hoe de indirecte methode helpt om de nadelen van de directe methode te vermijden.
- Door de MySQL server en HTTP server op dezelfde machine te plaatsen, kunt u het MySQL gebruikersaccount zo instellen dat het alleen toegang heeft vanaf die machine. De gebruikersnaam en het wachtwoord voor dit account worden opgeslagen op de server (genoemd in stap 3), wat helpt om de beveiliging te verhogen.
- Een PHP script (stappen 3 en 4) verwerkt de gegevens. Dit maakt dingen eenvoudiger en minder complex voor zowel de Arduino UNO R4 als de MySQL servers. Het gebruik van PHP voor gegevensverwerking is makkelijker dan het gebruik van Arduino UNO R4 code of MySQL scripts.
- Het PHP script verwerkt de gegevens en stuurt vervolgens alleen wat nodig is naar de Arduino UNO R4 (stap 4). Dit helpt om te voorkomen dat de Arduino UNO R4 zonder geheugen komt te zitten.
- De meeste Ethernet/WiFi bibliotheken ondersteunen TLS/SSL, waardoor HTTPS requests mogelijk zijn. Met HTTPS worden gegevens versleuteld en veilig over het internet verzonden.
In stap 1 kunt u een andere gebruikersnaam en wachtwoord gebruiken om de Arduino UNO R4 met de webserver te verbinden. Het is belangrijk dat de HTTP gebruikersnaam en wachtwoord niet hetzelfde zijn als de MySQL gebruikersnaam en wachtwoord om de beveiliging te waarborgen.
Deze gids laat zien hoe u Arduino UNO R4 indirect met MySQL verbindt.
Arduino UNO R4 - MySQL via HTTP/HTTPS
We moeten de volgende stappen nemen:
- MySQL server, webserver en PHP op uw computer installeren
- MySQL en webserver inschakelen
- Een MySQL gebruikersaccount aanmaken
- Een MySQL database aanmaken
- Een MySQL tabel aanmaken
- PHP scripts schrijven
- Arduino UNO R4 programmeren
Laten we dit stap voor stap doen.
MySQL server, webserver en PHP op uw PC installeren
Het XAMPP pakket bevat alles. We hoeven het maar één keer te installeren.
- Download XAMPP van deze link
- Installeer het.
Na installatie verschijnt de map genaamd C:\xampp\htdocs op uw PC. Deze map zal de PHP code bevatten (later uitgelegd).
MySQL en webserver inschakelen
- Open het XAMPL Control Panel
- Klik op de Start knop om MySQL en de webserver in te schakelen (Zie de onderstaande afbeelding)

Een MySQL gebruikersaccount aanmaken
We gaan een MySQL account instellen dat alleen vanaf de lokale computer toegang heeft tot de MySQL database.
- Zelfs als iemand uw gebruikersnaam en wachtwoord kent, kunnen ze niet op afstand in uw MySQL database komen.
- Omdat PHP en MySQL op dezelfde PC staan, kan PHP de gebruikersnaam en het wachtwoord gebruiken om verbinding te maken met de MySQL database.
Laten we een MySQL gebruikersaccount aanmaken met de gebruikersnaam ArduinoUnoR4 en het wachtwoord newbiely.com.
- Open Command Prompt op uw computer. Houd het open tot u de tutorial hebt voltooid.
- Voer deze command in Command Prompt in:
- MySQL's standaardinstelling bevat een root account dat geen wachtwoord heeft. Het wordt aanbevolen om een wachtwoord voor dit account aan te maken.
Typ de volgende command in Command Prompt om het root account wachtwoord in te stellen: (bijv. YOUR-ROOT-PASSWORD)
- Voer deze command in Command Prompt in:
- Voer uw root wachtwoord in en druk op Enter.
- Maak een MySQL gebruikersaccount aan met de gebruikersnaam 'ArduinoUnoR4' en het wachtwoord 'newbiely.com'. Kopieer de volgende commands en plak ze in Command Prompt:
U hebt nu succesvol een MySQL gebruikersaccount aangemaakt. Onthoud de gebruikersnaam en het wachtwoord, aangezien u deze nodig heeft voor het PHP script.
Een MySQL database aanmaken
Maak een database genaamd db_arduino aan door deze command in Command Prompt in te voeren:
Een MySQL tabel aanmaken
Laten we een tabel maken genaamd tbl_temperature. Kopieer de volgende commands en plak ze in Command Prompt:
Een of meer PHP bestanden schrijven
Maak een PHP bestand genaamd insert_temp.php aan in C:\xampp\htdocs
Deze PHP code neemt temperatuur van HTTP Request en voegt het in de database in.
- Zoek het IP-adres van uw computer op. Zoek op Google als u niet zeker weet hoe u dit moet vinden.
- Om te controleren of de PHP code werkt, open een webbrowser (zoals Chrome) en ga naar deze link: http://192.168.0.4/insert_temp.php?temperature=25.3. Vergeet niet om uw eigen computer IP-adres te gebruiken in plaats van "192.168.0.4".
- U ziet de resultaten weergegeven in uw webbrowser.

- Om te zien of de gegevens in de database zijn opgeslagen, typ deze command in Command Prompt:
De temperatuur 25.3 is opgeslagen in de database. Vervolgens moeten we de Arduino UNO R4 programmeren om een soortgelijk HTTP request naar uw computer te sturen.
Arduino UNO R4 code schrijven
Deze Arduino UNO R4 code stuurt een HTTP request naar uw computer om een temperatuur van 30.5°C aan de database toe te voegen.
Arduino UNO R4 Code voor Arduino UNO R4 R4 WiFi
Snelle Stappen
Volg deze instructies stap voor stap:
- Als dit uw eerste keer is met de Arduino Uno R4 WiFi/Minima, raadpleeg dan de tutorial over het instellen van de omgeving voor Arduino Uno R4 WiFi/Minima in de Arduino IDE.
- Verbind de Arduino Uno R4 board met uw computer met behulp van een USB kabel.
- Start de Arduino IDE op uw computer.
- Selecteer de juiste Arduino Uno R4 board (bijv., Arduino Uno R4 WiFi) en COM poort.
- Vervang het IP-adres in de code door het IP-adres van uw computer.
- Compileer en upload de code naar de Arduino UNO R4.
- Open de Serial Monitor.
- Bekijk de uitvoer op de Serial Monitor.
- Om te zien of de informatie in de database is opgeslagen, typ deze command in Command Prompt:
De temperatuur 30.5 is opgeslagen in de database.
Hoe Arduino UNO R4 gegevens invoegt, bijwerkt of ophaalt naar/van MySQL database
In het voorbeeld hebben we geleerd hoe we gegevens aan de MySQL database kunnen toevoegen. Om gegevens bij te werken of op te halen, is het proces vergelijkbaar. Verander gewoon de MySQL queries in het PHP script. Voor meer informatie, bezoek W3Schools.
Geavanceerd Gebruik
Om de beveiliging te verbeteren,
- Kunt u de code van Arduino UNO R4 aanpassen om HTTPS in plaats van HTTP te gebruiken. Voor hoe dit te doen, bezoek Arduino UNO R4 - HTTPS.
- Kunt u authenticatie gebruiken met een gebruikersnaam en wachtwoord bij het verbinden van de Arduino UNO R4 met een webserver. Leer meer op Basic access authentication.
※ Notiz:
Om een volledig systeem met topbeveiliging te creëren, moeten we meer functies toevoegen (zoals het voorkomen van MySQL injectie, HTTPS omzetten naar REST API, en JSON formaat gebruiken voor gegevens). Deze gids is echter bedoeld voor beginners die Arduino UNO R4 leren. We hebben het zeer eenvoudig gehouden. Nadat u deze gids hebt voltooid, kunt u meer geavanceerde onderwerpen leren.
Video Tutorial
We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.