code is working but data is not receiving at thingspeak
11 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Christopher Stapels
am 18 Mai 2022
What happened when you tried the commands in that example? Can you show the output?
Antworten (1)
Allam Bharath kumar
am 18 Mai 2022
Bearbeitet: Christopher Stapels
am 19 Mai 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 Kommentar
Vinod
am 18 Mai 2022
Bearbeitet: Vinod
am 18 Mai 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.
Communitys
Weitere Antworten in ThingSpeak Community
Siehe auch
Kategorien
Mehr zu Read Data from Channel finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
