#include <WiFi.h>
#include <Wire.h>
const char* ssid = "Wokwi-GUEST"; //SSID WIFI
const char* password = "";
void wifiConnect() {
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("Terhubung ke WiFi");
Serial.println("Alamat IP: ");
Serial.println(WiFi.localIP());
}
WiFiClient espClient;
#include "PubSubClient.h"
PubSubClient client(espClient);
const char* mqttServer = "broker.emqx.io";
int port = 1883;
char clientId[] = "GetDataSudut.skripsiqwerty123";
char topic_mpu6050[] = "mqtt/mpu6050qwerty123";
#define MSG_BUFFER_SIZE (50)
char msg[MSG_BUFFER_SIZE];
void mqttReconnect() {
while (!client.connected()) {
Serial.print("Menghubungkan ke MQTT Server... ");
if (client.connect(clientId)) {
Serial.print(clientId);
Serial.println(" Terhubung");
client.subscribe(topic_mpu6050);
} else {
Serial.print("Gagal Terhubung, status=");
Serial.print(client.state());
Serial.println(" tunggu");
delay(2000);
}
}
}
void callback(char* topic, byte* message, unsigned int length) {
Serial.print("Pesan Baru, Topik: ");
Serial.print(topic);
Serial.print(" Pesan: ");
String data_topic = topic;
String stMessage;
for (int i = 0; i < length; i++) {
stMessage += (char)message[i];
}
Serial.println(stMessage);
unsigned const long jeda = 1000;
unsigned long zero = 0;
void loop() {
delay(10);
if (!client.connected()) {
mqttReconnect();
}
client.loop();
if(millis() - zero >= jeda){
nilaiLdr = analogRead(ldr);
Serial.println("Mqtt Publish..." + String(nilaisudut));
snprintf (msg, MSG_BUFFER_SIZE, "%ld", nilaisudut);
client.publish(topic_mpu6050, msg);
zero = millis();
}
}
#include "Wire.h"
#include <MPU6050_light.h>
MPU6050 mpu(Wire);
unsigned long timer = 0;
void setup() {
Serial.begin(9600);
Wire.begin();
byte status = mpu.begin();
Serial.print(F("MPU6050 status: "));
Serial.println(status);
while(status!=0){ } // stop everything if could not connect to MPU6050
Serial.println(F("Calculating offsets, do not move MPU6050"));
delay(1000);
mpu.upsideDownMounting = true; // uncomment this line if the MPU6050 is mounted upside-down
mpu.calcOffsets(); // gyro and accelero
Serial.println("Done!\n");
}
void loop() {
mpu.update();
if((millis()-timer)>10){ // print data every 10ms
Serial.print("X : ");
Serial.print(mpu.getAngleX());
Serial.print("\tY : ");
Serial.print(mpu.getAngleY());
Serial.print("\tZ : ");
Serial.println(mpu.getAngleZ());
timer = millis();
}
}