メインコンテンツ

結果:

Merlyn
Merlyn
最後のアクティビティ: 2023 年 3 月 2 日

Hi,
I'm trying to communicate with my channel ohowever it looks like I'm missing something as my data doesn't appear in the feeds. Below is my code:
#define SW_VERSION " ThinkSpeak.com" // SW version will appears at innitial LCD Display
#define TINY_GSM_MODEM_SIM900
#include <TinyGsmClient.h>
#define SerialAT Serial
TinyGsm modem(SerialAT);
TinyGsmClient client(modem);
/* ESP12-E & Thinkspeak*/
const char apn[] = "xxxxx";
const char user[] = "";
const char pass[] = "";
const char server[] = "api.thingspeak.com";
const int port = 80;
const char* TS_SERVER = "api.thingspeak.com";
String TS_API_KEY ="xxxxx";
int sent = 0;
/* TIMER */
#include <SimpleTimer.h>
SimpleTimer timer;
/* OLED */
#include <ACROBOTIC_SSD1306.h> // library for OLED: SCL ==> D1; SDA ==> D2
#include <SPI.h>
#include <Wire.h>
/* DHT22*/
#include "DHT.h"
#define DHTPIN D3
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
float hum = 0;
float temp = 0;
/* Soil Moister */
#define soilMoisterPin A0
#define soilMoisterVcc D4 //not used. LM393 VCC connect to 3.3V
int soilMoister = 0;
/* DS18B20 Temperature Sensor */
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 14 // DS18B20 on NodeMCU pin D5 corresponds to GPIO 014 on Arduino
float soilTemp;
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature DS18B20(&oneWire);
void setup()
{
Serial.begin(115200);
delay(10);
Serial.println(".... Starting Setup");
SerialAT.begin(115200);
delay(3000);
// Restart takes quite some time
// To skip it, call init() instead of restart()
Serial.println("Initializing modem...");
modem.init();
pinMode(soilMoisterVcc, OUTPUT);
Serial.begin(115200);
delay(10);
oledStart();
dht.begin();
DS18B20.begin();
timer.setInterval(2000L, getDhtData);
timer.setInterval(7000L, getSoilMoisterData);
timer.setInterval(9000L, getSoilTempData);
timer.setInterval(19000L, sendDataTS);
digitalWrite (soilMoisterVcc, LOW);
}
void loop()
{
displayData();
timer.run(); // Initiates SimpleTimer
}
/***************************************************
* Start OLED
**************************************************/
void oledStart(void)
{
Wire.begin();
oled.init(); // Initialze SSD1306 OLED display
clearOledDisplay();
oled.clearDisplay(); // Clear screen
oled.setTextXY(0,0);
oled.putString(" ");
}
/***************************************************
* Get DHT data
**************************************************/
void getDhtData(void)
{
float tempIni = temp;
float humIni = hum;
temp = dht.readTemperature();
hum = dht.readHumidity();
if (isnan(hum) || isnan(temp)) // Check if any reads failed and exit early (to try again).
{
Serial.println("Failed to read from DHT sensor!");
temp = tempIni;
hum = humIni;
return;
}
}
/***************************************************
* Get Soil Moister Sensor data
**************************************************/
void getSoilMoisterData(void)
{
soilMoister = 0;
digitalWrite (soilMoisterVcc, HIGH);
delay (500);
int N = 3;
for(int i = 0; i < N; i++) // read sensor "N" times and get the average
{
soilMoister += analogRead(soilMoisterPin);
delay(150);
}
digitalWrite (soilMoisterVcc, LOW);
soilMoister = soilMoister/N;
Serial.println(soilMoister);
soilMoister = map(soilMoister, 689, 274, 0, 100);
}
/***************************************************
* Get SoilTemp sensor data
**************************************************/
void getSoilTempData()
{
DS18B20.requestTemperatures();
soilTemp = DS18B20.getTempCByIndex(0);
int newData = ((soilTemp + 0.05) * 10); //fix soilTemp value to 1 decimal place.
soilTemp = (newData / 10.0);
}
/***************************************************
* Display data at Serial Monitora & OLED Display
**************************************************/
void displayData(void)
{
Serial.print(" Temperature: ");
Serial.print(temp);
Serial.print("oC Humidity: ");
Serial.print(hum);
Serial.println("%");
Serial.print("SoilTemp: ");
Serial.print(soilTemp);
Serial.print("oC");
oled.setTextXY(1,0); // Set cursor position, start of line 2
oled.putString("TEMP: " + String(temp) + " oC");
oled.setTextXY(3,0); // Set cursor position, start of line 2
oled.putString("HUM : " + String(hum) + " %");
oled.setTextXY(5,0); // Set cursor position, start of line 2
oled.putString("Tsoil:" + String(soilTemp) + " oC");
oled.setTextXY(7,0); // Set cursor position, start of line 2
oled.putString("Hsoil: " + String(soilMoister) + " %");
}
/***************************************************
* Clear OLED Display
**************************************************/
void clearOledDisplay()
{
oled.setFont(font8x8);
oled.setTextXY(0,0); oled.putString(" ");
oled.setTextXY(1,0); oled.putString(" ");
oled.setTextXY(2,0); oled.putString(" ");
oled.setTextXY(3,0); oled.putString(" ");
oled.setTextXY(4,0); oled.putString(" ");
oled.setTextXY(5,0); oled.putString(" ");
oled.setTextXY(6,0); oled.putString(" ");
oled.setTextXY(7,0); oled.putString(" ");
oled.setTextXY(0,0); oled.putString(" ");
}
/***************************************************
* Sending Data to Thinkspeak Channel
**************************************************/
void sendDataTS(void)
{
if (client.connect(TS_SERVER, 80))
{
String postStr = TS_API_KEY;
postStr += "&field1=";
postStr += String(temp);
postStr += "&field2=";
postStr += String(hum);
postStr += "&field3=";
postStr += String(soilMoister);
postStr += "&field4=";
postStr += String(soilTemp);
postStr += "\r\n\r\n";
client.print("POST /update HTTP/1.1\n");
client.print("Host: api.thingspeak.com\n");
client.print("Connection: close\n");
client.print("X-THINGSPEAKAPIKEY: " + TS_API_KEY + "\n");
client.print("Content-Type: application/x-www-form-urlencoded\n");
client.print("Content-Length: ");
client.print(postStr.length());
client.print("\n\n");
client.print(postStr);
delay(1000);
}
sent++;
client.stop();
}
First I get this on my serial monitor:
After some time:
And after some more time:
With my limited knowledge on the subject I can't figure it out.
Any help would be appreciated.
Thanks.
Riley Dickert
Riley Dickert
最後のアクティビティ: 2023 年 2 月 21 日

