Advertisement
domdealm

código do arduino

Feb 20th, 2018
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.48 KB | None | 0 0
  1. // Conecta-se a uma rede wifi, conecta-se na cloud da IBM via MQTT e envia dados
  2. //
  3. // Daniel Junho - 09/07/2017
  4.  
  5. #include <ESP8266WiFi.h>
  6. #include <PubSubClient.h>
  7.  
  8. //__ Informações do WIFI
  9. const char* ssid = "wifi";
  10. const char* password = "senha";
  11.  
  12. //__ Informações do dispositivo
  13. #define DEVICE_TYPE "xxx"
  14. #define DEVICE_ID "xxx"
  15.  
  16. //__ Informações da conexão com o servidor
  17. #define ORG "xxxxxx"
  18. #define TOKEN "xxxxxxxxxxxxxxxxxxx"
  19.  
  20. //__ Variáveis de conexão com o servidor (Não customizaveis)
  21. char server[] = ORG ".messaging.internetofthings.ibmcloud.com";
  22. char topic[] = "iot-2/evt/status/fmt/json";
  23. char authMeth[] = "use-token-auth";
  24. char token[] = TOKEN;
  25. char clientId[] = "d:" ORG ":" DEVICE_TYPE ":" DEVICE_ID;
  26.  
  27. WiFiClient wifiClient;
  28. PubSubClient client(server, 1883, NULL, wifiClient);
  29.  
  30. //__ Função de setup do arduino
  31. void setup() {
  32. //__ Inicializa a serial
  33. Serial.begin(115200);
  34. Serial.println();
  35. Serial.print("Conectando-se na rede "); Serial.print(ssid);
  36.  
  37. //__ Conecta-se na rede WIFI
  38. WiFi.begin(ssid, password);
  39. while (WiFi.status() != WL_CONNECTED) {
  40. delay(500);
  41. Serial.print(".");
  42. }
  43. Serial.println("");
  44.  
  45. Serial.print("Conectado, endereço de IP: ");
  46. Serial.println(WiFi.localIP());
  47. }
  48.  
  49. //__ Envia os dados para a cloud
  50. void enviaDado(String nome_campo, int dado){
  51. //__ Formata a string que será envia para a cloud (JSON)
  52. String payload = "{\"d\":{\"" + nome_campo + "\":";
  53. payload += dado;
  54. payload += "}}";
  55.  
  56. Serial.print("Sending payload: ");
  57. Serial.println(payload);
  58.  
  59. //__ Envia o dado
  60. if (client.publish(topic, (char*) payload.c_str())) {
  61. Serial.println("Publish ok");
  62. } else {
  63. Serial.println("Publish failed");
  64. }
  65. }
  66.  
  67. //__ Variável a ser publicada
  68. int counter = 0;
  69.  
  70. //__ Função principal
  71. void loop() {
  72. float reading;
  73. reading = analogRead(A0);
  74.  
  75. //__ Verifica se está conectada a cloud para envio dos dados
  76. if (!!!client.connected()) {
  77. //__ Caso não esteja conectada, tenta a conexão
  78. Serial.print("Reconectando-se em ");
  79. Serial.println(server);
  80. while (!!!client.connect(clientId, authMeth, token)) {
  81. Serial.print(".");
  82. delay(500);
  83. }
  84. Serial.println();
  85. }
  86.  
  87. //__ Envia um dado para a cloud
  88. enviaDado(String("Leitura"), reading);
  89.  
  90. //__ Incrementa o contador, mudando o valor a ser enviado para a cloud.
  91.  
  92.  
  93. //__ Faz o envio a cada 10 segundos.
  94. delay(10000);
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement