Websitedaten in Datenbank schreiben?
Hallo,
ich habe mir eine einfache Website mit HTML gebaut, die zwei Buttons enthält ("An" und "Aus"). Ich möchte nun, wenn ein Knopf gedrückt wird, ein paar Sachen in eine Tabelle einer Datenbank eintragen. Zum einen eine ID, bei dem Knopf "An" ID=1 bei dem Knopf "Aus" ID=2, dann die Uhrzeit des Drückens (in meiner Tabelle, hat die Spalte "Uhrzeit" den Datentyp DATETIME) und einen Status, bei "An" Status=1 bei "Aus" Status=0.
Dazu wäre also meine erste Frage, wie ich das anstelle.
Dann weiter will ich die Tabelle aus meiner Datenbank mit einem Mikrocontroller auslesen und anhand des Status eine LED steuern. Also wenn Status=1 LED=An, bei Status=0 LED=Aus.
Da also meine zweite Frage, wie stelle ich das an?
Danke schon mal.
5 Antworten
Ich würde dir empfehlen die Webseite mit einem lokalen Webserver zu hosten. Dieser kann dann die Webseite und den Datenbankserver unterhalten. Der Webserver kann dann ein HTTP-Request oder eine andere Request-Implementierung nutzen um den Mikrocontroller anzusteuern. Ein Weg ist die Nutzung von PHP und SQL. PHP ist eine serverseitige Programmiersprache die explizit für die Webprogrammierung erstellt wurde. Diese läuft auf einen Webserver und kann Verbindung aufbauen zu einen Datenbankserver z.B. mit SQL läuft. SQL ist eine Datenbanksprache die für SQL-Datenbanken genutzt wird um Anfragen, etc. an die Datenbank zu senden.
Dafür brauchst du definitiv ein Backend. Ein Backend für einen Server kannst mit allen möglichen Sprachen und Frameworks erstellen.
Du kannst nun zum Beispiel über ein Form die jeweilige Einstellung an den Server senden der dies nun in der Datenbank speichert. Am besten wäre es wenn du nun einen API Endpunkt auf dem Server erstellst der den gespeicherten Wert zurückgibt.
Auf dem Mikrokontroller kannst du nun entweder per Polling oder per Webhook überprüfen ob sich der Rückgabewert der API geändert hat oder nicht.
Das ist nur ein grundlegender Ablaufplan wie man das umsetzen kann (geht natürlich auch anders)
lg Suiram1
Bei so einem kleinen "Problem" könnte doch ein Flatfile-System ohne klassische Datenbank (mitsamt Overhead) reichen. Reicht doch 1 oder 0 in eine kleine Text-Datei serverseitig zu schreiben. Mit einem selbstdefinierten Trennzeichen lassen sich auch mehrere Werte in die Datei schreiben, verändern und auslesen.
Lässt sich auch relativ leicht auslesen und neu beschreiben. Sicherlich sind moderne Datenbanken und die Zugriffe eleganter. Aber für so wenige Werte?
Ich persönlich würde das ganze über eine API lösen, welche dann mit den Attributen angefragt wird, und dann weiter verfährt. Z.B. könntest du die API in JS via NodeJS schreiben, das hätte den Vorteil, dass du über die Module (mysql2) direkt eine SQL-Datenbank beschreiben kannst.
Es gibt bestimmt zig andere Wege, deswegen mein persönlicher Vorschlag.
Wenn du als Mikrocontroller einen esp32 (~5€) verwendest, kannst du auf diesem den webserver hosten, kannst die html einfach in den normalen Arduino Code schreiben und die LEDs etc damit schalten. Schau dir das hier mal an:
https://randomnerdtutorials.com/esp32-web-server-arduino-ide/