Resultados de
Hello, I am currently working on a simple android app for a smart irrigation system. Basically the app lets the user enter the name of the plant and then lists all the plants of the garden. Then, I have divided plants into three categories depending on their watering needs and I have created three int values for the amount of plants per group. Essentially I want to send these three values to a thingspeak channel I created, to 3 separated fields. I am not familiar at all with server programming in Java so I would really appreciate any kind of help in how to do this.
Can not pick just a single field for "No data check", just the whole channel. Is there any way to change?
I have a datasheet of an induction motor (as figure below). I want to simulate it on matlab/simulink, but I don't know it's parameters (Lls, Llr, Lm, Rr, Rs).
I tried to search about open circuit test and blocked rotor test to determine these parameters, but some of information doesn't appear on datasheet and I don't have the real motor to test on it (datasheet is only think I have).
Could someone help me with this?
I have a personal account which I use for my home projects, along with a paid license which I use for monitoring a set of sensors in a remote building.
All my sensors went offline at about the same time, but I am only just noticing this now, because I have been focused on why the remote location went offline, thinking that it was an issue with the internet or WiFi at that location, rather than a problem with posting the data!
All my monitoring setups are using electricImp devices to post data to ThinkSpeak and have been in some cases, running for several years without any issues. All the devices are now returning a 400 - invalid constant string error.
See logs below.
|2022-04-19T13:30:07.017 +00:00 [Agent] https://api.thingspeak.com/update?api_key=XXXXXXX&status=OK&created_at=2022-04-19 13:30:01 UTC&field4=0.00&field3=0.00&field6=0.00&field5=0.00&field2=14.65&field1=2022-04-19%2013%3A30%3A01%20UTC&status=OK&field8=0.6129&field7=0.00&created_at=2022-04-19%2013%3A30%3A01%20UTC 2022-04-19T13:30:07.086 +00:00 [Agent] PUSH: 400 - invalid constant string
I modified a device to not send the date in field 1 on one device because I thought that might be causing the problem, but it is not clear to me what changed. I have been sending data like this for a long time.
Any ideas appreciated.
Thanks
Hi... I managed to work out both the pub & sub parts of MQTT with my esp8266. I did the example from over here ... and all works fine. The publishing happens every 15secs... and it received the published values back almost immediately. see Img1.png
Now using flutter from my mobile app I did the same thing... and I was able to pub & sub... and also checked the Field1 values in my Thingspeak account that i am writing to and reading as an MQTTclient. It all works correctly.
HOWEVER... heres the problem================ When I only publish from the mobile a value for Field1. And subscribing at the same time from my esp8266 to receive the updated value of Field1... something weird happens... My Field1 in the channel, in my Thingspeak account has been updated correctly... but my esp8266 doesnt receive the updated value. INSTEAD, at the same time I can see in the serial monitor logs, the esp8266 reconnects back to our MQTT server!! No update was received. It felt as if everytime I published a value from my mobile, it made my esp8266 disconnect and hence it needed to reconnect to the MQTT server. i checked this 10 times and it happened without a coincidence. I ran the same code on the esp8266, except that I never let it publish every 15secs. So all it did was stay subscribed and await an update from my mobile app. please see img2.png
and this is the flutters connection code
client.logging(on: false); client.setProtocolV311(); client.keepAlivePeriod = 10; client.onDisconnected = onDisconnected; //....callbacks client.onConnected = onConnected; //....callbacks client.pongCallback = pong; //....callbacks
final connMess = MqttConnectMessage() .withClientIdentifier('xxxxxxxxxxxxxxxx') .withWillTopic('willtopic') // If you set this you must set a will message .withWillMessage('My Will message') .startClean() // Non persistent session for testing .authenticateAs('xxxxxxxxxxxxxxxx', 'aaaaaaaaaaaa') .withWillQos(MqttQos.atMostOnce); // means = 0 print('client connecting....');
Any help will be appreciated. Just wanted to iterate that individually they both work fine. Just that i need the updated value... and i dont receive it. Any ideas?? thanks, YOhan
Hi! As the title says, I want to group the data readings from multiple fields and channels into a single formatted tweet. Kinda of like a status report tweet for a few different sensors I have running. Is this possible? My current understanding of the MATLAB analysis/react is that it can only do 1 field at most. Any help would be greatly appreciated by this stresses out college senior :)
I have a Thingtweet: "Measurements %%datetime%% Comment" The tweet will send the time as say: 5:23pm I want it in 24hr format = 17:23 I have scoured the site and I cant find any way of doing this in a tweet. Also that would be local time, is it possible to use UTC ?
20 minutes makes a difference
I struggled to learn MATLAB at first. A colleague at my university gave me about 20 minutes of his time to show me some basic features, how to reference the documentation, and how to debug code. That was enough for me to start using MATLAB independently. After a few semesters of developing analyses and visualizations, I started answering questions in the forum when I had time. I became addicted to volunteering and learning from the breadth of analytical problems the forum exposed me to.
Have you ever solved a problem using a MathWorks product?
If your answer is YES, you may be the right person to help someone looking for guidance to solve a similar problem. Some answers in the MATLAB Central community forum maintain 1000s of views per month and some files on the File Exchange have 1000s of downloads. Volunteering a moment of your time to answer a question or to share content to the File Exchange may benefit countless individuals in the near and distant future and you will likely learn a lot by contributing too!
- 3616 questions were asked last month in the forum and in that time, 747 volunteers answered at least one question!
- 62% of those volunteers were first-time contributors!
- 335 volunteer contributors shared content in the File Exchange last month!
- 1: the number of contributions it takes to make a difference.
This week is National Volunteer Week in the USA (April 17-23). Challenge yourself and your colleagues by committing to help a stranger break barriers in their path to learning MATLAB.
How to volunteer and contribute to the MATLAB Central Community
Here are two easy ways to accept the volunteer challenge.
Contribute to the MATLAB Answers Forum
- Go to the MATLAB Answers repository. This page shows all unanswered questions starting with the most recent question. Use the filters on the left to see answered questions or questions belonging to a specific category. Alternatively, search for questions using keywords in the search field or visit the landing page.
- Open a few questions that interest you based on the question titles and tags.
- Decide how you'd like to contribute. Sometimes a question needs refinement or requires a bit of work to address. Decide whether to leave a comment that guides the user in the right direction, answer the question, or skip to the next question. The decision tree below is how some experienced contributors approach these decisions.
Pro tips
- Newer questions have more traffic and are often answered within an hour or minutes.
- Multiple answers often add valuable alternative perspectives and solutions.
- Sometimes answers aren't accepted or the asker disappears. Be not discouraged. Your answer holds much value.
Contribute to the File Exchange
- Choose a function, script, demo, or toolbox you created that may be helpful to the community.
- Go to the MathWorks File Exchange. Search for submissions that are similar to your idea and decide whether your idea adds value.
- Prepare your code for open-source sharing. The best submissions include brief documentation that explains the purpose of the code, inputs, expected outputs and limitations.
- Use the "Publish your code" button from the link above. This will guide you through the submission process.
Make a difference
No matter what level you are at as a MATLAB developer, you have skills that others around you could benefit from learning. Take the challenge and become a giant.
Let us know about your experience with MATLAB Central volunteers or your experience becoming a MATLAB Central volunteer in the comments below!
Hello guys, I'm a new Thingspeak user and I don't know how can I filter a numbers from a data string using the ThingHTTP application or MPLAB Analysis. The data string it's come from a power meter and the structure is like below: {"data":{"values":[[249.000,0.370, 30.000,0.532,0.001],[246.400,0.290, 6.000,0.088,0.000][240.900,0.640, 77.000,0.526,0.000]],"localTime":"2022/3/25 1:30:38","gmtTime":"2022/3/24 23:30:38"},"successful":true,"message":null}.
So, I need to extract only the numbers that represents the instant power on each phase (bolded numbers). When I tried to use the MPLAB Analysis - get data from a webpage, but the filter it return "2022" number.
I also try to use the ThingHTTP, I managed to display the entire data string (like above), but I can't filter them. If I select the numbers that interest me and right click on this to inspect the element, I saw that the entire string is stored as single element.
Can you offer me any suggestion to filter only one number an dafter that to make a graph in Thingspeak?
Thanks a lot in advance!
Is it possible to get a "Handshake" back from the server to acknowledge receipt of a data packet ? I want to drive Red/Green LED - Red for Sent followed by Green if receipt is confirmed. I have an ESP32 project sending data without problems, unknown to me the internet connection had been lost, but I had no indication anything was wrong.
Hi everyone, is there any problem with the Thingspeak MQTT broker right now? This is the error message I keep seeing in the terminal window using node-RED.
[info] [mqtt-broker:ThingSpeak MQTT Broker] Connection failed to broker: mqtt://mqtt.thingspeak.com:1883
And on the gui, the mqtt-in node is perpetually in "connecting.." state.
I tested some weeks ago and it was working fine. Now it doesn't work. I have asked my students to make a simple project using the MQTT protocol and now they can't proceed, I don't understand why.
I've had a Thingspeak channel since 2017. It's updated by a RPi running Raspbian Lite (the Raspberry Pi version of Debian Linux). The "Lite" means there's not much GUI stuff in there, and the RPi is run "headless" using SSH. To update my channel I use the linux utility curl to send http GET commands. curl is run at intervals from a bash script which loops indefinitely.
This has worked fine for nearly 5 years until suddenly between 14:00 and 14:20 UTC on 13/4/22 (UK format) it stopped working, and I started getting HTTP error 400 responses. I haven't changed anything; I haven't updated the RPi OS for over a year, and the timestamp the bash script file is 2020.
Status is enabled on the channel, and a little trial and error showed that the problem was caused by including a status update string which contained a space character. So the workaround is simple, just amend the status string to not have a space character, and all is well again.
I can still send status updates with a string including a space character directly from a web browser, so what has happened to break curl after all this time?

