====== Servo example======
Servo motor has to be connected to the sensor module. Motor cable pins has to be connected to left side of the sensor pins, and also the brown cable(GRND) has to be connected to the left side of the pin.
{{:en:iot:examples:servopicture1.jpg?200|}}
{{:en:iot:examples:servopicture2.jpg?200|}}
Needed libraries:
lib_deps = ITTIoT
/*
* 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
*/
// Includes global variables and librarys that the servo motor uses
#include
#include
#include
#define MODULE_TOPIC "ESP30/servo"
#define WIFI_NAME "name"
#define WIFI_PASSWORD "password"
//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) when a message has been received
// 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);
if(topic == MODULE_TOPIC)
{
myservo.write(msg.toInt());
}
}
// Function started after the connection to the server is established
void iot_connected()
{
Serial.println("MQTT connected callback");
iot.subscribe(MODULE_TOPIC); // Subscribe to the topic "servo"
iot.log("IoT Servo example!");
}
void setup()
{
Serial.begin(115200); // Setting up serial connection parameter
Serial.println("Booting");
//iot.setConfig("wname", WIFI_NAME);
//iot.setConfig("wpass", WIFI_PASSWORD);
iot.printConfig(); // Print json config to serial
iot.setup(); // Initialize IoT library
myservo.attach(SERVO_PIN); // Setting the servo control pin
}
void loop()
{
iot.handle(); // IoT behind the plan work, it should be periodically called
}