| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- // This example uses an ESP32 Development Board
- // to connect to shiftr.io.
- //
- // You can check on your device after a successful
- // connection here: https://shiftr.io/try.
- //
- // by Joël Gähwiler
- // https://github.com/256dpi/arduino-mqtt
- #include <WiFi.h>
- #include <MQTT.h>
- const char ssid[] = "ssid";
- const char pass[] = "pass";
- WiFiClient net;
- MQTTClient client;
- unsigned long lastMillis = 0;
- void connect() {
- Serial.print("checking wifi...");
- while (WiFi.status() != WL_CONNECTED) {
- Serial.print(".");
- delay(1000);
- }
- Serial.print("\nconnecting...");
- while (!client.connect("arduino", "try", "try")) {
- Serial.print(".");
- delay(1000);
- }
- Serial.println("\nconnected!");
- client.subscribe("/hello");
- // client.unsubscribe("/hello");
- }
- void messageReceived(String &topic, String &payload) {
- Serial.println("incoming: " + topic + " - " + payload);
- }
- void setup() {
- Serial.begin(115200);
- WiFi.begin(ssid, pass);
- // Note: Local domain names (e.g. "Computer.local" on OSX) are not supported by Arduino.
- // You need to set the IP address directly.
- client.begin("broker.shiftr.io", net);
- client.onMessage(messageReceived);
- connect();
- }
- void loop() {
- client.loop();
- delay(10); // <- fixes some issues with WiFi stability
- if (!client.connected()) {
- connect();
- }
- // publish a message roughly every second.
- if (millis() - lastMillis > 1000) {
- lastMillis = millis();
- client.publish("/hello", "world");
- }
- }
|