Closed turbomatte closed 6 months ago
Funktioniert!!!!!
const char ssid = "MagentaWLAN-YMLQ"; const char password = "";
const char mqtt_server = "mqtt-broker.zdw31.cloud"; const int mqtt_port = 1883; const char mqtt_username = "user1"; const char mqtt_password = "HWSFI2024!"; const char mqtt_topic = "distance";
WiFiClient client; Adafruit_MQTT_Client mqtt(&client, mqtt_server, mqtt_port, mqtt_username, mqtt_password);
SONIC_I2C sensor; Adafruit_MQTT_Publish distancePub = Adafruit_MQTT_Publish(&mqtt, mqtt_topic);
const int graphHeight = 100; const int maxDataPoints = 100; int dataPoints[maxDataPoints] = {0}; int dataIndex = 0;
void MQTT_connect() { int8_t ret; Serial.print("Connecting to MQTT... "); uint8_t retries = 3; while ((ret = mqtt.connect()) != 0) { Serial.println(mqtt.connectErrorString(ret)); Serial.println("Retrying MQTT connection in 5 seconds..."); mqtt.disconnect(); delay(5000); retries--; if (retries == 0) { while (1); } } Serial.println("MQTT Connected!"); }
void setup() { M5.begin(); sensor.begin(); Serial.begin(9600);
// Connect to Wi-Fi Serial.print("Connecting to Wi-Fi: "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(" Wi-Fi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP());
// Setup screen M5.Lcd.fillScreen(BLACK); M5.Lcd.setTextFont(1); M5.Lcd.setTextSize(2); M5.Lcd.setTextColor(WHITE);
// Connect to MQTT MQTT_connect(); }
void updateGraph(float value) { // Update data points array dataPoints[dataIndex] = map(value, 0, 2000, 0, graphHeight); dataIndex = (dataIndex + 1) % maxDataPoints;
// Draw graph M5.Lcd.fillRect(0, 20, maxDataPoints, graphHeight, BLACK); for (int i = 0; i < maxDataPoints - 1; i++) { M5.Lcd.drawLine(i, graphHeight - dataPoints[(dataIndex + i) % maxDataPoints], i + 1, graphHeight - dataPoints[(dataIndex + i + 1) % maxDataPoints], GREEN); } }
void loop() { // Ensure the connection to the MQTT server is alive MQTT_connect();
// Read distance from sensor float distance = sensor.getDistance();
// Publish distance to MQTT topic distancePub.publish(distance); Serial.println("Published distance: " + String(distance) + "mm");
// Update graph and display distance updateGraph(distance); M5.Lcd.fillRect(0, 0, 320, 20, BLACK); // Clear previous distance value M5.Lcd.setCursor(0, 0); M5.Lcd.print("Distance: "); M5.Lcd.print(distance); M5.Lcd.print(" mm");
// Display connection status on screen M5.Lcd.setCursor(0, 220); M5.Lcd.print("WiFi:"); if (WiFi.status() == WL_CONNECTED) { M5.Lcd.setTextColor(GREEN); M5.Lcd.print("Connected "); } else { M5.Lcd.setTextColor(RED); M5.Lcd.print("Disconnected "); }
M5.Lcd.print(" MQTT:"); if (mqtt.connected()) { M5.Lcd.setTextColor(GREEN); M5.Lcd.print("Connected "); } else { M5.Lcd.setTextColor(RED); M5.Lcd.print("Disconnected "); }
delay(1000); // Adjustable delay between measurements }
Marius Nach flash auf M5 Stack Grafik erscheint und funktioniert
Funktioniert!!!!!
include
include
include
include
include
const char ssid = "MagentaWLAN-YMLQ"; const char password = "";
const char mqtt_server = "mqtt-broker.zdw31.cloud"; const int mqtt_port = 1883; const char mqtt_username = "user1"; const char mqtt_password = "HWSFI2024!"; const char mqtt_topic = "distance";
WiFiClient client; Adafruit_MQTT_Client mqtt(&client, mqtt_server, mqtt_port, mqtt_username, mqtt_password);
SONIC_I2C sensor; Adafruit_MQTT_Publish distancePub = Adafruit_MQTT_Publish(&mqtt, mqtt_topic);
const int graphHeight = 100; const int maxDataPoints = 100; int dataPoints[maxDataPoints] = {0}; int dataIndex = 0;
void MQTT_connect() { int8_t ret; Serial.print("Connecting to MQTT... "); uint8_t retries = 3; while ((ret = mqtt.connect()) != 0) { Serial.println(mqtt.connectErrorString(ret)); Serial.println("Retrying MQTT connection in 5 seconds..."); mqtt.disconnect(); delay(5000); retries--; if (retries == 0) { while (1); } } Serial.println("MQTT Connected!"); }
void setup() { M5.begin(); sensor.begin(); Serial.begin(9600);
// Connect to Wi-Fi Serial.print("Connecting to Wi-Fi: "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(" Wi-Fi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP());
// Setup screen M5.Lcd.fillScreen(BLACK); M5.Lcd.setTextFont(1); M5.Lcd.setTextSize(2); M5.Lcd.setTextColor(WHITE);
// Connect to MQTT MQTT_connect(); }
void updateGraph(float value) { // Update data points array dataPoints[dataIndex] = map(value, 0, 2000, 0, graphHeight); dataIndex = (dataIndex + 1) % maxDataPoints;
// Draw graph M5.Lcd.fillRect(0, 20, maxDataPoints, graphHeight, BLACK); for (int i = 0; i < maxDataPoints - 1; i++) { M5.Lcd.drawLine(i, graphHeight - dataPoints[(dataIndex + i) % maxDataPoints], i + 1, graphHeight - dataPoints[(dataIndex + i + 1) % maxDataPoints], GREEN); } }
void loop() { // Ensure the connection to the MQTT server is alive MQTT_connect();
// Read distance from sensor float distance = sensor.getDistance();
// Publish distance to MQTT topic distancePub.publish(distance); Serial.println("Published distance: " + String(distance) + "mm");
// Update graph and display distance updateGraph(distance); M5.Lcd.fillRect(0, 0, 320, 20, BLACK); // Clear previous distance value M5.Lcd.setCursor(0, 0); M5.Lcd.print("Distance: "); M5.Lcd.print(distance); M5.Lcd.print(" mm");
// Display connection status on screen M5.Lcd.setCursor(0, 220); M5.Lcd.print("WiFi:"); if (WiFi.status() == WL_CONNECTED) { M5.Lcd.setTextColor(GREEN); M5.Lcd.print("Connected "); } else { M5.Lcd.setTextColor(RED); M5.Lcd.print("Disconnected "); }
M5.Lcd.print(" MQTT:"); if (mqtt.connected()) { M5.Lcd.setTextColor(GREEN); M5.Lcd.print("Connected "); } else { M5.Lcd.setTextColor(RED); M5.Lcd.print("Disconnected "); }
delay(1000); // Adjustable delay between measurements }