Things used in this project

Hardware components:
AT&T IOT Starter Kit
This great kit has a NXP FRDM-K64F MCU and an Avnet M14A2A Cellular Shield
×1
Grove 20starter 20kit 20plus 20  20intel c2 ae 20iot2 01
SeeedStudio Grove starter kit plus for Intel Edison
Simply a must have for quick prototyping!
×1
Rain/Snow Sensor
×1
Adafruit ds18b20 weatherproof temperature sensor
×1
Software apps and online services:
AT&T M2X
AT&T Flow
Data stream network%402x
PubNub Publish/Subscribe API
mbed cloud IDE and Compiler
Hand tools and fabrication machines:
Armmbedlogo
ARM mbed mbed

Code

SnowmeltC/C++
The snowmelt code is hosted at developer.mbed.org. From here, you can easily import it to your mbed IDE workspace. Just follow the link https://developer.mbed.org/users/petehoffswell/code/SnowMelt_Dist/
https://developer.mbed.org/users/petehoffswell/code/SnowMelt_Dist/
PubNub EON ChartsHTML
This code reads data and plots the data in various ways.
<html>
  <head>
    <script type="text/javascript" src="https://pubnub.github.io/eon/v/eon/1.0.0/eon.js"></script>
    <link type="text/css" rel="stylesheet" href="https://pubnub.github.io/eon/v/eon/1.0.0/eon.css"/>
  </head>
  <body>

    <center><h1>Smowmelt Monitor</h1></center>
    <div id="airtemp">Air Temp</div>
    <div id="probe0"></div>
    <div id="probe-overtime"></div>
    <div id="light"></div>
    <div id="wind"></div>

    <script>
      var pubnub = new PubNub({
        publishKey: 'pub-KEY',
        subscribeKey: 'sub-KEY'
      });
      eon.chart({
        pubnub: pubnub,
        channels: ['SnowMelt'],
        history: true,
        transform: function(m) {
          return {
            eon: {
              probe0: m.eon.probe0
            }
          }
        },
        generate: {
          bindto: '#probe0',
          data: {
            type: 'gauge',
          },
          gauge: {
            label:{
                format: function(value, ratio){
                  return value;
                  },
                },
            min: 0,
            max: 80
          },
          color: {
            pattern: ['#FF0000', '#FFFF00', '#00FF00'],
            threshold: {
              values: [20, 35, 50]
            }
          }
        }
       });
    </script>


    <script>
      var pubnub = new PubNub({
        publishKey: 'pub-c-1aa40d5d-c3f2-4694-a46c-9959c4573ce5',
        subscribeKey: 'sub-c-3c30710c-c491-11e6-add0-02ee2ddab7fe'
      });
      eon.chart({
        pubnub: pubnub,
        channels: ['wx'],
        history: true,
        transform: function(m) {
          return {
            eon: {
              temperature: m.eon.temperature
            }
          }
        },
        generate: {
          bindto: '#airtemp',
          data: {
            type: 'gauge',
          },
          gauge: {
            label:{
                format: function(value, ratio){
                  return value;
                  },
                },
            min: 0,
            max: 80
          },
          color: {
            pattern: ['#FF0000', '#FFFF00', '#00FF00'],
            threshold: {
              values: [20, 35, 50]
            }
          }
        }
       });
    </script>


    <script>
      var channel = "SnowMelt";
      eon.chart({
        channels: [channel],
        history: true,
        flow: true,
        transform: function(m) {
          return {
            eon: {
              probe0: m.eon.probe0
            }
          }
        },

        pubnub: pubnub,
        limit: 144,
        generate: {
          bindto: '#probe-overtime',
          data: {
            type: 'area',
            labels: true
          },
          axis: {
             x: {
               label: ""
             },
             y: {
               label: ""
            }
          },
          tooltip: {
            show: true
          },
          point: {
            show: true
          }
        }
      });
    </script>



    <script>
      var channel = "SnowMelt";
      eon.chart({
        channels: [channel],
        history: true,
        flow: true,
        transform: function(m) {
          return {
            eon: { light: m.eon.light }
          }
        },

        pubnub: pubnub,
        limit: 144,
        generate: {
          bindto: '#light',
          data: {
            type: 'area',
            labels: true
          },
          axis: {
             x: {
               label: ""
             },
             y: {
               label: ""
            }
          },
          tooltip: {
            show: true
          },
          point: {
            show: true
          }
        }
      });
    </script>

    <script>
      var channel = "wx";
      eon.chart({
        channels: [channel],
        history: true,
        flow: true,
        transform: function(m) {
          return {
            eon: {
                wind_mph: m.eon.wind_mph,
                wind_gust_mph: m.eon.wind_gust_mph,
                   }
          }
        },

        pubnub: pubnub,
        limit: 144,
        generate: {
          bindto: '#wind',
          data: {
            type: 'area',
            labels: true
          },
          axis: {
             x: {
               label: ""
             },
             y: {
               label: ""
            }
          },
          tooltip: {
            show: true
          },
          point: {
            show: true
          }
        }
      });
    </script>

<!--
   <iframe allowfullscreen="" border="0" frameborder="0" height="530" mozallowfullscreen="" scrollong="no" src="https://live1.brownrice.com/embed/cityofholland1/?skin=glow" width="740"></iframe>
-->
</body>
</html>

Credits

Pete2014
Pete Hoffswell

Network Engineer for All the People. Internet advocate. Microcontroller Fan. Maker.

Contact

Replications

Did you replicate this project? Share it!

I made one

Love this project? Think it could be improved? Tell us what you think!

Give feedback

Comments

Similar projects you might like

New Electronic Music Instrument Design
Advanced
  • 1,129
  • 7

A new piece for percussion quartet seeks to bring physicality to electronic music using two custom musical instruments.

AirOwl - Know What You Breathe!
Advanced
  • 2,884
  • 25

Full instructions

A project that speaks on behalf of mother nature. It is real time air quality monitoring device.

Power Lunch
Advanced
  • 402
  • 8

Full instructions

An insulated food container divided into two sections by a thermoelectric cooler module for quickly heating one side and cooling the other.

Power Lunch

5 members

Intelligent Community Alerts Beacon [-iCAB-]
Advanced
  • 786
  • 12

A cloud connected alert system that parses local alert feeds ranging from weather to missing persons and provides visual and audio feedback.

Suicide Prevention Gun Safe Locking System
Advanced
  • 3,075
  • 8

An IoT device that helps prevent gun suicides through safe monitoring, only allowing access to a safe through a request/approval process.

Smart Compost System
Advanced
  • 2,145
  • 11

A smart system that can help anyone compost. The system aerates and hydrates your compost, and lets you know when you need to take action.

Smart Compost System

Team Boomer Sooner

ProjectsCommunitiesTopicsContestsLiveAppsBetaFree StoreBlogAdd projectSign up / Login