humidity – Internet of Things https://blogs.mathworks.com/iot Hans Scharler is an Internet of Things pioneer. He writes about IoT and ThingSpeak IoT platform features. Tue, 31 Mar 2026 22:45:55 +0000 en-US hourly 1 https://wordpress.org/?v=6.1.1 One Million ThingSpeak Channels! https://blogs.mathworks.com/iot/2020/03/17/one-million-thingspeak-channels/?s_tid=feedtopost https://blogs.mathworks.com/iot/2020/03/17/one-million-thingspeak-channels/#comments Tue, 17 Mar 2020 22:11:43 +0000 https://blogs.mathworks.com/iot/?p=2695

Christopher Stapels, the product marketing manager for ThingSpeak, told me that we crossed ONE MILLION CHANNELS of IoT data on ThingSpeak. We have come along way over the years. The first channel... read more >>

]]>
Christopher Stapels, the product marketing manager for ThingSpeak, told me that we crossed ONE MILLION CHANNELS of IoT data on ThingSpeak. We have come along way over the years. The first channel that we created got the Channel ID of 1. We deleted the channel to test if the channel deletion feature works. Then, we created a second channel, sent data to it, cleared it, and deleted it. The oldest active ThingSpeak channel is Channel 3. It’s still collecting weather data from my parent’s house after 10 years. I never expected to see seven-digit channel ID numbers, like Channel 1018612 based in Oslo, Norway.

Thanks to all of our users who keep collecting data, adding devices, and analyzing data on ThingSpeak! This is a huge milestone for all of us and you are making an impact on IoT all around the world.

To commemorate one million channels, Christopher saved the number of channels at the beginning of each year to an array and used MATLAB to fit a power function to the data. You can do this using a MATLAB Visualization in ThingSpeak. The fit parameters are a = 1693 and b=2.277 for the model shown here.

According to a Business insider article, there will be 25 billion IoT devices by 2025. If the present rate continues, at least .1% of those devices can be on ThingSpeak by 2024 when we reach 2.5 million channels!

Here’s some MATLAB code to generate this plot and estimate the number of the ThingSpeak channels in the future.

% Gather data
dates=2015:2020;
absYears=dates-2014;
numChan=[22155,75957,208835,394780,666479,1000000];

% Plot the data
plot(dates,numChan,'r*-','linewidth',3);
xlabel('time');ylabel('Number of Channels');title('1 Million Channels!');
[xData, yData] = prepareCurveData( absYears, numChan );

% Set up fittype and options
ft = fittype( 'power1' );
opts = fitoptions( 'Method', 'NonlinearLeastSquares' );
opts.Display = 'Off';

% Fit model to data
[fitresult, gof] = fit( xData, yData, ft, opts );
hold;
extendRange = 2015:2025;
plot(extendRange,fitresult(extendRange-2014),'r--');
yline(2.5e6,'b','LineWidth',3);

We wanted to thank you again. We look forward to the next million channels and supporting your IoT journey. Let us know in the comments what you are doing or planning to do with ThingSpeak and what functionality that will help you along the way.

]]>
https://blogs.mathworks.com/iot/2020/03/17/one-million-thingspeak-channels/feed/ 4
Collect and Visualize Agricultural Data using The Things Network and ThingSpeak https://blogs.mathworks.com/iot/2019/10/17/collect-and-visualize-agricultural-data/?s_tid=feedtopost https://blogs.mathworks.com/iot/2019/10/17/collect-and-visualize-agricultural-data/#comments Thu, 17 Oct 2019 19:19:13 +0000 https://blogs.mathworks.com/iot/?p=2670

