ESP8266 via arduino - Broker (thingspeak).. Ajuda com código!

Olá makers, estou desenvolvendo um projeto de TCC, que consiste em uma estação meteorológica via arduino + ESP8266 + HTU21D..

Estou no começo do código, tentando desenvolve-lo e travado em um problema..
Gostaria de ajuda de vocês já que meu conhecimento em C é básico.

Ligação:
Uno | ESP8266
RXD | TXD
TXD | RXD (Por divisor de tensão para entrar 3.3v)
3.3 V | Vcc, CH_PD, Reset
GND | GND

Uno | HTU21D
3.3 V | Vcc
GND | GND
DA | A4
CL | A5

CÓDIGO:

#include < cactus_io_HTU21D.h >
#include < stdlib.h >
#include < Wire.h >

//Create an instance of the object
HTU21D htu;

/*-----------------ESP8266 Serial WiFi Module---------------*/
#define SSID "Inflex" // "SSID-WiFiname"
#define PASS "" // "password"
#define IP "184.106.153.149"// thingspeak.com ip
String msg = "GET https://api.thingspeak.com/update?api_key=80LNFZZYEHL8UYWI&fiel..."; //change it with your key...
/*-----------------------------------------------------------*/

//Variables
float temp;
int hum;
String tempC;
int error;

void setup() {
Serial.begin(9600);
Serial.println("AT");
delay(5000);
if (Serial.find("OK")) {
connectWiFi();
}

Serial.println("HTU21D Humidity - Temperature Sensor");
Serial.println("RH\tTemp (C)");

if (!htu.begin()) {
Serial.println("Couldn't find sensor!");
while (1);
}
}

void loop() {
htu.readSensor();
start:
error = 0;
temp = htu.getTemperature_C();
hum = htu.getHumidity();
char buffer[10];
tempC = dtostrf(temp, 4, 1, buffer);

updateTemp();
//Resend if transmission is not completed
if (error==1){
goto start; //go to label "start"
}

delay(1000); //Update every 1 hour

if (isnan(htu.getHumidity()) || isnan(htu.getTemperature_C())) {
Serial.println("HTU21D sensor read failure!");
return;
}

delay(2000);
}

void updateTemp(){
String cmd = "AT+CIPSTART=\"TCP\",\"";
cmd += IP;
cmd += "\",80";
htu.readSensor();
hum;
Serial.print(hum); Serial.print(" %\t");
temp;
Serial.print(temp); Serial.println(" *C\t\t");
Serial.println(cmd);
delay(2000);
if(Serial.find("Error")){
return;
}
cmd = msg ;
cmd += "&field1="; //field 1 for temperature
cmd += tempC;
cmd += "&field2="; //field 2 for humidity
cmd += String(hum);
cmd += "\r\n";
Serial.print("AT+CIPSEND=");
Serial.println(cmd.length());
if(Serial.find(">")){
Serial.print(cmd);
}
else{
Serial.println("AT+CIPCLOSE");
//Resend...
error=1;
}
}

boolean connectWiFi(){
Serial.println("AT+CWMODE=1");
delay(2000);
String cmd="AT+CWJAP=\"";
cmd+=SSID;
cmd+="\",\"";
cmd+=PASS;
cmd+="\"";
Serial.println(cmd);
delay(5000);
if(Serial.find("OK")){
return true;
}else{
return false;
}
}

Em anexo segue a foto do monitor serial, aparentemente parece que está tudo certo, porém o thingspeak não recebe os valores das grandezas.
Segue também a foto da ligação com o divisor de tensão dos 5v que sai do TX do arduino (desconsiderar o DHT11).
E a ligação do HTU21D que vai nas portas analógicas A4 e A5 no arduino.

Exibições: 487

Anexos

As respostas para este tópico estão encerradas.

Respostas a este tópico

Atualizando..

Eu recebi a entrada no thingspeak só que de valor zero, mas foi apenas 1 também.

Anexos

Utilize somente um ESP8266-12E

Link no meu canal tenho varios: ESP8266+Thingspeak

Boa sorte.

Abs.

CK

Parabéns pelo seu trabalho, porém não me ajudou em nada ver o que vc fez!

Vou estar me desligando aqui do lab de garagem, pq o povo aqui só gosta de aprender o que tiver interesse pra pessoa, em ajudar, eu vi que aqui é muito fraquinho.

vou procurar em outros forums brasileiros e gringos

faaalou

Sinceramente não entendi, eu sugeri que você use apenas o ESP8266 para fazer o que pretende, e se quiser tutorial completo de como fazer isso, seja no Thingspeak, ou outros sites de IoT tenho varios que trato de difundir sempre com o proposito de compartilhar conhecimento.

Em todo caso, se não esta satisfeitos com este forum, o melhor a fazer é se desligar.

Boa sorte.

Abs.

CK

Sr SRC.
Aqui ninguém é obrigado a ajudar ninguém.

Os amigos que aqui o fazem, fazem por sem nenhum fim lucrativo, e porque querem,
que a sua experiencia bem sucedida, seja passada para outros seres humanos educados.

Sinta-se totalmente á vontade de "estar " desligando desta comunidade.
Nem precisava avisar.

Devem sim existir muitos foruns bem mais fortes mas ao acessa-los faça com intensão de
aprender, e depois de aprender, ajude.

Rui

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço