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.

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

Smart Furniture Using Linkit Mediatek 7688 Duo
Advanced
  • 360
  • 8

Protip

We are making smart furniture and our first prototype is for smart computer table.

DIY Code Red Button for Healthcare Simulation
Advanced
  • 834
  • 2

Full instructions

Create your own Code Red button for use in simulation scenarios. Flashing LEDs and Button!

Caravaggio, a Drawing Machine
Advanced
  • 8,650
  • 59

Caravaggio is a drawing machine able to replicate a digital image using a pen and a continuous line.

 Traffic Light Information System
Advanced
  • 2,118
  • 15

Full instructions

Traffic Light Information System that lets the driver know at which speed he needs to drive in order to pass the green light.

Sweep 3D Scanner
Advanced
  • 3,041
  • 39

Work in progress

A complete hardware and software kit for creating full spherical 3D scans with a Sweep scanning LiDAR sensor.

Sweep 3D Scanner

Team Scanse

Touched by Time – Cyborgism
Advanced
  • 1,346
  • 13

I have no “sense" of time - can I develop one? Tempo is a wearable device that feeds time data to my skin through vibration patterns.

ProjectsCommunitiesContestsLiveAppsBetaFree StoreBlogAdd projectSign up / Login
Respect project
Feedback