#include #include #include #include #include #include #include MPU6050 mpu6050(Wire); const char* ssid = ""; const char* password = ""; const char* mqtt_server = ""; WiFiClient espClient; PubSubClient client(espClient); long lastMsg = 0; char msg[50]; int value = 0; char angle_val[8]; int val = 0; void setup_wifi() { Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.print("."); } randomSeed(micros()); Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); } void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Message arrived ["); Serial.print(topic); Serial.print("] "); for (int i = 0; i < length; i++) { Serial.print((char)payload[i]); } Serial.println(); } void reconnect() { while (!client.connected()) { Serial.print("Attempting MQTT connection..."); // Create a random client ID String clientId = "ESP8266Client-"; clientId += String(random(0xffff), HEX); // Attempt to connect if (client.connect(clientId.c_str())) { Serial.println("connected"); client.publish("outTopic", "hello world"); client.subscribe("inTopic"); } else { Serial.print("failed, rc="); Serial.print(client.state()); Serial.println(" try again in 3 seconds"); delay(3000); } } } void setup() { Serial.begin(115200); setup_wifi(); client.setServer(mqtt_server, 1883); client.setCallback(callback); } void loop() { if(!client.connected()) { client.reconnect(); } long now = millis(); if (now - lastMsg > 1000) { lastMsg = now; ++value; mpu6050.update(); Serial.print("angleX : "); val = mpu6050.getAngleX(); dtostrf(val, 4, 2, angle_valX); Serial.println(angle_valX); client.publish("angle_X", angle_valX); client.loop(); } }