Asif Iqbal in MATLAB Answers
Last activity on 11 Jul 2023

Hello Frineds I am very new to this platform and just explore some very usefull features. I did test to send data from LabVIEW to thingspeak and also upload my csv file. what i want is that as my csv file updated on daily basis so i want this updated data should also send to thingspeak. Any guid or help please? Thanks Asif
Pierre de Wet in MATLAB Answers
Last activity on 11 Jul 2023

I'm currently busy with a project in which I use a wearble device that uses an accelerometer to track a worker's motions. I'm using Node Red to develop the system and from there I send the data to a ThingSpeak channel. There is however latency issues between these two platforms. It takes a few seconds for measurements to pop up on the ThingSpeak channel after the captured data has been displayed on Node Red. Additionally, only a quater of the data displayed on Node Red can be accounted for on ThingSpeak. Any adivce would be greatly appreciated.
Regidestyoko in MATLAB Answers
Last activity on 11 Jul 2023

I have a small project in my university. I have created channel and it is collecting data from my sensor with rate of 1 data point/minute. I want my public user to access my data for one day data collection which is around 1440 datapoints. The current setup only allow the public user to get 100 datapoints only. Is it possible for the public user to get more datapoints from my channel? If it is possible, could you please tell me the detail procedure. Thank you
christian in Discussions
Last activity on 6 Jul 2023

Hello! I am working on a project involving the use of CNNs for text classification. I found a very clear example on MathWorks that demonstrates how to transform text using an encoding process and provide it as input to a neural network. One of the initial layers of the network is the word embedding layer, which is responsible for capturing the semantic relationships between words. I'm wondering how this layer can work without directly using the words, but instead working with a numerical representation of them. Thank you very much in advance to anyone who will reply to me. CNN for text classification Are you using ThingSpeak to get your input data? Is there an IoT part of this project? Thank you for your response. I want to clarify that in my project, I am not utilizing ThingSpeak or IoT. Instead, I am working with textual data and the main objective is to classify text strings into different classes. I have referred to the example provided in the link Classify Text Data Using Convolutional Neural Network - MATLAB & Simulink - MathWorks Italia. However, I have a question regarding the role of the wordembedding layer when the input is already represented as numbers due to the encoding process. Since the input is numerical, I am uncertain about how the wordembedding layer contributes to the classification task. Could you help me to understand this? Thank you in advance for your reply ! This forum is intended for IoT and ThingSpeak workflows. If you post your question on MATLAB answers, you will probably get a lot more views and better help. Thank you text classification deep learning convolutional neural network embedding layer
Don in Discussions
Last activity on 5 Jul 2023

I am remotely monitoring solar energy. My monitors shut off at night to conserve battery power, ending data being sent to ThingSpeak, which is fine. I do want to be alerted quickly though during the day when data should be coming in. How can I do this? ReAct doesn't have any way to limit when actions will happen and TimeControl doesn't seem to be able to only perform during certain hours either. I've looked for examples where Matlab analysis might perform a task between certain hours but can't seem to find anything. FWIW, an email would be the preferred method of alert. ThingSpeak React (or similar) needed for NoData, but only during certain hours. MATLAB analysis is the way to go. You can trigger the analysis from a regular time control but start the code with a check on the time. (datetime('now')) If the time is in the range you want, run the check for data. If the time is outside working hours, exit gracefully and nobody gets upset :) There are a few good ways to check for missing data. e.g. There is a last update age API that will give you the age of the most recent post (age=webread(url)). Or you can just read the last n points with thingSpeakRead and look at the timestamp. There is a template to generate email alerts in ThingSpeak in MATLAB analysis, or you can see similar code here. Here is the alerts doc. Here is the specific page on send alert. react time control no data
rock inrulla in Discussions
Last activity on 30 Jun 2023

Good morning, I have been happily using Thingspeak for my Arduino's projects since 2018 and have never had a problem. For one of my projects I switched to Arduino GIGA and OPTA Finder (I imagine it's a very similar hardware). When compiling the Arduino IDE projects, it gives me an error saying that the Thingspeak library is not compatible with the hardware. I ask you if there is on you plan to update the library or if you have any indications to be able to work with Thingspeak also with this new hardware. Thank you very much. Arduino GIGA and OPTA Finder I put in a request to have the library upgraded for GIGA. I was not aware of the OPTA but it looks like pretty neat stuff. Can you describe more about your project and in trade Ill bug the dev team more about the upgrade? :)
Mckenzie Gibson in Discussions
Last activity on 29 Jun 2023

