I finally got to the point where my new toy is able to publish temperature information to a database, so next is to make that information available on BakBoard. With the main pieces already deployed, the only thing necessary is to add the necessary connections.
First I wrote a some JavaScript to poll the Webdis/Redis server for the temperature. For extra credit I also have it contacting the FAA Services REST API to get information about weather at the Portland airport. Below is “temperature.js”.
function temperature() { setupTemperature(); updateTemperature(); window.setInterval(function(){ updateTemperature(); }, 100000); } function setupTemperature() { $('.temperature').html("<div class='pdx'/><div class='upstairs'/>"); } function updateTemperature() { var myJson; var url = "http://192.168.1.35:7379/GET/temperature"; myJson = $.getJSON(url, function(obj) { var f = parseFloat(obj.GET); var c = (f - 32) * 5 / 9; $('.upstairs').html("Upstairs: " + f.toFixed(1) + "F (" + c.toFixed(1) + " C)"); }); url = "http://services.faa.gov/airport/status/PDX"; myJson = $.getJSON(url, function(obj) { $('.pdx').html("Airport: " + obj.weather.temp); }); };
And here’s a very simple HTML file that uses the script above to display the airport and upstairs (where I put my new toy) temperatures:
<html> <head> <!-- I downloaded jQuery from http://code.jquery.com/jquery-2.2.0.min.js--> <script src="jquery-2.2.0.min.js"></script> <script src="temperature.js"></script> <title>Temperature</title> </head> <body> <div class="temperature"></div> <script> temperature(); </script> </body> </html>
Viewing that script in a browser showed:
Airport: 73.0 F (22.8 C) Upstairs: 71.1F (21.7 C)
I basically added the bold HTML parts to the BakBoard .html file along with some css goodness and the temperature information is now displaying on BakBoard.
I had fun playing with my new toy and learned a lot. The ESP8266 seems to have a lot of potential and I want to try more things. Of course now that I have my only module in use, I may have to get another one for play . . .