Guest User

Untitled

a guest
Sep 6th, 2018
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.11 KB | None | 0 0
  1. #include <ESP8266WiFi.h>
  2. #include <PubSubClient.h>
  3.  
  4. const char* ssid = "Tenda";
  5. const char* password = "asdf1234";
  6. const char* mqttServer = "m11.cloudmqtt.com";
  7. const int mqttPort = 17735;
  8. const char* mqttUser = "hitcmgji";
  9. const char* mqttPassword = "QtOnRR0io93j";
  10. const char* topics[2] = {"esp/relay1","esp/relay2"};
  11.  
  12. WiFiClient espClient;
  13. PubSubClient client(espClient);
  14.  
  15. void setupRelay(){
  16. for(int i=0;i<sizeof(relay);i++){
  17. pinMode(relay[i],OUTPUT);
  18. digitalWrite(relay[i],HIGH);
  19. }
  20. }
  21.  
  22. void setup() {
  23.  
  24. Serial.begin(115200);
  25. setupRelay();
  26. WiFi.begin(ssid, password);
  27.  
  28. while (WiFi.status() != WL_CONNECTED) {
  29. delay(500);
  30. Serial.println("Connecting to WiFi..");
  31. }
  32. Serial.println("Connected to the WiFi network");
  33.  
  34. client.setServer(mqttServer, mqttPort);
  35. client.setCallback(callback);
  36.  
  37. while (!client.connected()) {
  38. Serial.println("Connecting to MQTT...");
  39.  
  40. if (client.connect("ESP8266Client", mqttUser, mqttPassword )) {
  41.  
  42. Serial.println("connected");
  43.  
  44. } else {
  45.  
  46. Serial.print("failed with state ");
  47. Serial.print(client.state());
  48. delay(2000);
  49.  
  50. }
  51. }
  52.  
  53. for(int i=0;i<sizeof(topics);i++){
  54. client.subscribe(topics[i]);
  55. client.publish(topics[i], "Hello from ESP8266");
  56. }
  57.  
  58. }
  59.  
  60. void callback(char* topic, byte* payload, unsigned int length) {
  61.  
  62. Serial.print("Message arrived in topic: ");
  63. Serial.println(topic);
  64.  
  65. Serial.print("Message:");
  66. for (int i = 0; i < length; i++) {
  67. switch(topic){
  68. case topic[0]:
  69. if((char)payload[i]=="ON"){
  70. pinMode(D1,OUTPUT);
  71. digitalWrite(D1,LOW);
  72. break;
  73. }else if((char)payload[i]=="OFF"){
  74. pinMode(D1,OUTPUT);
  75. digitalWrite(D1,HIGH);
  76. break;
  77. }
  78. case topic[1]:
  79. if((char)payload[i]=="ON"){
  80. pinMode(D2,OUTPUT);
  81. digitalWrite(D2,LOW);
  82. break;
  83. }else if((char)payload[i]=="OFF"){
  84. pinMode(D2,OUTPUT);
  85. digitalWrite(D2,HIGH);
  86. break;
  87. }
  88. }
  89. }
  90.  
  91. Serial.println();
  92. Serial.println("-----------------------");
  93.  
  94. }
  95.  
  96. void loop() {
  97. client.loop();
  98. }
Add Comment
Please, Sign In to add comment