I have carefully followed the instructions to load data into my channel without success. 1 how do I check if I have a wifi connection? 2 the following lines are my thingspeak commands char thingSpeakAddress[] = "api.thingspeak.com"; unsigned long myChannelNumber = 2202392; const char * myWriteAPIKey = "0CRH55Q77JT945NS"; String myStatus = ""; ThingSpeak.begin( client ); ThingSpeak.setField(1, volts2); ThingSpeak.setField(2, adc2); I can seed the data on arduino serial monitor. I am using an ESO8266 connected to a win 10 PC Any help will be much appreciated as I have spent a lot of time trying to solve the problem Cant get data into thingspeak Please consider the ThingSpeak library for Arduino and ESP. In the library code, there is a routine that will inform you that the wifi is connected via the serial monitor. Also, you can measure the wifi strength using most Arduino libraries. I'd look up how to measure RSSI. For your code above, you are not writing the data to ThingSpeak. The setfield command sets the field to use for sending data to ThingSpeak, but does not actually send the data. Have a look at the library examples to see how to send the data. There is also this temperature write example in the ThingSpeak doc, but I think the library examples are cleaner. A BIG THANKS Christopher Stapels. I found I got confused with the letter O and the number 0 in my router details. I now can access the internet from my ESP8266 I have also added "send data" to thingspeak and it works. I am a very happy man until I break my sketch with some "cliver" modes
Ron in MATLAB Answers
Last activity on 29 Jun 2023

I work with many schools in townships with limited to no internet access. This means that these learners are excluded from using such wonderful tools as Thingspeak. Is there a site to assist in setting up such a server as I was only able to access one for Ubuntu 12 and Ubuntu 16 which require software from outdated sites?
Samuel in Discussions
Last activity on 28 Jun 2023

#include <WiFi.h> #include <Wire.h> #include <WireSlave.h> #include "ThingSpeak.h" const char* ssid = ; // your network SSID (name) const char* password = ; // your network password WiFiClient client; unsigned long myChannelNumber = ; // Channel ID: const char* myWriteAPIKey = ; // API kluc #define SDA_PIN 13 #define SCL_PIN 14 #define I2C_SLAVE_ADDR 0x04 int hodnota; int MenoVahy; // Timer variables unsigned long lastTime = 0; unsigned long timerDelay = 30000; void receiveEvent(int howMany); void setup() { Serial.begin(115200); //Initialize serial WiFi.mode(WIFI_STA); ThingSpeak.begin(client); // Initialize ThingSpeak bool success = WireSlave.begin(SDA_PIN, SCL_PIN, I2C_SLAVE_ADDR); if (!success) { Serial.println("I2C slave init failed"); while (1) delay(30000); } WireSlave.onReceive(receiveEvent); } void loop() { if ((millis() - lastTime) > timerDelay) { if (WiFi.status() != WL_CONNECTED) { Serial.print("Pripájam sa k sieti..."); while (WiFi.status() != WL_CONNECTED) { WiFi.begin(ssid, password); delay(5000); } Serial.println("\nPripojené."); } sendDataToThingSpeak(); lastTime = millis(); } // the slave response time is directly related to how often // this update() method is called, so avoid using long delays // inside loop(), and be careful with time-consuming tasks WireSlave.update(); if (MenoVahy == 2) { Serial.println(hodnota); // print the integer } // let I2C and other ESP32 peripherals interrupts work delay(1); } void receiveEvent(int howMany) { while (1 < WireSlave.available()) // loop through all but the last byte { MenoVahy = WireSlave.read(); // receive byte as a character } hodnota = WireSlave.read(); // receive byte as an integer } void sendDataToThingSpeak() { // Nastavte polia s hodnotami ThingSpeak.setField(1, 10); ThingSpeak.setField(2, 20); ThingSpeak.setField(3, 30); ThingSpeak.setField(4, 40); ThingSpeak.setField(5, 50); ThingSpeak.setField(6, 60); ThingSpeak.setField(7, 70); ThingSpeak.setField(8, 80); int x = ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey); if (x == 200) { Serial.println("Úspešne aktualizovaný kanál."); } else { Serial.println("Problém s aktualizáciou kanála. HTTP chybový kód: " + String(x)); } } I2C problem , i2c clock choice is invalid, please check flag and frequency If the title is intended to be your question, I would say this is a hardware issue, definitely not anything with ThingSpeak. I would look on a forum for the hardware you are using. If you have trouble with ThingSpeak after that, please feel free to post here again with your issue. Be sure to describe the problem (what you see, what you have tried) and the hardware when you post.
HHH in Discussions
Last activity on 28 Jun 2023

