| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- // This example uses an Adafruit Huzzah ESP8266
- // 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 <ESP8266WiFi.h>
- #include <MQTT.h>
- const char ssid[] = "ssid";
- const char pass[] = "pass";
- WiFiClientSecure 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.
- //
- // MQTT brokers usually use port 8883 for secure connections.
- client.begin("broker.shiftr.io", 8883, 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");
- }
- }
|