Long-range wireless communication technology enables the transfer of sensor data over a long distance while using low-power radios for connectivity. This technology can be leveraged to connect... read more >>

]]>
Long-range wireless communication technology enables the transfer of sensor data over a long distance while using low-power radios for connectivity. This technology can be leveraged to connect sensors covering a large geographic area and give you insights into what is happening. With agricultural applications it is important to measure the soil moisture and efficiently irrigate. A big challenge for agricultural applications is robust connectivity in remote locations. By using a combination of The Things Network and ThingSpeak insightful applications can be built. The Things Network is a protocol and infrastructure that provides a link to cloud applications using LoRaWAN® technology. If you are already a The Things Network user, check out the documentation about the ThingSpeak integration at The Things Network. ThingSpeak is an IoT analytics platform service that allows you to aggregate, visualize, and analyze live data streams in the cloud using MATLAB®. You can send data to ThingSpeak from devices via The Things Network, create instant visualization of live data, and send alerts.

The ThingSpeak team has created a new example that shows you how to leverage The Things Network and build an agricultural data application using ThingSpeak. The sensors send data to The Things Network, which is then forwarded to ThingSpeak for collection, analysis, and visualization. Here’s what the project view on ThingSpeak looks like.

To build a soil moisture sensor device for The Things Network, you need use an Adafruit Feather M0 RFM95 LoRa Radio (900MHz), an Adafruit Ultimate GPS FeatherWing, a SparkFun Soil Moisture Sensor, and a DHT22 temperature and humidity sensor. Once you have the device put together and programmed, you can use this device to measure soil moisture, temperature, humidity, and its location.

Check out the full Collect Agricultural Data over The Things Network example at the MathWorks Documentation site.

]]>
https://blogs.mathworks.com/iot/2019/10/17/collect-and-visualize-agricultural-data/feed/ 2
Create and Train a Feedforward Neural Network https://blogs.mathworks.com/iot/2018/07/31/create-and-train-a-feedforward-neural-network/?s_tid=feedtopost https://blogs.mathworks.com/iot/2018/07/31/create-and-train-a-feedforward-neural-network/#respond Tue, 31 Jul 2018 15:04:53 +0000 https://blogs.mathworks.com/iot/?p=2465

We have published an example in the ThingSpeak documentation that shows you how to train a feedforward neural network to predict temperature. The feedforward neural network is one of the... read more >>

]]>
We have published an example in the ThingSpeak documentation that shows you how to train a feedforward neural network to predict temperature. The feedforward neural network is one of the simplest types of artificial networks but has broad applications in IoT. Feedforward networks consist of a series of layers. The first layer has a connection from the network input. Each other layer has a connection from the previous layer. The final layer produces the network’s output. In our IoT application, the output will be the predicted temperature.

IoT Application

We are collecting data in a ThingSpeak channel and will use the integrated MATLAB analytics. To predict the temperature, this example makes use of the Neural Network Toolbox in MATLAB along with the data collected in a ThingSpeak channel. We will be using data collected by a weather station located at MathWorks offices in Natick, Massachusetts.

The process for creating, training, and using a feedforward network to predict the temperature is as follows:

  1. Gather data from the weather station
  2. Create a two-layer feedforward network
  3. Train the feedforward network
  4. Use the trained model to predict data

Read Data from the Weather Station ThingSpeak Channel

ThingSpeak channel 12397 contains data from the MathWorks weather station, located in Natick, Massachusetts. The data is collected once every minute. Fields 2, 3, 4, and 6 contain wind speed (mph), relative humidity, temperature (F), and atmospheric pressure (hg) data respectively. To read the data from the weather station within MATLAB, use the thingSpeakRead function.

data = thingSpeakRead(12397,'Fields',[2 3 4 6],'DateRange',[datetime('Jul 30, 2018'),datetime('Jul 31, 2018')],...
    'outputFormat','table');

Create Two-Layer Feedforward Network

Use the feedforwardnet function to create a two-layer feedforward network. The network has one hidden layer with 10 neurons and an output layer.

net = feedforwardnet(10);

Train the Feedforward Network

Use the train function to train the feed-forward network.

[net,tr] = train(net,inputs,targets);

Use the Trained Model to Predict Data

