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

Committer:
mbed_official
Date:
Tue Feb 07 10:30:06 2017 +0000
Revision:
10:5b5beb106156
Parent:
1:aea78e21a7da
Child:
21:b2f2f6a840b4
Use mbed_app.json to define wifi pins

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

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 0:857719181846 1 /* WiFi Example
mbed_official 0:857719181846 2 * Copyright (c) 2016 ARM Limited
mbed_official 0:857719181846 3 *
mbed_official 0:857719181846 4 * Licensed under the Apache License, Version 2.0 (the "License");
mbed_official 0:857719181846 5 * you may not use this file except in compliance with the License.
mbed_official 0:857719181846 6 * You may obtain a copy of the License at
mbed_official 0:857719181846 7 *
mbed_official 0:857719181846 8 * http://www.apache.org/licenses/LICENSE-2.0
mbed_official 0:857719181846 9 *
mbed_official 0:857719181846 10 * Unless required by applicable law or agreed to in writing, software
mbed_official 0:857719181846 11 * distributed under the License is distributed on an "AS IS" BASIS,
mbed_official 0:857719181846 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
mbed_official 0:857719181846 13 * See the License for the specific language governing permissions and
mbed_official 0:857719181846 14 * limitations under the License.
mbed_official 0:857719181846 15 */
mbed_official 0:857719181846 16
mbed_official 0:857719181846 17 #include "mbed.h"
mbed_official 0:857719181846 18 #include "TCPSocket.h"
mbed_official 0:857719181846 19
mbed_official 0:857719181846 20 #if TARGET_UBLOX_EVK_ODIN_W2
mbed_official 1:aea78e21a7da 21 #include "OdinWiFiInterface.h"
mbed_official 1:aea78e21a7da 22 OdinWiFiInterface wifi;
mbed_official 10:5b5beb106156 23
mbed_official 0:857719181846 24 #else
mbed_official 1:aea78e21a7da 25 #if !TARGET_FF_ARDUINO
mbed_official 1:aea78e21a7da 26 #error [NOT_SUPPORTED] Only Arduino form factor devices are supported at this time
mbed_official 1:aea78e21a7da 27 #endif
mbed_official 1:aea78e21a7da 28 #include "ESP8266Interface.h"
mbed_official 10:5b5beb106156 29
mbed_official 10:5b5beb106156 30 ESP8266Interface wifi(MBED_CONF_APP_WIFI_TX, MBED_CONF_APP_WIFI_RX);
mbed_official 10:5b5beb106156 31
mbed_official 0:857719181846 32 #endif
mbed_official 0:857719181846 33
mbed_official 0:857719181846 34 const char *sec2str(nsapi_security_t sec)
mbed_official 0:857719181846 35 {
mbed_official 0:857719181846 36 switch (sec) {
mbed_official 0:857719181846 37 case NSAPI_SECURITY_NONE:
mbed_official 0:857719181846 38 return "None";
mbed_official 0:857719181846 39 case NSAPI_SECURITY_WEP:
mbed_official 0:857719181846 40 return "WEP";
mbed_official 0:857719181846 41 case NSAPI_SECURITY_WPA:
mbed_official 0:857719181846 42 return "WPA";
mbed_official 0:857719181846 43 case NSAPI_SECURITY_WPA2:
mbed_official 0:857719181846 44 return "WPA2";
mbed_official 0:857719181846 45 case NSAPI_SECURITY_WPA_WPA2:
mbed_official 0:857719181846 46 return "WPA/WPA2";
mbed_official 0:857719181846 47 case NSAPI_SECURITY_UNKNOWN:
mbed_official 0:857719181846 48 default:
mbed_official 0:857719181846 49 return "Unknown";
mbed_official 0:857719181846 50 }
mbed_official 0:857719181846 51 }
mbed_official 0:857719181846 52
mbed_official 0:857719181846 53 void scan_demo(WiFiInterface *wifi)
mbed_official 0:857719181846 54 {
mbed_official 0:857719181846 55 WiFiAccessPoint *ap;
mbed_official 0:857719181846 56
mbed_official 0:857719181846 57 printf("Scan:\r\n");
mbed_official 0:857719181846 58
mbed_official 0:857719181846 59 int count = wifi->scan(NULL,0);
mbed_official 0:857719181846 60
mbed_official 0:857719181846 61 /* Limit number of network arbitrary to 15 */
mbed_official 0:857719181846 62 count = count < 15 ? count : 15;
mbed_official 0:857719181846 63
mbed_official 0:857719181846 64 ap = new WiFiAccessPoint[count];
mbed_official 0:857719181846 65 count = wifi->scan(ap, count);
mbed_official 0:857719181846 66 for (int i = 0; i < count; i++)
mbed_official 0:857719181846 67 {
mbed_official 0:857719181846 68 printf("Network: %s secured: %s BSSID: %hhX:%hhX:%hhX:%hhx:%hhx:%hhx RSSI: %hhd Ch: %hhd\r\n", ap[i].get_ssid(),
mbed_official 0:857719181846 69 sec2str(ap[i].get_security()), ap[i].get_bssid()[0], ap[i].get_bssid()[1], ap[i].get_bssid()[2],
mbed_official 0:857719181846 70 ap[i].get_bssid()[3], ap[i].get_bssid()[4], ap[i].get_bssid()[5], ap[i].get_rssi(), ap[i].get_channel());
mbed_official 0:857719181846 71 }
mbed_official 0:857719181846 72 printf("%d networks available.\r\n", count);
mbed_official 0:857719181846 73
mbed_official 0:857719181846 74 delete[] ap;
mbed_official 0:857719181846 75 }
mbed_official 0:857719181846 76
mbed_official 0:857719181846 77 void http_demo(NetworkInterface *net)
mbed_official 0:857719181846 78 {
mbed_official 0:857719181846 79 TCPSocket socket;
mbed_official 0:857719181846 80
mbed_official 0:857719181846 81 printf("Sending HTTP request to www.arm.com...\r\n");
mbed_official 0:857719181846 82
mbed_official 0:857719181846 83 // Open a socket on the network interface, and create a TCP connection to www.arm.com
mbed_official 0:857719181846 84 socket.open(net);
mbed_official 0:857719181846 85 socket.connect("www.arm.com", 80);
mbed_official 0:857719181846 86
mbed_official 0:857719181846 87 // Send a simple http request
mbed_official 0:857719181846 88 char sbuffer[] = "GET / HTTP/1.1\r\nHost: www.arm.com\r\n\r\n";
mbed_official 0:857719181846 89 int scount = socket.send(sbuffer, sizeof sbuffer);
mbed_official 0:857719181846 90 printf("sent %d [%.*s]\r\n", scount, strstr(sbuffer, "\r\n")-sbuffer, sbuffer);
mbed_official 0:857719181846 91
mbed_official 0:857719181846 92 // Recieve a simple http response and print out the response line
mbed_official 0:857719181846 93 char rbuffer[64];
mbed_official 0:857719181846 94 int rcount = socket.recv(rbuffer, sizeof rbuffer);
mbed_official 0:857719181846 95 printf("recv %d [%.*s]\r\n", rcount, strstr(rbuffer, "\r\n")-rbuffer, rbuffer);
mbed_official 0:857719181846 96
mbed_official 0:857719181846 97 // Close the socket to return its memory and bring down the network interface
mbed_official 0:857719181846 98 socket.close();
mbed_official 0:857719181846 99 }
mbed_official 0:857719181846 100
mbed_official 0:857719181846 101 int main()
mbed_official 0:857719181846 102 {
mbed_official 0:857719181846 103 printf("WiFi example\r\n\r\n");
mbed_official 0:857719181846 104
mbed_official 0:857719181846 105 scan_demo(&wifi);
mbed_official 0:857719181846 106
mbed_official 0:857719181846 107 printf("\r\nConnecting...\r\n");
mbed_official 0:857719181846 108 int ret = wifi.connect(MBED_CONF_APP_WIFI_SSID, MBED_CONF_APP_WIFI_PASSWORD, NSAPI_SECURITY_WPA_WPA2);
mbed_official 0:857719181846 109 if (ret != 0) {
mbed_official 0:857719181846 110 printf("\r\nConnection error\r\n");
mbed_official 0:857719181846 111 return -1;
mbed_official 0:857719181846 112 }
mbed_official 0:857719181846 113
mbed_official 0:857719181846 114 printf("Success\r\n\r\n");
mbed_official 0:857719181846 115 printf("MAC: %s\r\n", wifi.get_mac_address());
mbed_official 0:857719181846 116 printf("IP: %s\r\n", wifi.get_ip_address());
mbed_official 0:857719181846 117 printf("Netmask: %s\r\n", wifi.get_netmask());
mbed_official 0:857719181846 118 printf("Gateway: %s\r\n", wifi.get_gateway());
mbed_official 0:857719181846 119 printf("RSSI: %d\r\n\r\n", wifi.get_rssi());
mbed_official 0:857719181846 120
mbed_official 0:857719181846 121 http_demo(&wifi);
mbed_official 0:857719181846 122
mbed_official 0:857719181846 123 wifi.disconnect();
mbed_official 0:857719181846 124
mbed_official 0:857719181846 125 printf("\r\nDone\r\n");
mbed_official 0:857719181846 126 }