Not able to display password by copying to clipboard or by clicking the unhide icon - have tried multiple computers.
Anyone else had this problem with mqtt?
I am sending my sensor readings to thingspeak channel using raspberrry pi board but i dont know how can we send some instruction back to the raspberry pi board to control an LED or Motor or some other things. Can anyone provide some information about this?
Mohamed Tawfik
Mohamed Tawfik
最後のアクティビティ: 2023 年 2 月 19 日

can't connect using the following setting in MQTT explorer
should i modify thiem or it's a must to use MQTTX
please advice
Ray Berkelmans
Ray Berkelmans
最後のアクティビティ: 2023 年 2 月 20 日

I note that there is a limit of 12 TimeControls per user. Is that only for free and Home users, or for Commercial users too? If the latter, that will put a dent in my plans. I basically want to calculate daily averages and send customers an SMS once per day with their summary data.
tessa hermant
tessa hermant
最後のアクティビティ: 2023 年 2 月 17 日

I have this message "You have a React with similar Test Frequency, Action, and Option settings. Delete that React to save this one."
But that's not true. It's another channel, another field that must trigger another matlab analysis...........
Any idea on how to unblock this issue?
Thank you
john muthoni
john muthoni
最後のアクティビティ: 2023 年 2 月 14 日

hi, my tracker using A9G always giving incorrect coordinates 999.00.please help
Rik
Rik
最後のアクティビティ: 2024 年 2 月 7 日

