===== ITT Servo module ===== This laboratory is located in the office of ITT Group in Tallinn, Estonia. ==== Introduction ==== This laboratory can be used to practice controlling the servo motor attached to the controller. {{:en:iot:examples:servopicture2.jpg?300|}} ==== Prerequisites ==== For this laboratory, the student should understand basic MQTT concepts like topics, broker, subscribing and publishing. ==== Technical details ==== This laboratory consists of a servo with the add-on module attached to the ITT IoT controller module. === Sensors === This laboratory does not have any sensors. === Specifications === ^ Specification ^ Value ^ | Speed at 6V | 0,07 sec/60°| | Stall torque at 6V | 0,042 N-m | | Speed at 4,8V | 0,09 sec/60°| | Stall torque at 4,8V | 0,028 N-m |
Servo specifications
=== Electrical connection === The signal lead of the servo is connected to D3 pin of the controller. === Software, libraries and externals === * ITTIoT libary - used to program the controller module. * Servo libary - used to control the servo. === Communication === The user can connect and program this controller using the Distancelab environment. === Limits === At the same time, only one user can program the controller. But all users connected to the Distancelab MQTT broker can subscribe and publish to topics specified. ==== Hands-on labs ==== === Example code === /* * IoT Servo example * * This example subscribe to the "servo" topic. When a message received, then it * change servo position * * Created 11 Sept 2017 by Heiko Pikner */ #include #include #include //Pin definition for the Servo (D3) #define SERVO_PIN D3 Servo myservo; // create servo object to control a servo // Change the servo position (value between 0 and 180) // mosquitto_pub -u test -P test -t "RL/esp-{ESP-ID}/servo" -m "51" // = this calls servo motor to change position void iot_received(String topic, String msg) { Serial.print("MSG FROM USER callback, topic: "); Serial.print(topic); Serial.print(" payload: "); Serial.println(msg); Serial.print("Servo: "); Serial.println(msg); myservo.write(msg.toInt()); } // Function started after the connection to the server is established void iot_connected() { Serial.println("MQTT connected callback"); // Subscribe to the topic "servo" iot.subscribe("servo"); iot.log("IoT Servo example!"); } void setup() { Serial.begin(115200); Serial.println("Booting"); // Print json config to serial iot.printConfig(); // Initialize IoT library iot.setup(); myservo.attach(SERVO_PIN); } void loop() { // IoT behind the plan work, it should be periodically called iot.handle(); delay(200); } ==== Support ==== info@ittgroup.ee