- It's free.
- It's online.
- Registration is now open.
- AI in Engineering
- Modeling and Simulation
- Implementation and DevOps
- Algorithm Development and Deployment
- 5G, Wireless, and Radar
- Autonomous Systems and Robotics
- Electrification, Motor Control, and Power Systems
- Preparing Future Engineers

Hello, today my Python script is giving error messages "There was an error while publishing the data". It is an existing script that runs for a couple of years already. My local network, Wifi, ... is OK. Rebooting Pi does not help. Is there maybe an issue on the Thingspeak servers ? Kind regards, Patrick (Belgium).
Hi, Its my day 1... and just thought i should confirm something for sake of clarity. I found this table on the site...
But I want to know does Number of Messages include Reads & Writes... or only Writes because the other parameter is Message update interval limit ... and usually the word update is a part of the operation where there is a WRITE being committed. And thats what confused me...
So is that interval only for updating data... or is it even if you are reading data?
Thanks
Hello,
can someone please help me to understand, how average works? I send data from temperature sensor to Thingspeak roughly every 5 min(DIFF column in seconds). If i dont use average, i can see temperature in more less 5min slots around 20 degrees. See DATUM and TEPLOTA field on first image(Vlhkost is humidity).
I supposed, if i use parameter average=60, it will calculate average temperature in time slot 60min and extract it. But if you check second image with same data, only parameter average=60 added, results are crazy. I can see rows per hour, but values are crazy, around 7 degrees. I really dont understand what system calculate. I get exactly same result on thingspeak page in channel setup, so problem is not with my page.
Thingspeak screenshots 1day without average
1day with average 60
settings i changed
Dears Good day. I am new in IoT and I need help I am looking for a code that I can run to transmit real-time data from Revolution Pi based on Raspberry Pi to Thingspeak. I have code I used before to transmit data from Revolution Pi based on Raspberry Pi to Wolkabout ( cloud platform). Nevertheless, due to license issues. I had to change to Thingspeak. Can you please help me to adjust the code so that I can use it with Thingspeak instead of Wolkabout. Here is the code .............Code start...............
import os import random import sys import time from urllib.request import urlopen import wolk import revpimodio2 from pymodbus.client.sync import ModbusSerialClient as ModbusClient from pymodbus.register_read_message import ReadInputRegistersResponse
- Sensors Keys device = wolk.Device(key="KDD", password="FDV7F12TSW")
wolk_device = wolk.WolkConnect(device, host="54.72.159.61", port=8883, ca_cert="ca_local_wolkabout.crt") # Establish a connection to the WolkAbout IoT Platform print("Connecting to WolkAbout IoT Platform") wolk_device.connect() rpi = revpimodio2.RevPiModIO(autorefresh=True)
- For Modbus RTU Connection #client = ModbusClient(method = 'rtu', port='/dev/ttyRS485', stopbits=1, bytesize=8, parity='E',baudrate=19200,timeout=1,strict=False) #connection = client.connect() #print(connection)
def main(): """Connect to WolkAbout IoT Platform and send a random sensor reading."""
publish_period_seconds = 5 # LS1 Level sensor 1 LS2 Level sensor 2 VS1 Velocity sensor 1 VS2 Velocity sensor 2
while True: try: #first set of the sensors LS1 = rpi.io.InputValue_1.value*0.059056-205.825 LS2 = rpi.io.InputValue_2.value*0.059056-205.825 VS1 = rpi.io.InputValue_3.value*0.0025-10 VS2 = rpi.io.InputValue_4.value*0.0025-10
#sensors from RTU1 #Temp1= (client.read_input_registers(58, 1, unit=1)) #Temp2 = Temp1.registers #Temp = float(Temp2[0])/100 Temp1 = rpi.io.Temperature.value/100 Temp2 = rpi.io.Temperature2.value/100 #mu1= (client.read_input_registers(66, 1, unit=1)) #mu2 = mu1.registers #mu = float(mu2[0])/100 mu1 = rpi.io.Viscosity.value/100 mu2 = rpi.io.Viscosity2.value/100 #rho1= (client.read_input_registers(74, 1, unit=1)) #rho2 = rho1.registers #rho = float(rho2[0])/100 rho1 = rpi.io.Density.value/100 rho2 = rpi.io.Density2.value/100 #publshing data #wolk_device.add_sensor_readings({"LS1": LS1,"LS2": LS2,"VS1": VS1,"VS2": VS2,"Temp1": Temp1,"rho1": rho1,"mu1": mu1,"Temp2": Temp2,"rho2": rho2,"mu2": mu2})
print('Publishing "Level Sensor 1": ' + str(LS1)) print('Publishing "Level Sensor 2": ' + str(LS2)) print('Publishing "Velocity Sensor 1": ' + str(VS1)) print('Publishing "Velocity Sensor 2": ' + str(VS2)) print('Publishing "Temperature_RTU1": ' + str(Temp1)) print('Publishing "Viscosity_RTU1": ' + str(mu1)) print('Publishing "Density_RTU1": ' + str(rho1)) print('Publishing "Temperature_RTU2": ' + str(Temp2)) print('Publishing "Viscosity_RTU2": ' + str(mu2)) print('Publishing "Density_RTU2": ' + str(rho2)) #wolk_device.publish() time.sleep(publish_period_seconds)
except KeyboardInterrupt: print("\tReceived KeyboardInterrupt. Exiting script") wolk_device.disconnect() sys.exit()
if _name_ == "__main__": main() ...............Code End................... Hope that you can help me. I have a fee account in Thingspeak, only 1 channel with 8 fields which is enough for my current project for time being. Wish you a nice day
I have developed an acoustic sensor that can pick up water leaks at a substantial separation distance. The leaks must originate from pressurized plumbing, which causes the emission of broadband acoustics. The sensor is on a small PCB that communicates with the host controller via I2C. I have connected to an ESP8266 WiFi module and uploaded data to ThingSpeak. The entire project is open-source; you can view the documentation, design files, and firmware on github:
https://github.com/microphonon/acoustic-leak-detector
Let me know if you have any questions. Mike
Hi, I am a newcomer to ThingSpeak, and have created a channel for my soil-moisture sensor. I have checked "show status" of my channel. 'Channel Status Updates' widget appears, but no data are displayed. It is not responding. The widget is always blank despite new sensor data every hour. I would like to display default status messages. Why doesn't it work and what should I do ? I have searched all documentation but find no help there. br SpacerLabs Team