After the network is trained and validated, you can use the network object to calculate the network response to any input.

output = net(inputs(:,5))
output =

   74.9756

This example can be adapted to other IoT applications. Check out the ThingSpeak documentation for the code and explanation.

]]>
https://blogs.mathworks.com/iot/2018/07/31/create-and-train-a-feedforward-neural-network/feed/ 0
Learn How to Build a Condition Monitoring IoT System https://blogs.mathworks.com/iot/2018/02/22/learn-how-to-build-a-condition-monitoring-iot-system/?s_tid=feedtopost https://blogs.mathworks.com/iot/2018/02/22/learn-how-to-build-a-condition-monitoring-iot-system/#comments Thu, 22 Feb 2018 16:00:49 +0000 https://blogs.mathworks.com/iot/?p=2298

Douglas Mawrey created a Smart Humidity Sensor using ThingSpeak to collect data, MATLAB to analyze the data, and IFTTT to send push notifications for certain conditions. This project uses the outdoor... read more >>

]]>
Douglas Mawrey created a Smart Humidity Sensor using ThingSpeak to collect data, MATLAB to analyze the data, and IFTTT to send push notifications for certain conditions. This project uses the outdoor temperature to determine the ideal indoor humidity and inform you about the room’s comfort. The data and condition results are displayed on Douglas’ public ThingSpeak channel 418058. This project is a good starting point to see the power of the MATLAB integration on ThingSpeak and how to perform real-time condition monitoring.

Setting up the Sensor

This project uses the ESP-based NodeMCU as an IoT gateway to forward sensor data to ThingSpeak. The NodeMCU is essentially a microcontroller and a Wi-Fi device that costs less than $10 US. The humidity sensor that is used in this project is the DHT11. This a very common sensor used to monitor temperature and humidity. The sensor either comes in a 4 pin or 3 pin package. The NodeMCU is programmed with the Arduino IDE using the code in Douglas’ tutorial or GitHub.

Using ThingSpeak Metadata

Douglas uses the metadata setting within a ThingSpeak channel to store condition ranges. This allows you to adjust settings in your online analytics code without redeploying new code. Each ThingSpeak channel has a metadata setting. You can store arbitrary text data that can be used in your MATLAB Analysis code. To load your channel’s metadata into MATLAB, use the webread function and add metadata=true to the ThingSpeak API Read Data request.

indoorChannelData = webread(strcat('https://api.thingspeak.com/channels/', ...
                                    num2str(indoorChannelID), ...
                                    '/feeds.json?metadata=true&api_key=', ...
                                    indoorChannelReadKey));

Using MATLAB for Condition Monitoring

Douglas uses MATLAB on ThingSpeak to determine the proper condition. This is a common requirement in complex IoT systems. This example could be a good starting point for building a condition monitoring system for industrial maintenance applications. You use MATLAB to determine the target humidity using a polynomial fit over the lookup data.

lookupFit = polyfit(humidityLookup(:, 1), humidityLookup(:, 2), length(humidityLookup) - 1);
optimalHumidity = polyval(lookupFit, curTempOut);

humidityDiff = curHumidity - optimalHumidity;

Using IFTTT for Alerts

Often you want to get notifications when a certain condition is met. Douglas shows you how to use IFTTT to send push notification directly to your phone. In this project, MATLAB is determining the condition and then interfaces with the IFTTT API to send the push notification. To send push notifications via IFTTT, use the webwrite function in MATLAB.

webwrite(strcat('https://maker.ifttt.com/trigger/', makerEvent, ...
                '/with/key/', makerKey), ...
                'value1', stateMsg, ...
                'value2', char(timeSinceChange, 'hh:mm'));

