Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Conecta-se a uma rede wifi, conecta-se na cloud da IBM via MQTT e envia dados
- //
- // Daniel Junho - 09/07/2017
- #include <ESP8266WiFi.h>
- #include <PubSubClient.h>
- //__ Informações do WIFI
- const char* ssid = "wifi";
- const char* password = "senha";
- //__ Informações do dispositivo
- #define DEVICE_TYPE "xxx"
- #define DEVICE_ID "xxx"
- //__ Informações da conexão com o servidor
- #define ORG "xxxxxx"
- #define TOKEN "xxxxxxxxxxxxxxxxxxx"
- //__ Variáveis de conexão com o servidor (Não customizaveis)
- char server[] = ORG ".messaging.internetofthings.ibmcloud.com";
- char topic[] = "iot-2/evt/status/fmt/json";
- char authMeth[] = "use-token-auth";
- char token[] = TOKEN;
- char clientId[] = "d:" ORG ":" DEVICE_TYPE ":" DEVICE_ID;
- WiFiClient wifiClient;
- PubSubClient client(server, 1883, NULL, wifiClient);
- //__ Função de setup do arduino
- void setup() {
- //__ Inicializa a serial
- Serial.begin(115200);
- Serial.println();
- Serial.print("Conectando-se na rede "); Serial.print(ssid);
- //__ Conecta-se na rede WIFI
- WiFi.begin(ssid, password);
- while (WiFi.status() != WL_CONNECTED) {
- delay(500);
- Serial.print(".");
- }
- Serial.println("");
- Serial.print("Conectado, endereço de IP: ");
- Serial.println(WiFi.localIP());
- }
- //__ Envia os dados para a cloud
- void enviaDado(String nome_campo, int dado){
- //__ Formata a string que será envia para a cloud (JSON)
- String payload = "{\"d\":{\"" + nome_campo + "\":";
- payload += dado;
- payload += "}}";
- Serial.print("Sending payload: ");
- Serial.println(payload);
- //__ Envia o dado
- if (client.publish(topic, (char*) payload.c_str())) {
- Serial.println("Publish ok");
- } else {
- Serial.println("Publish failed");
- }
- }
- //__ Variável a ser publicada
- int counter = 0;
- //__ Função principal
- void loop() {
- float reading;
- reading = analogRead(A0);
- //__ Verifica se está conectada a cloud para envio dos dados
- if (!!!client.connected()) {
- //__ Caso não esteja conectada, tenta a conexão
- Serial.print("Reconectando-se em ");
- Serial.println(server);
- while (!!!client.connect(clientId, authMeth, token)) {
- Serial.print(".");
- delay(500);
- }
- Serial.println();
- }
- //__ Envia um dado para a cloud
- enviaDado(String("Leitura"), reading);
- //__ Incrementa o contador, mudando o valor a ser enviado para a cloud.
- //__ Faz o envio a cada 10 segundos.
- delay(10000);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement