Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.10 KB | None | 0 0
  1. #include <ESP8266WiFi.h>
  2. #include <PubSubClient.h>
  3.  
  4. const char* ssid = "";
  5. const char* password = "";
  6.  
  7. //const char* mqtt_server = "test.mosquitto.org";
  8. //const char* mqtt_server = "iot.eclipse.org";
  9. const char* mqtt_server = "broker.mqtt-dashboard.com";
  10.  
  11. WiFiClient espClient;
  12. PubSubClient client(espClient);
  13.  
  14. void setup() {
  15.  
  16. pinMode(4,OUTPUT);
  17. Serial.begin(115200);
  18. setup_wifi();
  19. client.setServer(mqtt_server, 1883);
  20. client.setCallback(callback);
  21. reconnect();
  22. }
  23.  
  24. void setup_wifi(){
  25.  
  26. delay(10);
  27. // We start by connecting to a WiFi network
  28. Serial.println();
  29. Serial.print("Connecting to ");
  30. Serial.println(ssid);
  31.  
  32. WiFi.begin(ssid, password);
  33.  
  34. while (WiFi.status() != WL_CONNECTED) {
  35. delay(500);
  36. Serial.print(".");
  37. }
  38.  
  39. Serial.println("");
  40. Serial.println("WiFi connected");
  41. Serial.println("IP address: ");
  42. Serial.println(WiFi.localIP());
  43. }
  44.  
  45. void callback(char* topic, byte* payload, unsigned int length) {
  46. Serial.print("Message arrived [");
  47. Serial.print(topic);
  48. Serial.print("] ");
  49. for (int i = 0; i < length; i++) {
  50. Serial.print((char)payload[i]);
  51. }
  52.  
  53. if((char)payload[0] == 'o' && (char)payload[1] == 'n') //on
  54. digitalWrite(4,HIGH);
  55. else if((char)payload[0] == 'o' && (char)payload[1] == 'f' && (char)payload[2] == 'f') //off
  56. digitalWrite(4,LOW);
  57.  
  58. Serial.println();
  59. }
  60.  
  61. void reconnect() {
  62. // Loop until we're reconnected
  63. while (!client.connected()) {
  64. Serial.print("Attempting MQTT connection...");
  65. // Attempt to connect
  66. if (client.connect("ESP8266Client")) {
  67. Serial.println("connected");
  68. // Once connected, publish an announcement...
  69. client.publish("ESP8266/connection status", "Connected!");
  70. // ... and resubscribe
  71. client.subscribe("ESP8266/LED status");
  72. } else {
  73. Serial.print("failed, rc=");
  74. Serial.print(client.state());
  75. Serial.println(" try again in 5 seconds");
  76. // Wait 5 seconds before retrying
  77. delay(5000);
  78. }
  79. }
  80. }
  81.  
  82. void loop() {
  83.  
  84. if (!client.connected()) {
  85. reconnect();
  86. }
  87. client.loop();
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement