Deep Slumber, codename ISA, is a program made for the arm MBED during Hack The Burgh 2018 that analyses light, temperature, humidity and CO2 levels in a room. It uploads this information onto an SQL server through a rest API, providing the necessary environment for data processing. Further improvements we hope to provide are the regulation of said parameters by wifi connection to electric heaters, wifi enabled controllable lightbulbs and other iot gadgets as well as a website that will provide recommendations for sleep cycle improvements.

Dependencies:   C12832 CCS811 Sht31 TSL2561

Fork of ARM_HACK_THE_BURGH by Carey Williams

Files at this revision

API Documentation at this revision

Comitter:
mbed_official
Date:
Fri Sep 08 10:15:04 2017 +0100
Parent:
31:7b64fdf0b13b
Child:
33:12f0df4d51d7
Commit message:
Add compiler check for Morpho form factor

.
Commit copied from https://github.com/ARMmbed/mbed-os-example-wifi

Changed in this revision

README.md Show annotated file Show diff for this revision Revisions of this file
esp8266-mbedignore Show annotated file Show diff for this revision Revisions of this file
idw01m1-mbedignore Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed_app.json Show annotated file Show diff for this revision Revisions of this file
wifi-x-nucleo-idw01m1.lib Show annotated file Show diff for this revision Revisions of this file
--- a/README.md	Thu Aug 31 15:45:04 2017 +0100
+++ b/README.md	Fri Sep 08 10:15:04 2017 +0100
@@ -12,50 +12,62 @@
 
 * [UBLOX Odin board](https://developer.mbed.org/platforms/ublox-EVK-ODIN-W2/) built-in WiFi module
 * [REALTEK_RTL8195AM](https://developer.mbed.org/platforms/REALTEK-RTL8195AM/) built-in WiFi module
+* [NUCLEO_F401RE](https://developer.mbed.org/platforms/ST-Nucleo-F401RE/) with [X-NUCLEO-IDW01M1](https://developer.mbed.org/components/X-NUCLEO-IDW01M1/) WiFi expansion board using pins D8 D2
 * [NUCLEO_F429ZI](https://developer.mbed.org/platforms/ST-Nucleo-F429ZI/) with ESP8266-01 module using pins D1 D0
 * [NUCLEO_L476RG](https://developer.mbed.org/platforms/ST-Nucleo-L476RG/) with ESP8266-01 module using pins D8 D2
-* Other mbed target with ESP2866 module (Board it's connected to shouldn't have other network interface eg. Ethernet)
+* Other mbed targets with ESP8266 module or [X-NUCLEO-IDW01M1](https://developer.mbed.org/components/X-NUCLEO-IDW01M1/) expansion board
+  *(the mbed target board the WiFi shield gets connected to shouldn't have any other network interface e.g. Ethernet)*
 
-ESP2866 is a fallback option and will be used if the build is for unsupported platform.
+ESP8266 is a fallback option and will be used if the build is for unsupported platform.
 
-#### Connecting the ESP2866 ####
-
+#### Connecting the ESP8266 ####
 To connect the ESP8266 module to your development board, look at the [ESP8266 Cookbook page](https://developer.mbed.org/users/4180_1/notebook/using-the-esp8266-with-the-mbed-lpc1768/). In general, this means hooking up the ESP8266 TX pin to `D0` and the ESP8266 RX pin to `D1` on your development board.
 
-**Note on NUCLEO boards:** On the NUCLEO boards, pins `D0` and `D1` are used for serial communication with the computer. Use pins `D8` (to ESP8266 TX) and `D2` (to ESP8266 RX) instead.
+**Note:** on NUCLEO development boards, pins `D0` and `D1` are used for serial communication with the computer. Use pins `D8` (to ESP8266 TX) and `D2` (to ESP8266 RX) instead.
+
+#### Connecting the X-NUCLEO-IDW01M1 ####
+To connect the [X-NUCLEO-IDW01M1](https://developer.mbed.org/components/X-NUCLEO-IDW01M1/) expansion board to your NUCLEO development board, just plug the expansion board on top of the NUCLEO board using the Morpho connector.
 
 ##  Getting started
 
 1. Import the example
 
-  ```
-  mbed import mbed-os-example-wifi
-  cd mbed-os-example-wifi
-  ```
-2. Configure the WiFi credentials
+   ```
+   mbed import mbed-os-example-wifi
+   cd mbed-os-example-wifi
+   ```
+2. Configure the WiFi shield to use
 
-  Edit ```mbed_app.json``` to include correct SSID and Password:
+   Edit ```mbed_app.json``` to include correct WiFi shield, SSID and Password:
 
-  ```
-      "config": {
-          "wifi-ssid": {
-              "help": "WiFi SSID",
-              "value": "\"SSID\""
-          },
-          "wifi-password": {
-              "help": "WiFi Password",
-              "value": "\"Password\""
-          }
-      },
-  ```
+   ```
+       "config": { 
+ 	  "wifi-shield": {
+               "help": "Options are WIFI_ESP8266, WIFI_IDW01M1",
+               "value": "WIFI_IDW01M1"
+        	  },
+           "wifi-ssid": {
+               "help": "WiFi SSID",
+               "value": "\"SSID\""
+           },
+           "wifi-password": {
+               "help": "WiFi Password",
+               "value": "\"Password\""
+           }
+       },
+   ```
 
-3. Compile and generate binary
-
-  For example, for `GCC`:
+3. Copy the respective _ignore_ file to `.mbedignore`
+   * Copy `esp8266-mbedignore` when using ESP8266 module.
+   * Copy `idw01m1-mbedignore` when using [X-NUCLEO-IDW01M1](https://developer.mbed.org/components/X-NUCLEO-IDW01M1/) expansion board.
+  
+4. Compile and generate binary
 
-  ```
-  mbed compile -t GCC_ARM -m UBLOX_EVK_ODIN_W2
-  ```
+   For example, for `GCC`:
+
+   ```
+   mbed compile -t GCC_ARM -m UBLOX_EVK_ODIN_W2
+   ```
 
 ## Documentation ##
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/esp8266-mbedignore	Fri Sep 08 10:15:04 2017 +0100
@@ -0,0 +1,1 @@
+wifi-x-nucleo-idw01m1/*
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idw01m1-mbedignore	Fri Sep 08 10:15:04 2017 +0100
@@ -0,0 +1,1 @@
+esp8266-driver/*
--- a/main.cpp	Thu Aug 31 15:45:04 2017 +0100
+++ b/main.cpp	Fri Sep 08 10:15:04 2017 +0100
@@ -17,6 +17,9 @@
 #include "mbed.h"
 #include "TCPSocket.h"
 
+#define WIFI_ESP8266    1
+#define WIFI_IDW01M1    2
+
 #if TARGET_UBLOX_EVK_ODIN_W2
 #include "OdinWiFiInterface.h"
 OdinWiFiInterface wifi;
@@ -26,14 +29,25 @@
 RTWInterface wifi;
 
 #else
+#if MBED_CONF_APP_WIFI_SHIELD == WIFI_ESP8266
+#if !TARGET_FF_MORPHO
+#error [NOT_SUPPORTED] Only Morpho form factor devices are supported for this shield at this time
+#endif // !TARGET_FF_MORPHO
+#else
 #if !TARGET_FF_ARDUINO
-#error [NOT_SUPPORTED] Only Arduino form factor devices are supported at this time
-#endif
+#error [NOT_SUPPORTED] Only Arduino form factor devices are supported for this shield at this time
+#endif // !TARGET_FF_ARDUINO
+#endif // MBED_CONF_APP_WIFI_SHIELD != WIFI_ESP8266
 
+#if MBED_CONF_APP_WIFI_SHIELD == WIFI_ESP8266
 #include "ESP8266Interface.h"
 ESP8266Interface wifi(MBED_CONF_APP_WIFI_TX, MBED_CONF_APP_WIFI_RX);
+#elif MBED_CONF_APP_WIFI_SHIELD == WIFI_IDW01M1
+#include "SpwfSAInterface.h"
+SpwfSAInterface wifi(MBED_CONF_APP_WIFI_TX, MBED_CONF_APP_WIFI_RX);
+#endif // MBED_CONF_APP_WIFI_SHIELD == WIFI_IDW01M1
 
-#endif
+#endif // TARGET_UBLOX_EVK_ODIN_W2
 
 const char *sec2str(nsapi_security_t sec)
 {
--- a/mbed_app.json	Thu Aug 31 15:45:04 2017 +0100
+++ b/mbed_app.json	Fri Sep 08 10:15:04 2017 +0100
@@ -1,5 +1,9 @@
 {
     "config": {
+	"wifi-shield": {
+            "help": "Options are WIFI_ESP8266, WIFI_IDW01M1",
+            "value": "WIFI_IDW01M1"
+	},
         "wifi-ssid": {
             "help": "WiFi SSID",
             "value": "\"SSID\""
@@ -24,6 +28,10 @@
         "NUCLEO_L476RG": {
             "wifi-tx": "D8",
             "wifi-rx": "D2"
+        },
+        "NUCLEO_F401RE": {
+            "wifi-tx": "D8",
+            "wifi-rx": "D2"
         }
     }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wifi-x-nucleo-idw01m1.lib	Fri Sep 08 10:15:04 2017 +0100
@@ -0,0 +1,1 @@
+https://github.com/ARMmbed/wifi-x-nucleo-idw01m1/#6ec4ac4a662fae9cca087dc3b57395da950a1ba5
\ No newline at end of file