Jun 16

What Do Students Need to Learn to Be Successful in IoT?

I will be joining a panel at the ASEE’s 123rd Annual Conference in New Orleans. The goal of our panel is to discuss what students need to learn to be successful in IoT. Our session is Tuesday, June 28th, 2016 at 1:15pm in Room 261 at the New Orleans Convention Center.

ASEE IoT Conference 2016

The IoT panel at ASEE will be moderated by Dr. Gerald W. Recktenwald and features Dr. Jacob Segil from the University of Colorado, Boulder, Dr. Duncan James Bremner P.E. from the University of Glasgow, and Hans Scharler from MathWorks.

American Society for Engineering Education Conference

New Orleans Convention Center
900 Convention Center Blvd
New Orleans, LA

T426·IoT: What Do Students Need to Learn to Be Successful in this Field?
Tuesday,  June 28, 2016 1:15 PM to 2:45 PM


Jun 16

Weather Station with Particle, SparkFun, ThingSpeak, and MATLAB

[Haodong Liang] has released a weather station project with full MATLAB data analysis, device source code, and procedures on Hackster.io. He used the Particle Electron to connect the SparkFun weather station to ThingSpeak anywhere covered by a 2G/3G cellular data network. The project demonstrates how to build your own and start exploring data collected by ThingSpeak with MATLAB.

MathWorks Weather Station

The project also shows you how to use MATLAB to get very detailed visualizations and data analysis of the data collected by the weather station. Some of the examples include histograms of temperature, humidity, and pressure, curve fitting, daily comparisons, and 3D plots of temperature.

MATLAB weather station temperature plot

Visit Hackster.io for the complete tutorial to build your own weather station, connect it to the internet with the Particle Photon, collect your data with ThingSpeak, and do data analysis with MATLAB.

[via Hackster.io]

May 16

IoT Quick Start With the Arduino MKR1000 and ThingSpeak

If you are looking to start with the Internet of Things, then try out the Arduino MKR1000 and connect it to the ThingSpeak IoT Platform. We have put together a complete tutorial that uses the MKR1000 to collect data about your Wi-Fi signal and send it to ThingSpeak for storage, analysis, and visualization.

Arduino MKR1000

The Arduino MKR1000 is a great starting point when learning about the “things” in IoT. The MKR1000 has a microcontroller, Wi-Fi module, encryption module, and a battery-charging circuit. It’s easy to get started and once you get it connected to ThingSpeak, you have a lot of “cloud power”. ThingSpeak has a suite of apps to allow the Arduino to post messages to Twitter, do data analysis, show charts and visualizations, and be controlled by schedules and external events. With these building blocks you can prototype any IoT system.

ThingSpeak Channel Data

Once you have your data on ThingSpeak, you can analyze and visualize the data with built-in MATLAB apps.

[via ThingSpeak Tutorials]

Apr 16

ThingView – Mobile App to See ThingSpeak Charts on Android Devices

Cinetica has released to Google Play, a new app to see ThingSpeak charts on Android smartphones and tablets. The app is called ThingView and has already reached 5,000 installs on Android devices!

ThingView Android App for ThingSpeak Charts

Even if you do not have devices and sensors sending data to ThingSpeak, you can still use ThingView to see public channels. For example, if you want to see the charts created by sensors in my house, just add Channel ID 9 to ThingView. You see charts of light levels and temperature generated by my house.

Check out ThingView on Google Play!

Mar 16

ThingSpeak is a New Hackster Platform for Sharing Projects

Hackster.io announced that ThingSpeak is now a platform on their project sharing website!

Hackster Platforms

The ThingSpeak platform joins the likes of Amazon Echo, ESP8266 Wi-Fi, and Particle.io platform. ThingSpeak users can easily document, share, and reproduce hardware and Internet of Things projects using Hackster.io. We are already off to a great start with 13 documented projects and tutorials and 31 community members. Check out our platform on Hackster.io to discover great projects and build your own IoT projects.

Mar 16

Explore your IoT data with ThingSpeak and MATLAB

