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:
Wed Oct 26 12:00:05 2016 +0100
Revision:
0:857719181846
Child:
1:aea78e21a7da
Initial commit
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 0:857719181846 21 #include "OdinWiFiInterface.h"
mbed_official 0:857719181846 22 OdinWiFiInterface wifi;
mbed_official 0:857719181846 23 #else
mbed_official 0:857719181846 24 #include "ESP8266Interface.h"
mbed_official 0:857719181846 25 ESP8266Interface wifi(D1, D0);
mbed_official 0:857719181846 26 #endif
mbed_official 0:857719181846 27
mbed_official 0:857719181846 28 const char *sec2str(nsapi_security_t sec)
mbed_official 0:857719181846 29 {
mbed_official 0:857719181846 30 switch (sec) {
mbed_official 0:857719181846 31 case NSAPI_SECURITY_NONE:
mbed_official 0:857719181846 32 return "None";
mbed_official 0:857719181846 33 case NSAPI_SECURITY_WEP:
mbed_official 0:857719181846 34 return "WEP";
mbed_official 0:857719181846 35 case NSAPI_SECURITY_WPA:
mbed_official 0:857719181846 36 return "WPA";
mbed_official 0:857719181846 37 case NSAPI_SECURITY_WPA2:
mbed_official 0:857719181846 38 return "WPA2";
mbed_official 0:857719181846 39 case NSAPI_SECURITY_WPA_WPA2:
mbed_official 0:857719181846 40 return "WPA/WPA2";
mbed_official 0:857719181846 41 case NSAPI_SECURITY_UNKNOWN:
mbed_official 0:857719181846 42 default:
mbed_official 0:857719181846 43 return "Unknown";
mbed_official 0:857719181846 44 }
mbed_official 0:857719181846 45 }
mbed_official 0:857719181846 46
mbed_official 0:857719181846 47 void scan_demo(WiFiInterface *wifi)
mbed_official 0:857719181846 48 {
mbed_official 0:857719181846 49 WiFiAccessPoint *ap;
mbed_official 0:857719181846 50
mbed_official 0:857719181846 51 printf("Scan:\r\n");
mbed_official 0:857719181846 52
mbed_official 0:857719181846 53 int count = wifi->scan(NULL,0);
mbed_official 0:857719181846 54
mbed_official 0:857719181846 55 /* Limit number of network arbitrary to 15 */
mbed_official 0:857719181846 56 count = count < 15 ? count : 15;
mbed_official 0:857719181846 57
mbed_official 0:857719181846 58 ap = new WiFiAccessPoint[count];
mbed_official 0:857719181846 59 count = wifi->scan(ap, count);
mbed_official 0:857719181846 60 for (int i = 0; i < count; i++)
mbed_official 0:857719181846 61 {
mbed_official 0:857719181846 62 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 63 sec2str(ap[i].get_security()), ap[i].get_bssid()[0], ap[i].get_bssid()[1], ap[i].get_bssid()[2],
mbed_official 0:857719181846 64 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 65 }
mbed_official 0:857719181846 66 printf("%d networks available.\r\n", count);
mbed_official 0:857719181846 67
mbed_official 0:857719181846 68 delete[] ap;
mbed_official 0:857719181846 69 }
mbed_official 0:857719181846 70
mbed_official 0:857719181846 71 void http_demo(NetworkInterface *net)
mbed_official 0:857719181846 72 {
mbed_official 0:857719181846 73 TCPSocket socket;
mbed_official 0:857719181846 74
mbed_official 0:857719181846 75 printf("Sending HTTP request to www.arm.com...\r\n");
mbed_official 0:857719181846 76
mbed_official 0:857719181846 77 // Open a socket on the network interface, and create a TCP connection to www.arm.com
mbed_official 0:857719181846 78 socket.open(net);
mbed_official 0:857719181846 79 socket.connect("www.arm.com", 80);
mbed_official 0:857719181846 80
mbed_official 0:857719181846 81 // Send a simple http request
mbed_official 0:857719181846 82 char sbuffer[] = "GET / HTTP/1.1\r\nHost: www.arm.com\r\n\r\n";
mbed_official 0:857719181846 83 int scount = socket.send(sbuffer, sizeof sbuffer);
mbed_official 0:857719181846 84 printf("sent %d [%.*s]\r\n", scount, strstr(sbuffer, "\r\n")-sbuffer, sbuffer);
mbed_official 0:857719181846 85
mbed_official 0:857719181846 86 // Recieve a simple http response and print out the response line
mbed_official 0:857719181846 87 char rbuffer[64];
mbed_official 0:857719181846 88 int rcount = socket.recv(rbuffer, sizeof rbuffer);
mbed_official 0:857719181846 89 printf("recv %d [%.*s]\r\n", rcount, strstr(rbuffer, "\r\n")-rbuffer, rbuffer);
mbed_official 0:857719181846 90
mbed_official 0:857719181846 91 // Close the socket to return its memory and bring down the network interface
mbed_official 0:857719181846 92 socket.close();
mbed_official 0:857719181846 93 }
mbed_official 0:857719181846 94
mbed_official 0:857719181846 95 int main()
mbed_official 0:857719181846 96 {
mbed_official 0:857719181846 97 printf("WiFi example\r\n\r\n");
mbed_official 0:857719181846 98
mbed_official 0:857719181846 99 scan_demo(&wifi);
mbed_official 0:857719181846 100
mbed_official 0:857719181846 101 printf("\r\nConnecting...\r\n");
mbed_official 0:857719181846 102 int ret = wifi.connect(MBED_CONF_APP_WIFI_SSID, MBED_CONF_APP_WIFI_PASSWORD, NSAPI_SECURITY_WPA_WPA2);
mbed_official 0:857719181846 103 if (ret != 0) {
mbed_official 0:857719181846 104 printf("\r\nConnection error\r\n");
mbed_official 0:857719181846 105 return -1;
mbed_official 0:857719181846 106 }
mbed_official 0:857719181846 107
mbed_official 0:857719181846 108 printf("Success\r\n\r\n");
mbed_official 0:857719181846 109 printf("MAC: %s\r\n", wifi.get_mac_address());
mbed_official 0:857719181846 110 printf("IP: %s\r\n", wifi.get_ip_address());
mbed_official 0:857719181846 111 printf("Netmask: %s\r\n", wifi.get_netmask());
mbed_official 0:857719181846 112 printf("Gateway: %s\r\n", wifi.get_gateway());
mbed_official 0:857719181846 113 printf("RSSI: %d\r\n\r\n", wifi.get_rssi());
mbed_official 0:857719181846 114
mbed_official 0:857719181846 115 http_demo(&wifi);
mbed_official 0:857719181846 116
mbed_official 0:857719181846 117 wifi.disconnect();
mbed_official 0:857719181846 118
mbed_official 0:857719181846 119 printf("\r\nDone\r\n");
mbed_official 0:857719181846 120 }