This is the 6th installment of the wish-list and bug report thread.
This topic is the follow on to the first Wish-list for MATLAB Answer sections and second MATLAB Answers Wish-list #2 (and bug reports). The third started out as New design of the forum - grey on white and the fourth and fifth also grew so large they are slow to load and navigate.
Same idea as the previous ones: one wish (or bug report) per answer, so that people can vote their wishes.
What should you post where?
Wishlist threads (#1 #2 #3 #4 #5 #6): bugs and feature requests for Matlab Answers
Frustation threads (#1 #2): frustations about usage and capabilities of Matlab itself
Missing feature threads (#1 #2): features that you whish Matlab would have had
Next Gen threads (#1): features that would break compatibility with previous versions, but would be nice to have
@anyone posting a new thread when the last one gets too large (about 50 answers seems a reasonable limit per thread), please update this list in all last threads. (if you don't have editing privileges, just post a comment asking someone to do the edit)

My learning is progressing well. I borrow heavily on examples given on this site. I need to know the correct commands for coding in Matlab analysis. For a simple example, what is the correct code symbol for multiplication? Yes, I know it is (a)*(b). But, is there a glossary of all such? For another example, I tried to generate a random number in Matlab analysis by writing: mu = 1; sigma = 5; rannum = Random (‘Normal’, mu, sigma)

But when I run this code I get the following error message: .....

“random” requires access to one of the following...

Sim Biology or

Statistics & Machine Learning Toolbox...

So, in summary, does my subscription allow such access and/or how do I learn the syntax Matlab requires for code operations?

Thanks.

In the Matlab analysis option on my Thingspeak channel I chose to experiment with the example in the title regarding humidity average. It works fine but only works once. How can I keep it updating every 5 minutes or so?

Shore
Shore
最後のアクティビティ: 2023 年 2 月 8 日

I am very happy with ThingSpeak. I have a prototype Pico W project that it working well.
I tried 6 other IOT platforms and ThingSpeak was the BEST!
I wrote about my experience here:
david phan
david phan
最後のアクティビティ: 2023 年 2 月 2 日

Hi all,
I am wondering whats the total cost to use MATLAB for algo trading. The transparent part is of coz the price of matlab and the toolboxes. But I was shocked to find out the APIs to connect to Interactive Brokers are not free (costly in fact!). Is there free API to connect to IB? What other hidden costs are there? I saw the X Trader in the Automated Trading with MATLAB video. Is this XTrader software part of MATLAB toolbox? Do we need to pay additional to Trading Technologies (to use X_Trader). Also what data feed is the most cost effecient? Is there any additional hidden cost that I am not aware of?
Thanks!
Ray Berkelmans
Ray Berkelmans
最後のアクティビティ: 2023 年 1 月 31 日

Hi
I used to have the following daily max, min and mean code working. But, this week it seems to work for max and mins but not means. Any idea what's going on?
writeAPIKey = 'xxxxxx';
% Define date range of 1 day
end1 = datetime('now')
start=datetime('today')
% Read Weight data from Field1 for last 24 hrs
[Weight, time] = thingSpeakRead(xxxxxx,'DateRange', [start,end1], 'Fields', [1]);
Wtmax = max(Weight); % Get 24hr Max
Wtmin = min(Weight); % Get 24hr Min
Wtav = mean(Weight); % Get 24hr Av
% display results
display(Wtmax, 'Wt_max'), display(Wtmin, 'Wt_min'), display(Wtav, 'Wtav');
Output:
end1 =
datetime
30-Jan-2023 14:00:35
start =
datetime
30-Jan-2023
Wt_max =
-0.0685
Wt_min =
-0.5190
Wtav =
NaN
Pedro
Pedro
最後のアクティビティ: 2023 年 7 月 18 日

Good morning,
I am trying to receive a long number in thingspeak and convert it to a string. However, when I receive it, it converts it to a number using scientific notation. I have tried changing the format to long g and others and was able to get rid of the scientific notation part.
After doing so, I have used commands such as num2str, mat2str, and compose to represent the number as a string, but I keep getting results that are off. An example is a message i am sending as:
field1=100630000553400000000
using an MQTT desktop client. However, when I receive it and print the result, I get:
0100630000553399992320
The numbers are close but the right one. Is there something I am missing?
Thanks in advance!
Pedro Ch.
Aldara López
Aldara López
最後のアクティビティ: 2023 年 1 月 23 日

I want to import data from a .cvs with the requested format but constantly the same error comes out : "The uploaded file was not imported because it is missing timestamps."
My data is in this format:
created_at,field1,field2,field3
1600064881,50.818,0,0
Could someone help me fix it?
Thank you
Pedro
Pedro
最後のアクティビティ: 2023 年 1 月 25 日

Hi, what would be the best approach to use the gauge widget to display calculated data? I have a channel that displays a value that needs some math applied to it to give a correct value. I have a matlab visualization that converts this value into what I need and plots it. However, i believe a gauge is more appropriate than a plot and it seems the matlab "uigauge" object does not work for thingspeak.
Is there a way for the gauge widget to show my data coming out of the matlab script?
Thanks!
When solving problems over on Cody, I can almost always view all solutions to a problem after submitting a correct solution of my own. Very rarely, however, this is not the case, and I instead get the following message:
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.
You may solve another problem from Community group to unlock all the solutions to this problem.
If this happens, then again, I can almost always rectify this by submitting a (correct) solution to a different problem (I take it that the Community group is the implicit group of all problems on Cody --- is it?). But sometimes that, too, fails.
So my question is, why? What are the criteria that determine when all solutions are, in fact, unlocked?
(There is a related question here, but I feel the posted answer does not answer the question.)
Louis
Louis
最後のアクティビティ: 2023 年 1 月 6 日

Accidentally clicked on the "X" and field 1 chart disappeared. How do I recall the chart ?

mariem turki
mariem turki
最後のアクティビティ: 2023 年 3 月 4 日

Hi,
I'm trying to send data from a LoRa Node to the dragino Lg01-N gateway and then to the thinkspeak platform. Actually, the data arrives to the gateway and i get the following result read from the gateway
but the value does not reach the thingspeak platform.
on the other side i tried to send the data manually from the gateway using the following command
and the data is written successfully at the thingspeak. In this link we set the topic -t as channels/XXXXX/publish. but at the first figure the topic which is sent automatically from the gateway to the thingspeak is channels/XXXXX/publish/APIkey
i think the problem is here. i don't know how to change the form of the topic received by the gateway and sent to the thingspeak...is it possible to modify that? i tried to modify the mqtt_process.sh file, but all my changes do not make anny effect on the received packet from the lora node.
could you help me please to resolve this problem?
thank you in advance
Andrew Clark
Andrew Clark
最後のアクティビティ: 2023 年 2 月 2 日

Hello, I need help with a simple example. I am trying to do a simple bulk update using JSON in Javascript, using this parm, header and body:
$.post("https://api.thingspeak.com/channels/xxxxxxxxx/bulk_update.json" ,{
"Content-Type": "application/json",
"write_api_key" : "xxxxxxxxxxxxxxxx",
"updates": [
{
"created_at": "2022-12-30 10:26:2 -0800",
"field1": 100,
"field2": 100,
"field3": 200,
"field5": 600
},
{
"created_at": "2022-01-12 10:27:2 -0800",
"field2": 100,
"field3": 200,
"field5": 600
}],
function(data){
console.log(data) // log anything returned to the console
}
});
When I run the above (Mac OS, Chrome, Javascript) I receive this error message:
Access to XMLHttpRequest at 'https://api.thingspeak.com/channels/1283582/bulk_update.json' from origin 'https://backpaqlabs.com'
has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
api.thingspeak.com/channels/1283582/bulk_update.json:1
Failed to load resource: net::ERR_FAILED
Is there something wrong with the syntax or JSON payload that can cause this CORS error? I have tried both local command line and from my hosted server. I am starting to see CORS errors with Javascript getJSON calls as well, so wondering if there is something going on at the endpoint. In this example, I have literally taken it from the example in the doc, so I assume it should comply with the API endpoint. Does seem to work OK with same code on Postman and CURL, so I believe syntax is correct. Ideas?
Any help appreciated!