When I run my matlab code, I got this error I have guaranteed that my header size (info.raw.sizeof_hdr) is 348 but when I run niftiwrite(V, filepath, info), I also got assertion failed : Error using assert Assertion failed. Error in niftiwrite (line 104) assert(headerBytes == 348||headerBytes == 540); Error in processing_final (line 110) niftiwrite(V{1},strcat(Folderpath,Folder(num,1).name,'\RoiVolume\RCA_revised.nii'),info{1}); How can I fix this problem ? assertion fail : assert headerbytes == 348 || 540 I would consider posting this question in MATLAB Answers, I think you will get more appropriate help. This forum is about IoT workflows and ThingSpeak.
Joe in Discussions
Last activity on 21 Jun 2023

using mqtt3.thingspeak.com, everything intially works well. but after a period of inactivity, it appears the connection goes down. This is observed on both the publisher and subscriber. For example: Traceback (most recent call last): File "microdot_asyncio.py", line 368, in dispatch_request File "microdot_asyncio.py", line 432, in _invoke_handler File "main.py", line 39, in toggle_led File "umqtt/simple.py", line 134, in publish OSError: [Errno 128] ENOTCONN Is this expected? Connection Timeout on channel? I would not expect that if your Wi-Fi connection is strong and constant. In our example code, we may not be sensitive to that effect, however. In this MQTT Arduino example, if the connection is lost a new one is recreated. I don’t remember the reconnection happening consistently when we tested that code, but I’m not sure the time frame that you are seeing the reconnection required. How long in general do you wait before you see this issue? Appears to be around a minute or so. Was hoping that setting the keepalive parameter in the MQTT client would clear things up, but no luck: Traceback (most recent call last): File "microdot_asyncio.py", line 368, in dispatch_request File "microdot_asyncio.py", line 432, in _invoke_handler File "main.py", line 40, in toggle_led File "umqtt/simple.py", line 134, in publish OSError: [Errno 104] ECONNRESET I just ran a test with mqttx conencted to ThingSpeak, and I did not get disconnected and my subscriptions ran every time at one minute, four minutes and five minutes. Here are the publish results, with no disconnects (and no auto refresh of the conenction) Keep alive appears to be set at 60 for this conenction. I too do not see the issue using MQTTX. Seems to be something with micropython's umqtt I'm not doing correctly. Will look into it. Thanks.
Mantas Dabrovolskas in MATLAB Answers
Last activity on 21 Jun 2023

I am making a simple temperature graph with Thingspeak. I want to use my cities publicly available meteorology API - https://api.meteo.lt/v1/stations/vilniaus-ams/observations/2023-06-21 How would I read the temperature data and put it onto graph (merge it with inside temperature)? Here is how I do it with my inside temperature sensor (I used standard Matlab example and edited it - added three hours to fix my time zone): [dustData,Timestamps]=thingSpeakRead(XXXXXXX,'Fields',1,'NumPoints',100); plot(Timestamps+hours(3),dustData,'red'); ylabel('Degrees'); title('Temperature'); grid on;
Mrinalini Pangaonkar in Discussions
Last activity on 21 Jun 2023

Hello all.... I have used MATLAB code to convert .bmp file to hex format. This converted hex file shows zero for all values. Why such result?What is the posibility? Please guide... bmp to hex conversion of image Are you using the MATLAB interface in ThingSpeak ?
Hans Scharler in Blogs
Last activity on 14 Jun 2023

If you want to upgrade your ThingSpeak capabilities, have a look at the ThingSpeak repository of template codes that open in MATLAB Online. ThingSpeak has MATLAB built in to make it easy to analyze and visualize your data, but the text window for MATLAB analysis and MATLAB visualizations can be tri...
Arthur SOGHOYAN in Discussions
Last activity on 13 Jun 2023

