Kontrollieren eines Servomotors via WiFi über einen Arduino

Allgemein

Ich beschreibe ein kleines Beispielprojekt, dass folgendes Ziel erreichen sollen.

Über einen Arduino wird ein Servo-Controller gesteuert, der aufgrund eines Wertes auf einer WebPage sich in die gewünschte Stellung bewegt, bspw. könnte das verwendet werden, um eine darauf montierte Kamera zu steuern.

Als WebPage habe ich eine einfache WebPage mit NodeJS zusammen geschrieben, die den Wert zurück gibt und ändern lässt.

Erstellen der NodeJS Anwendung

Die Beispielanwendung habe ich unter GitHub abgelegt:

https://github.com/smoki99/RemoteControlServoByWebPage

In der "server.js" Datei wird die "servoangle1" Variable gesteuert, die später auch von Arduino zur Anfrage der Werte verwendet wird.

Die Webseite stellt sich wie folgt auf http://aledcontroller.herokuapp.com dar und ermöglicht über die beiden Buttons

Der Wert wird über http://aledcontroller.herokuapp.com/servoangle1 abgefragt:

Das ist jetzt natürlich nur ein schneller Hack und keine professionelle Applikation.

Vorbereitung der Hardware

Damit der Arduino die Daten von der Homepage holen kann, muss zunächst ein Wifi Bauteil vorbereitet werden. Ich habe hier den CC33000 von Adafruit verwendet:
Beispielsweise hier bei Amazon zu beziehen

Hier muss als erstes noch die Steckleiste angelötet werden:

Anschließend ist der CC3000 wie unter diesen Link auf den Breadboard zu setzen.

Der Anschluß inklusive Servo sieht dann wie folgt aus:

Programmierung für den Arduino

Der Arduino ist nun mit folgenden Skript zu laden

Die WLAN Daten sind hier im Source-Code einzutragen: https://github.com/smoki99/RemoteControlServoByWebPage/blob/master/arduoinoSketch/arduoinoSketch.ino

Nach dem Hochladen verbindet sich der Arduino mit dem WLAN:

Anschließend kann man von überall aus diesen Servo nun steuern:

Fazit

Mittels Arduino und geeigneten WiFi Modul lässt sich sehr schnell ein sogenanntes Internet der Dinge realisieren.