Main Content

Results for

Edward
Edward
Last activity on 16 Apr 2024

I have used this code but nothing is showing in my channel any suggesrtions please- the internet connects and the temperature output shows but nothing in my channel
#include <OneWire.h>
#include <DallasTemperature.h>
#include <WiFiNINA.h>
// Data wire is plugged into port 2 on the Arduino
#define ONE_WIRE_BUS A0
// WiFi credentials
const char* ssid = "xxxxxxx";
const char* password = "xxxxxxxxx";
// ThingSpeak settings
const char* server = "api.thingspeak.com";
const char* apiKey = "xxxxxxxxxxxxxxxx";
const int httpPort = 80;
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
// create an instance of the WiFi class
WiFiClient client;
void setup(void)
{
// start serial port
Serial.begin(9600);
Serial.println("Dallas Temperature IC Control Library Demo");
// Connect to WiFi network
Serial.print("Connecting to WiFi...");
while (WiFi.status() != WL_CONNECTED) {
WiFi.begin(ssid, password);
delay(1000);
Serial.print(".");
}
Serial.println();
Serial.println("WiFi connected");
// Start up the library
sensors.begin();
}
void loop(void)
{
// call sensors.requestTemperatures() to issue a global temperature
// request to all devices on the bus
Serial.print("Requesting temperatures...");
sensors.requestTemperatures(); // Send the command to get temperatures
Serial.println("DONE");
Serial.println(",");
Serial.print("Temperature for the device 1 (index 0) is: ");
float tempC = sensors.getTempCByIndex(0);
Serial.println(tempC);
delay(1000); // update sensor reading each one second
// Send data to ThingSpeak
if (client.connect(server, httpPort)) {
String data = "&Field 1=" + String(tempC);
Serial.println("Connecting to ThingSpeak...");
client.println("POST /update HTTP/1.1");
client.println("Host: api.thingspeak.com");
client.println("Connection: close");
client.println("Content-Type: application/x-www-form-urlencoded");
client.println("Content-Length: " + String(data.length()));
client.println();
client.println(data);
client.println();
Serial.println("Data sent to ThingSpeak");
} else {
Serial.println("Error connecting to ThingSpeak");
}
client.stop();
delay(15000); // Send data to ThingSpeak every 15 seconds
}
I'm running the same code as a week ago but now it reports the error: MATLAB code has timed out.
Currently, I am on a test account with Thingspeak but it would be no problem to upgrade to a subscription plan if it provides the required features.
I would like to edit the time scale (currently only around 10h) and export time (currently only around 24h) for the graphs and the export function in the public channel.
How is this possible? It would be nice to have the option to plot 12h, 1d, 1w, 1m etc. in the graphs and also have the respective export function.
I have purchased an 8in1 weather station from Seed (see Link here), added it to TheThingsStack v3 and changed the payload formatter such that I receive following payload:
{
"barometric_pressure": 96920,
"battery": 0,
"humidity": 92,
"light_intensity": 11848,
"rain_gauge": 0,
"temperature": 6.8,
"uv_index": 0.6,
"wind_direction": 60,
"wind_speed": 0
}
I have followed the ThingSpeak manual here, which seems pretty straight forward to me: just add channel ID and Write Api Key.
However, on TheThingsStack, I see following error:
"data": {
"@type": "type.googleapis.com/ttn.lorawan.v3.ErrorDetails",
"namespace": "pkg/applicationserver/io/web",
"name": "request",
"message_format": "request",
"correlation_id": "XXXXprivate",
"code": 14,
"details": [
{
"@type": "type.googleapis.com/google.protobuf.Struct",
"value": {
"body": "error_too_many_requests",
"status_code": 429,
"url": "https://api.thingspeak.com/things_network/v3/update/",
"webhook_id": "loraweatherstation"
}
}
]
},
[...]
"visibility": {
"rights": [
"RIGHT_APPLICATION_TRAFFIC_READ"
]
TheThingSpeak reports entries without the actual data. I think the entries are generated with all get requests.
Dear team,
i have issue regarding not shown values thingspeak
Bonjour,
pour un projet d'école j'ai besoin de faire analyser des données saisies directement dans Appinventor et non pas à partir de capteurs. J'ai cherché un peu partout sur le web mais je n'ai pas trouvé la solution. Quelqu'un peut il m'aider ?
Hi there,
Truncation error happens when an infinite series is ignored except for a small subset of its values. For instance, the exponential function e^x could be written as the infinite series total of 1 + x + x^2/2 + x^3/6 +... + x^n/n! +....
Any finite number of n will result in an approximation of the value of e^x that is inaccurate, but by increasing n, the error can be reduced to the desired level but this increase computation time.
How can I speed up the calculation by determining the dynamic level where error can be reduced to the barest minimum?
The error is different for each input; if the input number is small, the error condition can be reached quickly, say 1e-6; if the input number is large, we need more terms in the polynomial equation, i.e. more iteration; how can I make the threshold dynamic so that I don't have a fixed error tolerance number?
What I want to know is how to make the threshold dynamic so that I can decrease the polynomial's order and lower the number of terms, which will speed up execution time.
Any assistance would be greatly appreciated.
format long e
[exp(log(2)/2), 1+log(2)/2 + (log(2)/2)^2/factorial(2) + (log(2)/2)^3/factorial(3) + (log(2)/2)^4/factorial(4),(exp(log(2)/2) - 1+log(2)/2 + (log(2)/2)^2/factorial(2) + (log(2)/2)^3/factorial(3) + (log(2)/2)^4/factorial(4))]
[exp(-log(2)/2), 1+(-log(2)/2) + (-log(2)/2)^2/factorial(2) + (-log(2)/2)^3/factorial(3) + (-log(2)/2)^4/factorial(4),(exp(log(2)/2) - 1+log(2)/2 + (log(2)/2)^2/factorial(2) + (log(2)/2)^3/factorial(3) + (log(2)/2)^4/factorial(4))]
Peter
Peter
Last activity on 6 Apr 2023

I am using the standard code written by Daniel. The temperature is giving -11.8 and the humidity 150. This is not for all data points. Any help would be appreciated
hi,
I have a web page which i need to enter user and pass in pop up combo box when i enter the site.
also i can enter directly with http://user:pass@x.x.x.x:port this format witour entering user and pass in combo.
i can not manage to get data from thingHttp and mathlab analysis. I always get http 401 error.
How can i can data? is it pıssible with thinkSpeak?
Hello,
I got the following error when I was trying to run the codes below. I'm glad if someone can tell me the reason for getting this error.
Thank you!
Error:
Unable to perform assignment because the size of the left side is 1-by-1 and the size of the right side is
1-by-201.
Error in fminsearch (line 201)
fv(:,1) = funfcn(x,varargin{:});
Error in fminsearchtest (line 47)
[fitparams_out, fval, ~, ~] = fminsearch(fn, fitparams_guess, options);
Code:
options = optimset('Display', 'iter', ...
'TolX', 1e-6, ... %Termination tolerance on x, default is 1e-4
'TolFun', 1e-6, ... %Term. tolerance on function value, default 1e-4
'MaxFunEvals', 1000 );
fitparams_guess=[0 0 0];
Noise = 2;
C0=pi;
C1 = 2;
C2 = 0.8;
x = -10:0.1:10;
y = C0 + C1*x + C2 * x.^2 + Noise*randn(1,length(x));
fn = @(fitparams) calc_residual(fitparams, x,y); %function handle
[fitparams_out, fval, ~, ~] = fminsearch(fn, fitparams_guess, options);
function residual = calc_residual (fitparams, x,y)
for i =1:length(x)
ymod = fitparams(1) + fitparams(2)*x(i) + fitparams(3) * x(i).^2 ;
end
residual = y-ymod;
end
Hello,
I am setting up a home energy monitoring system, all started from a blank sheet in arduino and its really working very well.
I would like to send data to thinkspeak which is not time dependant, i.e. send the X and Y values and format as a bar graph. The reason is, i have 12 channels monitoring energy (Wh) and i have this in an array which i plot on a local LCD and throughout the day the bars grow in height as the usage attributed to that channel grows. How can i do something similar in thing speak which by default applies a time stamp to received data.
Very simply, each channel has an ID (0-11) and a number associated with the accumulative Wh. I have a similar thing in excel for development where my serial port data is saved to a csv which excell imports every minute and updates a bar graph a bit like this;
Ive had a good look (perhaps not good enough!) and i just cant see how this may be acheived with thingspeak without a clumbersome combination of 2 channels (given each channel has 8 fields) and then using a matlab visualisation to pull it all together. Perhaps its not has hard / messy as it sounds? I am paid user so can create extra channels if required.
Thanks,
Stuart
How do i collect data from a website like weather.com and use it in a channel? I need the current weather on a specific location (including storms, hail etc.) but i couldn't find a way to do it.
Hello,
I have a dfrobot microbit environment science extension board labelled as (v3.0)
I have tried to publish data to my thingspeak channel. All is well configurated in thingspeak.
I have read the tutorial and unfortunately I'm not able to publish any data on the channel with the extension board...
I've tried manualy with my firefox browser “https://api.thingspeak.com/update?api_key=xxxxxxxxxxxxxx&field1=0” and it works fine
But in the makecode program it does'nt …
My program looks like this, what is wrong ???
Any help will be much appreciated and by the way sorry for my bad english
%This is the code. I have to introduce a small value, for example, e = 0.01
%and the loop has to stop when de difference in absolue value between a1
%and pi is less than that quantity. But it never stops and i dont know why.
%Hope you can help me. I appreciate it.
function [a1,a2,i,j] = ejercicio06(e)
i=2;
j=2;
p(1) = e+1;
s(1) = e+1;
while p(i-1) > e
a1 = (1./((4.*i+1).*(4.*i+3)));
a1=8*sum(a1);
p(i) = abs(a1-pi);
i = i+1;
end
disp('hola este bucle se ha terminado')
while s(j-1) > e
a2 = (1./(1+j).^2);
a2 = sqrt(6*sum(a2));
s(j) = abs(a2-pi);
j = j+1;
end
end
Hello. I want to send the data that I have collected from the sensors and that is displayed on ThingSpeak to a databse in Firebase. How can I do it? I know I can use the REST API but where should I code the fetch? Thanks.

I can upload an image using postman. But when I try it with my rpi the image never shows. I receive status code 202. Then the current image from postman goes blank. Tells me the post sort of worked... Does anyone have working python3 code that they can share?

N/A
N/A
Last activity on 15 Mar 2023

Last update is Friday March 10th. It appears from this end that the WS is correctly sending data.
If I can get Arduino running again I will try recompiling the code and update the board.
Hello people,
I made a program to read a dataset from JSON and make an API request to Thingspeak (bulk_write).
After the transmission I display the response of the request, which is 202 (compliant data).
My data updates fine on my Thingspeak channel but the longitude and latitude fields do not change.
Do you have any explanation for this problem?
Here is the code:
import json
import requests
import time
apiKey = "xxxxxxxxxxxxxxxx"
channel_ID = "xxxxxxx"
url = "https://api.thingspeak.com/channels/" + channel_ID + "/bulk_update.json" # ThingSpeak server settings
message_buffer = []
message = {}
while True:
f = open("data.json", "r")
jsonContent = f.read()
objJson = json.loads(jsonContent)
message['delta_t'] = 15
message['field1'] = (objJson['GPS']['speed'])
message['field2'] = (objJson['GROVE'][3]['degNord'])
message['field3'] = (objJson['GIROUETTE']['degVent'])
message['latitude'] = str((objJson['GPS']['latitude']))
message['longitude'] = str((objJson['GPS']['longitude']))
message['elevation'] = 100
latitude = (objJson['GPS']['latitude'])
longitude = (objJson['GPS']['longitude'])
#print(latitude)
#print(longitude)
message_buffer.append(message)
bulk_data = json.dumps({'write_api_key':apiKey,'updates':message_buffer})
print(bulk_data)
message_buffer = []
request_headers = {"User-Agent":"mw.doc.bulk-update","Content-Type":"application/json","Content-Length":str(len(bulk_data))}
print(request_headers)
response = requests.post(url,headers=request_headers,data=bulk_data)
print (response) # Response 200 : Validated data / Response 429 : Too many request, please wait
print("_________________________________________")
print()
time.sleep(15)
My JSON file :
{
"GPS": {
"latitude": 48.75607,
"longitude": 2.30202,
"speed": 10.04384
},
"GROVE": [
{
"Compas": {
"x": 2.583,
"y": -4.439,
"z": 0.435
}
},
{
"Gyroscope": {
"x": 2.56433,
"y": -4.45352,
"z": 0.47237
}
},
{
"Acceleration": {
"x": 0.28,
"y": 0.01,
"z": 0.93
}
},
{
"degNord": 20.743
}
],
"GIROUETTE": {
"degVent": 30.46389
}
}