ARM mbed workshop #1. (1) mbed Toolsl; (2) mbed Digital Interface; (3) mbed Networking - WiflyInterface; (4) httpd and REST APIs; (5) Websocket.
Dependencies: WebSocketClient WiflyInterface mbed
Fork of Mokoversity_WoT_Wifly_Temperature by
Revision 0:d064b9670483, committed 2015-03-20
- Comitter:
- jollen
- Date:
- Fri Mar 20 04:52:46 2015 +0000
- Commit message:
- ARM mbed workshop #1.; * mbed Tools; * mbed Digital Interface; * Netowkring: Wifly; * mbed httpd and REST API; * Websocket
Changed in this revision
diff -r 000000000000 -r d064b9670483 WebSocketClient.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WebSocketClient.lib Fri Mar 20 04:52:46 2015 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/samux/code/WebSocketClient/#4567996414a5
diff -r 000000000000 -r d064b9670483 WiflyInterface.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WiflyInterface.lib Fri Mar 20 04:52:46 2015 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/teams/components/code/WiflyInterface/#fc3d86645d23
diff -r 000000000000 -r d064b9670483 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Fri Mar 20 04:52:46 2015 +0000 @@ -0,0 +1,123 @@ +/* Copyright (c) 2010-2011 mbed.org, MIT License +* +* Permission is hereby granted, free of charge, to any person obtaining a copy of this software +* and associated documentation files (the "Software"), to deal in the Software without +* restriction, including without limitation the rights to use, copy, modify, merge, publish, +* distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the +* Software is furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in all copies or +* substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING +* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ +#include "mbed.h" +#include "WiflyInterface.h" +#include "Websocket.h" + +/* + * Mokoversity Farm Team + * + * ARM mbed IoT workshop at Taipei / Shenzhen. + * For more information, please see https://www.mokoversity.com/farm + */ + + +/* + * Sensor Device + */ + +// System status +DigitalOut led1(LED1); +DigitalOut led2(LED2); +DigitalOut led3(LED3); +DigitalOut led4(LED4); + +// Temperature sensor at A0 +AnalogIn temp(P0_23); + +/** + * WiFi Device - Seeed WiFi Shield + * + * D1 - TX pin (RX on the WiFi side) + * D0 - RX pin (TX on the WiFi side) + * NC - Reset pin; use D5 otherwise the shield might get into reset loop + * LED1 - TCP status pin + * "ssid" - hostspot name + * "password" - hotspot passowrd + * security method - NONE, WEP_128, WPA + */ +WiflyInterface eth(D1, D0, D5, LED4, "<HOTSPOT>", "<PASSWORD>", WPA); + +/* + * Global Variables + */ +int a; +float temperature; +int B = 3975; //B value of the thermistor +float resistance; + +int main() +{ + char data[256]; + int ret; + + wait(3); + + // init status + led1 = 0; + led2 = 0; + led3 = 0; + + //Use DHCP + ret = eth.init(); + //eth.init("192.168.21.45","255.255.255.0","192.168.21.2"); + if (ret != NULL) { + led1 = 0; + led2 = 1; + led3 = 0; + led4 = 1; + + exit(0); + } + + while (1) { + ret = eth.connect(); + + if (ret == false || ret < 0) { + led1 = !led1; + wait(1); + } else { + led1 = 1; + break; + } + } + + /* + * We use WoT.City Websocket channel service. + * See: https://www.mokoversity.com/wotcity + */ + Websocket ws("ws://wot.city/object/jollentemp1/send"); + while( !ws.connect() ); + led2 = 1; + + while(1) { + // multiply ain by 675 if the Grove shield is set to 5V or 1023 if set to 3.3V + a = temp * 675; + + // get resistance value of the sensor + resistance = (float)(1023-a)*10000/a; + + //convert resistance value to temperature via datasheet + temperature = 1 / (log(resistance/10000)/B+1/298.15) - 273.15; + + wait(0.8); + + sprintf( data , "{ \"temperature\": %f }",temperature); + ws.send(data); + } +}
diff -r 000000000000 -r d064b9670483 mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Fri Mar 20 04:52:46 2015 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/487b796308b0 \ No newline at end of file