This laboratory is located in the office of ITT Group in Tallinn, Estonia.
For this laboratory, the student should understand basic MQTT concepts like topics, broker, subscribing and publishing.
This laboratory consists of a servo with the add-on module attached to the ITT IoT controller module.
This laboratory does not have any sensors.
The signal lead of the servo is connected to D3 pin of the controller.
The user can connect and program this controller using the Distancelab environment.
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.
/* * 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); }
info@ittgroup.ee