code is working but data is not receiving at thingspeak

4 visualizzazioni (ultimi 30 giorni)
My code is working properly but i am not recevind the data at thingspeak if i can get any help ?? here is the code
#include <SoftwareSerial.h>
#include <SimpleDHT.h>
#include <Wire.h>
#include "ThingSpeak.h"
#include <LiquidCrystal_I2C.h>
#include <dht11.h>
#define RX 3
#define TX 2
#define dht_apin 11 // Analog Pin sensor is connected to
dht11 dhtObject;
String AP = "Khan"; // AP NAME
String PASS = "Pakistan2"; // AP PASSWORD
String API = "xxxxxxxxx"; // Write API KEY
String HOST = "api.thingspeak.com";
//String HOST = "184.106.153.149";
String PORT = "80";
String field = "field1";
int countTrueCommand;
int countTimeCommand;
boolean found = false;
int valSensor = 1;
int pinDHT11 = 11;
SimpleDHT11 dht11(pinDHT11);
LiquidCrystal_I2C lcd(0x27, 16, 2);
SoftwareSerial esp8266(RX,TX);
void setup() {
Serial.begin(9600);
esp8266.begin(115200);
sendCommand("AT",5,"OK");
sendCommand("AT+CWMODE=1",5,"OK");
sendCommand("AT+CWJAP=\""+ AP +"\",\""+ PASS +"\"",20,"OK");
}
void loop()
{
String getData = "GET /update?api_key="+ API +"&field1="+getTemperatureValue()+"&field2="+getHumidityValue();
sendCommand("AT+CIPMUX=1",5,"OK");
sendCommand("AT+CIPSTART=0,\"TCP\",\""+ HOST +"\","+ PORT,15,"OK");
sendCommand("AT+CIPSEND=0," +String(getData.length()+4),4,">");
esp8266.println(getData);delay(2000);countTrueCommand++;
sendCommand("AT+CIPCLOSE=0",5,"OK");
}
String getTemperatureValue(){
dhtObject.read(dht_apin);
Serial.print(" Temperature(C)= ");
int temp = dhtObject.temperature;
Serial.println(temp);
delay(50);
return String(temp);
}
String getHumidityValue(){
dhtObject.read(dht_apin);
Serial.print(" Humidity in %= ");
int humidity = dhtObject.humidity;
Serial.println(humidity);
delay(50);
return String(humidity);
}
void sendCommand(String command, int maxTime, char readReplay[]) {
Serial.print(countTrueCommand);
Serial.print(". at command => ");
Serial.print(command);
Serial.print(" ");
lcd.begin();
// Turn on the blacklight and print a message.
lcd.backlight();
lcd.print("Tempature ");
lcd.print((String)getTemperatureValue());
lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("Humidity ");
lcd.print((String)getHumidityValue());
lcd.print("%");
delay(1000);
while(countTimeCommand < (maxTime*1))
{
esp8266.println(command);//at+cipsend
if(esp8266.find(readReplay))//ok
{
found = true;
break;
}
countTimeCommand++;
}
if(found == true)
{
Serial.println("OYI");
countTrueCommand++;
countTimeCommand = 0;
}
if(found == false)
{
Serial.println("Fail");
countTrueCommand = 0;
countTimeCommand = 0;
}
found = false;
}
  7 Commenti
Christopher Stapels
Christopher Stapels il 18 Mag 2022
What happened when you tried the commands in that example? Can you show the output?

Accedi per commentare.

Risposte (1)

Allam Bharath kumar
Allam Bharath kumar il 18 Mag 2022
Modificato: Christopher Stapels il 19 Mag 2022
Same problem for me also with python program.
import paho.mqtt.publish as publish
import time
import random
server = "mqtt.thingsepak.com"
port = 1883
channel_id = "xxxxxxxxxxxxxx"
write_api_key = "xxxxxxxxxxx"
topic = "channels/"+channel_id+"/publish/"+write_api_key
mqtt_username = 'xxxxxxxxx'
mqtt_password = 'xxxxxxxxxxxxxx'
mqtt_auth = { 'username': mqtt_username, 'password': mqtt_password }
while True:
h = random.randint(30,100)
t = random.randint(10,50)
data = "field1="+str(t)+"&field2="+str(h)
publish.single(topic, data, qos=0, retain=False, hostname=server,
port=port, client_id=mqtt_username, keepalive=60, will=None, auth=mqtt_auth,
tls=None)
time.sleep(15)
  1 Commento
Vinod
Vinod il 18 Mag 2022
Modificato: Vinod il 18 Mag 2022
Your code needs to be updated. Start with the example here. For starters, your server is incorrect: "mqtt.thingsepak.com" would never have worked.

Accedi per commentare.

Community

Più risposte nel  ThingSpeak Community

Categorie

Scopri di più su Read Data from Channel in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by