Hi, I am using ThingSpeak with Raspberry Pi Pico W, by using python langage. I am sending some pressure data from the raspberry with this method : request = urequests.post('http://api.thingspeak.com/update?api_key=' + THINGSPEAK_WRITE_API_KEY, json=dht_readings, headers=HTTP_HEADERS) And it works pretty good, i have fields with the new data every 15sec. But now i am trying send a CLEAR request by using the following method : url = 'http://api.thingspeak.com/channels/{}/fields/{}.json?api_key={}&days={}'.format(CHANNEL_ID, FIELD_NUMBER , THINGSPEAK_WRITE_API_KEY, NUM_DAYS ) clear_request = urequests.delete(url) Nothing to be done. I also tried to clean or delete directly all info in the channel and not only the fields' data by this method : delete_url = 'https://api.thingspeak.com/channels/{}/feeds?api_key={}'.format(CHANNEL_ID,THINGSPEAK_WRITE_API_KEY) clear_request = urequests.delete(delete_url) Still not working. I tired several ways, clearing the channel, deleting the channel, sending some empty update... none of them works. Clear Channel is working only from the website when clicking on the button, i would like to do it with a request. So to make a little summary of what i am looking for : I want to automatically send a clear request from my microcontroller to thingspeak channel 1 each X times. Is there any way to make it possible ? Thank you for your answer. Sincerly Arthur How to clean data of a channel by sending a request on python ? Have a look at the clear chanel page, I think you have the syntax incorrect. Be sure to remember that modifying channel operations require the user API key and not the channel API key. EDIT updataed to clear channel (@Arthur SOGHOYAN thanks for posting the right format): Thank you, I missed the information about the Key, that's where the problem came from, i was effectively using Channel API Key. And the right syntaxt of cleaning the channel is this one : delete_url = f'https://api.thingspeak.com/channels/{CHANNEL_ID}/feeds?api_key={USER_API_KEY}' request = urequests.delete(delete_url) With f strings or .format It seems that you are trying to send a clear request to ThingSpeak to remove data from a channel using a microcontroller. To achieve the functionality you are looking for, you can consider an alternative approach. Instead of trying to clear the channel directly from the microcontroller, you can use a workaround by updating the channel with empty or null values for the fields. Here's an example: import urequests # Clear all fields in the channel by sending empty/null values clear_data = {"field1": "", "field2": "", "field3": ""} # Update with the relevant field names url = 'http://api.thingspeak.com/update?api_key=' + THINGSPEAK_WRITE_API_KEY response = urequests.post(url, json=clear_data) if response.status_code == 200: print("Channel cleared successfully!") else: print("Failed to clear the channel.") In this approach, you update each field in the channel with empty or null values using the urequests.post method. This effectively clears the field data in the channel. clear delete
Ingolf Stumpp in Discussions
Last activity on 12 Jun 2023

Wie füge ich einen Zeilenumbruch mit ThingSpeak.setStatus(Text mit Zeilenumbruch)ein? 0D 0A funktioniert nicht. Zeilenumbruch im ThingSpeak Status How to insert a line break with ThingSpeak.setStatus(text with line break)? Can you describe why you want a line break? There may be other better ways to display text data on your channel if that is what youa re trying for. Der Zeilenumbruch wird benötigt um die Adressen im Channel Status vernünfig formatiert darzustellen. Here is code in a MATLAB visualization where I read the status and plot it in a table: url='https://api.thingspeak.com/channels/592680/status.json?results=8'; out=webread(url); myTab=struct2table(out.feeds); disp(myTab.(3)); Im not sure its possible to do what you want in the status window widget.
Muhammad in MATLAB Answers
Last activity on 8 Jun 2023

