Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
en:iot-open:remotelab:itt:servo [2019/10/27 10:52] pczekalskien:iot-open:remotelab:itt:servo [2020/07/20 12:00] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +===== 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 ===
 +<table Ref.Tab.1.1>
 +<caption>Servo specifications</caption>
 +^ 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 |
 +</table>
 +
 +=== 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 ===
 +
 +<code c>
 +/*
 + * 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 <Arduino.h>
 +#include <Servo.h>
 +#include <ittiot.h>
 +
 +//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);
 +}
 +
 +</code>
 +
 +==== Support ====
 +info@ittgroup.ee
  
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0