#include <Adafruit_MPU6050.h>
#include <Wire.h>
#include <WiFi.h>
#include <ThingsBoard.h>
#include <Arduino_MQTT_Client.h>
Adafruit_MPU6050 mpu;
constexpr uint16_t MAX_MESSAGE_SIZE = 256U;
#define WIFI_AP "Wokwi-GUEST"
#define WIFI_PASS ""
#define ThingerBoard_Server "thingsboard.cloud"
#define Token "hfTS5x2CdBSQivgrhQp8"
WiFiClient espClient;
Arduino_MQTT_Client mqttClient(espClient);
ThingsBoard tb(mqttClient, MAX_MESSAGE_SIZE);
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
if (!mpu.begin()) {
Serial.println("No se encontro el dispositivo MPU6050 ");
while (1) {
delay(10);
}
}
initWiFi();
if (!tb.connected())
{
Serial.println("Conectando con Thinger Board ....");
if(!tb.connect(ThingerBoard_Server,Token))
{
Serial.println("No se pudo conectar con el servidor!");
return;
}
else{
Serial.println("Conectado correctamente!");
}
}
}
void loop() {
sensors_event_t a, g, temp;
mpu.getEvent(&a, &g, &temp);
sendDataToThingsBoard ( g.gyro.x, g.gyro.y, g.gyro.z);
delay(2000);
}
void initWiFi(){
Serial.begin(9600);
Serial.println("Iniciando WIFI");
while(WiFi.status() != WL_CONNECTED)
{
WiFi.begin(WIFI_AP,WIFI_PASS,6);
Serial.print(".");
delay(500);
}
Serial.println("Conectado!");
}
void sendDataToThingsBoard(float xRotation, float yRotation, float zRotation) {
String jsonData = "{\"RotacionBaseX\":" + String(xRotation) + + ", \"RotacionBaseY\":" + String(yRotation) + + ", \"RotacionBaseZ\":" + String(zRotation) +"}";
tb.sendTelemetryJson(jsonData.c_str());
Serial.println("Data sent");
}