-------------------------------------------------------------------------------- >HairyDiode -------------------------------------------------------------------------------- Control Systems Club Web Controlled Servo Instructions 1-24-2019 -------------------------------------------------------------------------------- Ok everyone, we'r going to start a web controlled servo project. What we want, is a webpage where you click "move servo" and a servo moves. It will work like this, with 4 components we have to write: The Front End The Backend The Servo Controller The Arduino Firmware +---Digital Ocean VPS--+ +--Control Computer--+ |HTML/CSS/JS Front End | HTTPS POST |C Servo Controller | |Golang Backend |====================| | +----------------------+ +--------------------+ || || ||H ||U ||T ||S ||T ||B ||P || ||S ||S || ||e +-Client Computer-+ ||r | Some sort of | ||i | Browser | ||a | | ||l | | || | | +----------------------+ +-----------------+ |C/C++ Arduino Firmware| | | +----------------------+ || ||S ||e ||r ||v ||o || ||W ||i ||r ||e || +-Servo-+ | | +-------+ The Frontend will consist of html templates, as well as supporting css and js files, that will implement a simple UI that allows the user to click on a button that sends a POST request to the backend to move the servo. W3 Forms Tutorial Inline CSS Tutorial CSS Display Property Tutorial The Backend will be a Golang executable that will be listening for HTTPS connections, and serves the frontend, as well as listen for POST requests from both the Frontend and the Control Computer. A POST request from the frontend updates the desired state of the servo, and a POST request from the Control Computer will update the actual state. Both the Actual state and the desired state should also be served as well. Go net/http and html/template Libraries Tutorial The Servo Controller will poll the Backend for the desired state, communicate this to the Arduinoi via the RS-232 Library, and return this desired state via POST to the backend so as to update the actual state. RS-232 Library RS-232 Example cURL API cURL Code Examples The Arduino Firmware will commands over the USB Serial Wire, and output that to the servo. Arduino Serial Tutorial Arduino Servo Tutorial Devops should refer to the workflow page as well as read this page about systemd unit files. Systemd Services