Loren Shure, a blogger at MATLAB Central, has written a new blog post about Eric Wetjen’s Counting Cars and Analyzing Traffic project. Eric uses a Raspberry Pi and webcam to capture traffic data outside of the MathWorks headquarters in Natick, MA. All of the traffic data is stored on a public ThingSpeak channel, so you will be able to use it to learn data analysis with the built-in MATLAB Analysis and Visualizations apps in ThingSpeak. Continue reading →

Mar 16

New MATLAB Analysis Feature – movmax – for ThingSpeak

My power meter at my house reports its power every few minutes. I capture that data and send it to ThingSpeak. The value reported is the total kilowatt-hour (kWh). I would love to see the maximum value over an hour versus randomly reported values over an hour. With the release of MATLAB R2016a, ThingSpeak users have access to a new suite of data analysis features. One of them is movmax – with movmax, I now can look at my ThingSpeak data over a time and figure a moving window of maximum values. This new feature is highly customizable for your application, but I will show you how I use it.

My data over an hour looks like this: 803, 919, 724, 1349, 1500, 602, 549, 899, 1678, 1577

Using movmax, I can have a sliding window ran over my data to pull out a maximum value from the window and use it for a visualization or further analysis.

The MATLAB code to process my power data is really straightforward.

readChannelID = 97871;
fieldID1 = 1;
readAPIKey = '7MOXB8G515OAD94Q';

%% Read Data %%
[data, time] = thingSpeakRead(readChannelID, 'Field', fieldID1, 'NumPoints', 10, 'ReadKey', readAPIKey);

%% Process Data %%
data_max = movmax(data, 4)

%% Visualize Data %%
thingSpeakPlot(time, data_max);

Now, using the MATLAB Visualizations app on ThingSpeak, I can visualize the data. Here’s the before and after.

Power Data Processed Data with MATLAB movmax

You can use movmax in the MATLAB Analysis or MATLAB Visualizations apps on ThingSpeak. Sign up or sign into ThingSpeak, select Apps, and click “MATLAB Visualizations”. Create a new one with the blank template and use my MATLAB code. I will leave my channel of data up for you to try out. You can use channel number 97871 and my read API key 7MOXB8G515OAD94Q. The power data is stored in field1.

Mar 16

Getting Started with IoT using the Particle Electron and ThingSpeak

Julien Vanier over at Hackster.io created a new tutorial showing you how to get started with the Internet of Things using the new Particle Electron and ThingSpeak.

Particle Electron Kit using ThingSpeak IoT

The Electron is a new 3G connected IoT device using cellular data and works anywhere you can get 3G in the United States. It is really awesome to plug-in a device and get it connected without the issues of Wi-Fi. This development kit also makes it possible to build battery-powered, mobile sensors. Good thing that ThingSpeak supports GPS data and offers sensor data analytics.

Check out Julien’s tutorial to go “From 0 to IoT in 15 Minutes” and other ThingSpeak projects on Hackster.io.

Feb 16

Uber Ride Analysis with ThingSpeak and MATLAB

Have you ever wondered how long it will take to get an Uber at your location? This project uses ThingSpeak to log the ETA for an Uber service based on your latitude and longitude. We will use ThingSpeak’s MATLAB Analysis and TimeControl apps to track Uber’s ETA over time.

Uber Ride Estimate

The Uber API allows you to pass a latitude and longitude to determine the estimated time of arrival for an Uber car. The API also allows you to schedule a car. I have made a button that requests an Uber car and also schedules an Uber at the right time.

MATLAB Analysis Code

% Read the ThingHTTP for 'Uber Ride Estimate'
data = webread('https://api.thingspeak.com/apps/thinghttp/send_request?api_key=XXX')

% Convert the response to a number
eta = str2num(data);

% Write the data to the 'Uber Ride Estimate Data' ThingSpeak Channel

Each time the MATLAB Analysis code is executed, it will write the estimated time of arrival (ETA) for Uber to your ThingSpeak channel. To track the ETA over time, schedule the MATLAB code with TimeControl. I am running the code every 5 minutes to get an idea of when the peak times are for Uber to pick me up at my office in Natick, MA. Check out the ThingSpeak channel number 840700 to see the estimated times.