esp8266 keeps displaying 0 even though the field is 1, and it's not writing to it. it was working fine for months. and today out of the blue it's not working. checked the esp and it's working fine. tried writing and reading from the channel using an app and it's working fine. what could be the problem? void loop() { int A = ThingSpeak.readLongField(ChannelNumber, FieldNumber1, ReadAPIKey); Serial.println(A); if (A == 1 && !relayTriggered) { // only trigger the relay if it hasn't been triggered before digitalWrite(relay, LOW); delay(200); digitalWrite(relay, HIGH); ThingSpeak.writeField(ChannelNumber, FieldNumber1, 1, WriteAPIKey); // Write 0 back to FieldNumber1 using ThingSpeak API relayTriggered = true; // set the flag to true after the relay has been triggered } else if (A == 0) { relayTriggered = false; // reset the flag when the field value changes to 0 } ThingSpeak.writeField(ChannelNumber, FieldNumber1, 1, WriteAPIKey); }
Naveen Kumar in Discussions
Last activity on 7 Jun 2023

How can I display a string value using thingspeak visualization ? for example name, gender, bloodgroup,etc. Display string value in Thingspeak ? I suggest you use figure and text. You can change the font size or the figure window size to get the desired effect. string value in thingspeak
Carsten in Discussions
Last activity on 6 Jun 2023

Hi all, I am so far on a free account. I have setup 1 channel. I am sending 3 values from a bitShake SmartMeterReader every 20 seconds to this channel. When trying to send additional data from my solar inverter every 5min! and calculate some data coming from my bitShake (e.g. once per hour) and send it back to the channel I receive the following error: Requests are too frequent. For further information, see Limitations in the documentation. Now I understand that my messages (write orperations) to my channel are limited to 3 Mio / year or 8200/day. With my current setup I am at little more than 4K messages per year and since I just recently started my account I have still 2.840.531 messages left. How come I get that error even if I switch even if my message limit is far from reached? Thanks in advance for your time! Much appreciated! Requests are too frequent. For further information, see Limitations in the documentation. Can you show a sample of the code where you are writing to ThingSpeak? You would not get the 429 error (requests too frequent) from overuse of messages, so I would guess that you may be sending messages faster than you think somehow. Hi, thank you for your response. The first code basically imitates the 2.8.0 (Einspeisung) of my solar power. I receive the value every 30 seconds. If it is negative I calculate the watt seconds (basically assume the value was constant fopr the last 30 seconds). After that I transform it into kWh and write it back to the channel once per hour via TimeControl. % Definieren Sie den gewünschten Zeitraum startDate = datetime('today'); % Startdatum endDate = datetime('now'); % Aktuelles Datum % Daten vom Stromverbrauch im gewünschten Zeitraum abrufen consumptionTotal = thingSpeakRead(stromzaehlerChannelID, 'ReadKey', readAPIKey, 'Fields', 2, 'DateRange', [startDate, endDate]); %disp(size(consumptionTotal)); % Rufen Sie die Funktion zur Berechnung des Energieverbrauchs auf energyConsumption = calculateEnergyConsumption(consumptionTotal); % Zeigen Sie das Ergebnis an disp(energyConsumption); thingSpeakWrite(writeChannelID,energyConsumption,'WriteKey',writeAPIKey, 'Fields', 6); function energyConsumption = calculateEnergyConsumption(data) timeInterval = 30; % Zeitintervall in Sekunden % Initialisierung der Summe totalEnergy = 0; % Durchlaufen der Datenpunkte for i = 1:length(data) %disp(['data:',data(i)]); if data(i) < 0 % Überprüfung auf Negativität energy = data(i) * timeInterval; % Berechnung der Energie in Wattsekunden totalEnergy = totalEnergy + energy; % Summierung der Energie %disp(totalEnergy); else %disp(int2str(data(i))); end end energyConsumption = totalEnergy / 7200000; % Umrechnung in Kilowattstunden end The second code is simply receiving data from my Solax Inverter. Also via TimeControl every 10 minutes api_url = 'https://www.solaxcloud.com/proxyApp/proxy/api/getRealtimeInfo.do?tokenId=XXXXXXXXXXXXXX&sn=XXXXXXXXXX'; api_call = webread(api_url) writeChID = 1234567; writeAPIKey = 'XXXXXXXXXXX'; res = struct(api_call.result) acpower = res.acpower yieldtoday = res.yieldtoday getData = thingSpeakWrite(writeChID, [acpower,yieldtoday],'Fields',[4,5],'writeKey',writeAPIKey); *sorry for the DE comments Thats a good start, but the code you have shown has no delay or timing information in it, so I am unable to estimate how often the writes are happening. You do mention that you are writing back to the same channel, that may possibly be a source of overwriting. I suggest using a seperate channel for the derived information. Can you show how you determine when (or how often) to write to thingspeak? Hi @Christopher Stapels, as mentioned I am using the "TimeControl" function ("Every 10 Min" & "Every 1 hour(s)). I already played aroundn with these settings but no improvement. I am new to MATLAB so I was under the impression that this is some kind of scheduler to run the script and it is being written to the channel once per script run? I would encourage you to use more descriptive names for your TimeControls. It is clear you are running the TimeControl every 10 minutes, but I think the code you wrote may be writing to a ThngSpeak channel more than once very time it is run. That could lead to the error you are seeing. Perhaps you could share the full text of the code that you selected to be run by the TimeControl? (feel free to redact api keys and channel id's) That is the full code...First one runs every hour, second one every 10 minutes.... Will name more descriptive though :-) First script only misses the channel definitions % ThingSpeak Channel-ID für den Stromverbrauch stromzaehlerChannelID = 1234567; % Ersetzen Sie dies mit Ihrer tatsächlichen Channel-ID für den Stromverbrauch % ThingSpeak Authentifizierungsschlüssel readAPIKey = 'XXXXXXXXXX'; % Ersetzen Sie dies mit Ihrem tatsächlichen Lese-API-Schlüssel writeAPIKey = 'XXXXXXXXX'; writeChannelID = 123456789; Here is my usage so far.. So both scripts have writes to channel in them. One runs every hour. When it runs, the 10 minute code is also run. Our servers are very fast, so they are running both scripts within 15 seconds, thus you are writing to the same channel twice in under 15 seconds. This is not allowed with a free license. Thus the "requests are too frequent" error message. Things you can do to fix it: Change the second time (60 minutes) to a prime number. Use two different channels to write to (or more ) Change the run time to "fuzzy" Which will work most of the time but may still randomly overlap and cause the error occasionally. other, more complicated fixes @Christopher Stapels Thanks a lot. I have now changed (combination of 1 & 3). Now when you say it it makes total sense that it is highly possible that the three write operations will conflict each other when only one write operation is allowed every 15 seconds. Will observe it not and see if it improved. Thanks again! limitations free messages
Gulzar Singh in MATLAB Answers
Last activity on 6 Jun 2023

I want to use MQTT broker service of Thingspeak . I have following queries: 1. After creating an account and channel, there are two APIs of type api.thingspeak for read and write. Are these APIs for http (REST) ? 2. In some tutorials, I found that mqtt.thingspeak or mqtt3.thigspeak should be used. 3. I tried mqtt.thingspeak, after sending a CONNECT packet to this, immediately closed response is sent by esp8266. 4. May the message for topic be sent inside CONNECT packet and will that message published ?, if yes, to which channel ? 5. Does each channel has separate user name and password to use in MQTT CONNECT, PUBLISH and SUBSCRIBE packet ? 6. Before sending, PUBLISH or SUBSCRIBE packet, is it required to send CONNECT packet ? if yes, then, the close response must not be sent immediately ? In what condition connection is closed immediately ?
Ethan Woodvine in Discussions
Last activity on 5 Jun 2023

Hello! Im trying to split my Data into 6 different values but the system wont work I thought this should work, but im not sure how my data is being sent as, its being sent as a a table, but thats about it. Anyone have any idea what ive done wrong? Error in data sorting Have a look at the documentation for the table command. You can use it to create tables of your variables. Readtable is useful if you are reading in from a file. You might also consider using MATLAB online to debug your MATLAB code, you can use it to spy on variables and get other debigging help. Then you can copy the code back to ThingSpeak. thingspeakhwlp
Ruben Capuli in MATLAB Answers
Last activity on 31 May 2023

Can I use my academic license in matlab to have academic license in thingsspeak or do I have to purchase the license for thingsspeak seperately?
Ana Maria Dragulinescu in MATLAB Answers
Last activity on 30 May 2023

Hello everyone, Reading the forums some time ago and finding out that the Thingspeak restriction of 15 s update time of the channel can be leveraged by using a local Thingspeak server, I decided to proceed with the installation of Thingserver using the resources on git. I have successfully installed the server, but I don't know which file(s) should I modify to obtain a lower update time for my channels. Unfortunately, I couldn't find anywhere info about it.
Alaa in MATLAB Answers
Last activity on 30 May 2023

I'm working on a project that contains several distributed nodes. I assigned one channel for each node. my question is " how can I visualize the data coming from different channels on one page?

About ThingSpeak

The community for students, researchers, and engineers looking to use MATLAB, Simulink, and ThingSpeak for Internet of Things applications. You can find the latest ThingSpeak news, tutorials to jump-start your next IoT project, and a forum to engage in a discussion on your latest cloud-based project. You can see answers to problems other users have solved and share how you solved a problem.