All of the MATLAB code can be deployed on ThingSpeak and scheduled to be executed periodically without having this on your desktop computer. The complete Smart Humidity Sensor project tutorial is available on Hackster.io. Feel free to discuss on the MATLAB Maker Community.

]]>
https://blogs.mathworks.com/iot/2018/02/22/learn-how-to-build-a-condition-monitoring-iot-system/feed/ 1
Use MATLAB ‘timetable’ to Merge ThingSpeak Data Channels https://blogs.mathworks.com/iot/2016/09/25/use-matlab-timetable-to-merge-thingspeak-data-channels/?s_tid=feedtopost https://blogs.mathworks.com/iot/2016/09/25/use-matlab-timetable-to-merge-thingspeak-data-channels/#comments Mon, 26 Sep 2016 00:12:57 +0000 https://blogs.mathworks.com/iot/?p=1924

We released a new version of MATLAB and it’s available now for every ThingSpeak user. MATLAB R2016b includes many new features that make it easy to work with time-stamped tabular data,... read more >>

]]>
We released a new version of MATLAB and it’s available now for every ThingSpeak user. MATLAB R2016b includes many new features that make it easy to work with time-stamped tabular data, manipulate, compare, and store text data efficiently, and find, fill, and remove missing data.

With multiple sensors around my house or office, I want to be able to send data to multiple ThingSpeak channels. But, when I want to perform data analysis, I have a hard time working with data from multiple channels. The channels do not have the same time stamps and are out-of-sync with each other.

With R2016b of MATLAB®, I am able to use the new timetable data container. Once the data is a stored as a timetable, I can perform powerful operations such as retime, synchronize, and rmmissing.

In this example, I have two sensors outside of my office here in Natick, MA. One sensor is a temperature sensor that is sending data to ThingSpeak channel 163540. My other sensor is writing humidity data to channel 163545. Both channels are public. My goal is to plot temperature versus humidity over one time series. To accomplish this, I will use timetable and synchronize inside of a new MATLAB Visualization on ThingSpeak.

% Read from the temperature channel
temperatureTT = thingSpeakRead(163540,'Fields',1,'NumPoints',100,'outputFormat','timetable');

% Read from the humidity channel
humidityTT = thingSpeakRead(163545,'Fields',1,'NumPoints',100,'outputFormat','timetable');

% Synchronize two timestables and fill in missing data using linear interpolation
TT = synchronize(temperatureTT,humidityTT,'union','linear')

% Plot Temperature and Humidity over time
plotyy(TT.Timestamps,TT.Temperature,...
       TT.Timestamps,TT.Humidity);
        
title('Temperature and Humidity Synchronized From Two Channels')
xlabel('Temperature and Humidity in Natick, MA')
legend('Temperature','Humidity')

The first part of the script reads in ThingSpeak data from two different channels and stores the data in two timetables. Once the data is stored in a timetable, I am able to take advantage of synchronize. With synchronize, I can combine both timetables with one time series and fill in missing data using linear interpolation. This results in a plot that shows my data over time without any missing data. To create the plot, I signed into ThingSpeak, selected Apps, and created a new MATLAB Visualization with my MATLAB code.

All ThingSpeak users are able to try this example or explore the other new MATLAB features directly on ThingSpeak. I will leave my temperature (163540) and humidity (163545) channels public, so you can try out timetable example without having to connect devices to ThingSpeak.

]]>
https://blogs.mathworks.com/iot/2016/09/25/use-matlab-timetable-to-merge-thingspeak-data-channels/feed/ 10
Basement Dehumidifier Tweets Its Humidity with ThingSpeak and ESP8266 Wi-Fi https://blogs.mathworks.com/iot/2015/07/15/basement-dehumidifier-tweets-its-humidity-with-thingspeak-and-esp8266-wi-fi/?s_tid=feedtopost https://blogs.mathworks.com/iot/2015/07/15/basement-dehumidifier-tweets-its-humidity-with-thingspeak-and-esp8266-wi-fi/#respond Wed, 15 Jul 2015 17:17:25 +0000 https://blogs.mathworks.com/iot/?p=1448