Step-by-step project details are available at Hackster.io.

Jan 16

Reacting to Events in Your Data With MATLAB

Chris Hayhurst uses a solar water heater at his house to lower energy costs and use hot water in his house heated up by the sun. Chris is a consulting manager for The MathWorks and partnered with the IoT team to use ThingSpeak to collect data about his system and use ThingSpeak’s built-in MATLAB app to analyze it. In this project, Adarsh and I are going to show you how to send alerts when events are detected in the data by using the MATLAB Analysis app.

Solar water heating system

Chris’ home solar water heating system is an example of an IoT application that uses multiple sensors to collect data about a physical system.  Chris’s water heater measures ambient temperature, stored water temperature, collector temperature, and pump speed. All of this data gets collect by ThingSpeak and stored in Channel 29633.

Solar water heater

On days when the stored water temperature exceeds 50°C (122°F), there’s no need to use other methods to heat the store of water to a useful working temperature.  The pump should turn on only when the collector temperature is greater than the temperature of the stored water tank. If the pump turns itself on when the collector is cooler than the stored water temperature, valuable heat is lost from the stored water tank. Chris wants to be alerted of this condition, so that he can adjust the controller settings and increase the efficiency of the system.

IoT systems like Chris’ solar water heating system, typically gather large amounts of data but often the real interest is in events that occur infrequently. The ability to take action when these infrequent events occur is important and requires a mechanism to detect such an event and launch an action. We are going to use the data collected by the solar water heating system stored in the ThingSpeak Channel 29633 and use the MATLAB Analysis app to detect a condition and alert him using Twitter.


MATLAB Event Detection

To detect an erroneous pump behavior event, create a new MATLAB Analysis on ThingSpeak with the following code:

% Read data from fields 1, 2, and 3 from channel 26633.
% Field 1 represents the stored water temperature
% Field 2 represents the collector temperature
% Field 3 represents the state of the pump - on or off
[data, time] = thingSpeakRead(29633, 'Fields', [1, 2, 3]);

% Assign measurements to individual variables
storeTemp = data(1);
collectorTemp = data(2);
pumpState = data(3);

% Check if collectorTemp is less than storeTemp
isCollectorCooler = collectorTemp < storeTemp;

% Identify if pump is on while the collector is cooler.
% We apply a logical AND operation to detect an event only when collector
% is cooler than store temperature and the pump is on.
eventDetected = isCollectorCooler & pumpState

Press the ‘Run & Save’ button to save the MATLAB Analysis App. The code above sets eventDetected to 1 every time the collector temperature is cooler than stored temperature and if the pump is on. Now that we can detect the event, we need to set the MATLAB App to be run on a schedule. To do this, we will setup a TimeControl to run our MATLAB code every 5 minutes.

TimeControl options

Sending Alerts using MATLAB Analysis

So far, we’ve created a MATLAB Analysis to detect events in the data being collected in the solar water heater data channel. We associated our MATLAB Analysis code with a TimeControl to have it run every 5 mins to check for our event of interest. To receive a notification via Twitter when the pump is on incorrectly, we can use MATLAB Analysis to send a Tweet.

First, you need to link your Twitter account to your ThingSpeak account. Then, add the following lines of code at the end of your MATLAB Analysis code to send a Tweet when an event is detected:

If eventDetected
'api_key', '<ThingTweet_APIKey>', 'status', 'Alert! Solar pump error!')

Be sure to replace <ThingTweet_APIKey> with your ThingTweet API Key.

If the solar water heater pump turns on at the wrong times, you will get a Tweet to let you know!

Next Steps

This example shows you the power of some of the ThingSpeak apps that we make available to you to experiment with. The MATLAB Analysis app is really powerful and can be used to detect events in your data and send alerts. MATLAB Analysis can be used for all sorts of calculations and orchestrations of different web services. We could have also used MATLAB to control the pump.

Feel free to try this example and take it further…

  • Reading data from fields in different channels
  • Combining data from fields in a channel and data read from a website such as a weather station or weather forecast.

What will you MATLAB?