Hi everyone,
I am using Mosquitto broker to communicate with M5 MQTT client using my house wifi. Despite using serial, my serial monitor is empty. However, my command prompt shows that client received PINGRESP. Is there any problem with my programming?
#include <M5Stack.h>
#include <M5ez.h>
#include <WiFi.h>
#include <PubSubClient.h>
#include <Adafruit_NeoPixel.h>
#define M5STACK_FIRE_NEO_NUM_LEDS 10
#define M5STACK_FIRE_NEO_DATA_PIN 15
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(M5STACK_FIRE_NEO_NUM_LEDS, M5STACK_FIRE_NEO_DATA_PIN, NEO_GRB + NEO_KHZ800);
const char* ssid = "Lee Family";
const char* password = "*********";
const char *ID = "M5client";
const char *TOPIC = "fyp/PIR";
IPAddress broker(*, *, *, *);
WiFiClient esp32Client;
PubSubClient client(esp32Client);
//state = 0 {Initial State}
//state =1 {PIR Sensed 1st time RED LED ON}
uint8_t state = 0;
long lastMsg = 0;
char msg[50];
int value = 0;
uint8_t times=0;
void setup() {
Serial.begin(115200);
setup_wifi(); // Connect to network
delay(1000);
client.setServer(broker, 1883); //connect to mosquito broker at default port
delay(2000);
reconnect() ;
}
void loop()
{
readPIR();
}
void setup_wifi() {
pinMode(36, INPUT); //Set pin 36 to input mode.
intialM5();
Serial.print("\nConnecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password); // Connect to network
while (WiFi.status() != WL_CONNECTED) { // Wait for connection
delay(500);
Serial.print(".");
}
Serial.println();
Serial.println("WiFi connected");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
}
void reconnect() {
// Loop until we're reconnected
while (!client.connected()) {
Serial.print("Attempting MQTT connection...");
// Attempt to connect
if (client.connect(ID)) {
client.subscribe(TOPIC);
Serial.println("connected");
Serial.print("Subcribed to: ");
Serial.println(TOPIC);
Serial.println('\n');
} else {
Serial.println(" try again in 5 seconds");
// Wait 5 seconds before retrying
delay(5000);
}
}
}