ThingSpeak user, Spencer, adapted a humidifier that sits in his basement. He is solving a common issue about humid basements. If your dehumidifier fails, you get wet things you have stored and then... read more >>

]]>
ThingSpeak user, Spencer, adapted a humidifier that sits in his basement. He is solving a common issue about humid basements. If your dehumidifier fails, you get wet things you have stored and then mold. Spencer created a humidity board using the DHT22 that measures humidity and then reports the data to his ThingSpeak Channel via the ESP8266 Wi-Fi module. Once the data is stored in ThingSpeak, he uses ThingSpeak React to update Twitter when things get out of whack.

Basement Dehumidifier Twitter

[via Twitter]

]]>
https://blogs.mathworks.com/iot/2015/07/15/basement-dehumidifier-tweets-its-humidity-with-thingspeak-and-esp8266-wi-fi/feed/ 0
Cigar Humidor Updates Twitter – Powered by ThingSpeak and Arduino https://blogs.mathworks.com/iot/2014/04/04/cigar-humidor-updates-twitter-powered-by-thingspeak-and-arduino/?s_tid=feedtopost https://blogs.mathworks.com/iot/2014/04/04/cigar-humidor-updates-twitter-powered-by-thingspeak-and-arduino/#comments Fri, 04 Apr 2014 19:11:56 +0000 https://blogs.mathworks.com/iot/?p=1178

CAVA created a cigar humidor with a social life. A humidor stores cigars in a humidity controlled environment to maintain freshness, but this special humidor sends the humidity sensor value to... read more >>

]]>
CAVA created a cigar humidor with a social life. A humidor stores cigars in a humidity controlled environment to maintain freshness, but this special humidor sends the humidity sensor value to ThingSpeak and alerts Twitter when you need to add water. The project uses a humidity sensor and an Arduino Ethernet to post the data to the ThingSpeak API and ThingTweet to send messages to Twitter.

ThingSpeak Cigar Humidor IoTMi Humidor de Cigarros conectado a Internet por medio de un Arduino

]]>
https://blogs.mathworks.com/iot/2014/04/04/cigar-humidor-updates-twitter-powered-by-thingspeak-and-arduino/feed/ 2
DIY Weather Station with Arduino, Processing, and ThingSpeak https://blogs.mathworks.com/iot/2011/09/01/diy-weather-station-with-arduino-processing-and-thingspeak/?s_tid=feedtopost https://blogs.mathworks.com/iot/2011/09/01/diy-weather-station-with-arduino-processing-and-thingspeak/#respond Thu, 01 Sep 2011 21:58:48 +0000 https://blogs.mathworks.com/iot/?p=810 [lars] created a weather station from scratch using sensors and bits from SparkFun and Adafruit. Lars wanted to log weather data and access it from remotely. He built the weather station using... read more >>

]]>
[lars] created a weather station from scratch using sensors and bits from SparkFun and Adafruit. Lars wanted to log weather data and access it from remotely. He built the weather station using humidity, temperature, pressure, and light sensors collecting data from his apartment in Ithaca, NY. Originally, Lars was collecting data with his own web application created with PHP and MySQL. He has since started publishing his data to ThingSpeak where others can view the data and potentially build applications.

ThingSpeak Weather Station

Behind the scenes, Lars uses the Arduino microcontroller to collect data from the sensors and uses Processing to publish data to his ThingSpeak Channel.

From Lars’ project site:

The goal of this project is to log some weather data and be able to access it from anywhere. There is some sensor data (temperature, relative humidity, pressure, and ambient light) and some computed data (dew point). You can see the weather condition in my apartment in Ithaca, NY at my ThingSpeak Channel 346. You can also look at the Google Chart of my own MySQL solution, which I no longer maintain.

Check out a detailed breakdown of the Weather Station project and more awesome projects on Lars’ project site, called “make.larsi.org“.

]]>
https://blogs.mathworks.com/iot/2011/09/01/diy-weather-station-with-arduino-processing-and-thingspeak/feed/ 0