ssc-wifi application

Dependencies:   DHT esp8266-driver

Committer:
drrrnino7
Date:
Tue Nov 07 03:57:05 2017 +0000
Revision:
4:7161fd64b2ef
Parent:
3:97041d02648e
Add DHT Sensor logic

Who changed what in which revision?

UserRevisionLine numberNew contents of line
drrrnino7 0:6f274a82671c 1 #include "mbed.h"
drrrnino7 0:6f274a82671c 2
drrrnino7 1:be7ba474fb5f 3 #if defined(FEATURE_COMMON_PAL)
drrrnino7 1:be7ba474fb5f 4 #include "mbed_trace.h"
drrrnino7 1:be7ba474fb5f 5 #define TRACE_GROUP "APPL"
drrrnino7 1:be7ba474fb5f 6 #else
drrrnino7 1:be7ba474fb5f 7 #define tr_debug(...) (void(0)) //dummies if feature common pal is not added
drrrnino7 1:be7ba474fb5f 8 #define tr_info(...) (void(0)) //dummies if feature common pal is not added
drrrnino7 1:be7ba474fb5f 9 #define tr_error(...) (void(0)) //dummies if feature common pal is not added
drrrnino7 1:be7ba474fb5f 10 #endif //defined(FEATURE_COMMON_PAL)
drrrnino7 1:be7ba474fb5f 11
drrrnino7 3:97041d02648e 12 #define TW_TCP_TEST_DEVICE_NO 1
drrrnino7 1:be7ba474fb5f 13 #define TW_TCP_TEST_SERVER_IP "1.221.6.243"
drrrnino7 1:be7ba474fb5f 14 #define TW_TCP_TEST_SERVER_PORT 41112
drrrnino7 1:be7ba474fb5f 15
drrrnino7 4:7161fd64b2ef 16 DigitalOut led(PA_5);
drrrnino7 4:7161fd64b2ef 17
drrrnino7 1:be7ba474fb5f 18 #include "ESP8266Interface.h"
drrrnino7 1:be7ba474fb5f 19 ESP8266Interface wifi(PC_4, PC_5);
drrrnino7 1:be7ba474fb5f 20
drrrnino7 4:7161fd64b2ef 21 #include "DHT.h"
drrrnino7 4:7161fd64b2ef 22 DHT sensor(PC_2, DHT11);
drrrnino7 4:7161fd64b2ef 23
drrrnino7 3:97041d02648e 24 const char *sec2str(nsapi_security_t sec)
drrrnino7 3:97041d02648e 25 {
drrrnino7 3:97041d02648e 26 switch (sec) {
drrrnino7 3:97041d02648e 27 case NSAPI_SECURITY_NONE:
drrrnino7 3:97041d02648e 28 return "None";
drrrnino7 3:97041d02648e 29 case NSAPI_SECURITY_WEP:
drrrnino7 3:97041d02648e 30 return "WEP";
drrrnino7 3:97041d02648e 31 case NSAPI_SECURITY_WPA:
drrrnino7 3:97041d02648e 32 return "WPA";
drrrnino7 3:97041d02648e 33 case NSAPI_SECURITY_WPA2:
drrrnino7 3:97041d02648e 34 return "WPA2";
drrrnino7 3:97041d02648e 35 case NSAPI_SECURITY_WPA_WPA2:
drrrnino7 3:97041d02648e 36 return "WPA/WPA2";
drrrnino7 3:97041d02648e 37 case NSAPI_SECURITY_UNKNOWN:
drrrnino7 3:97041d02648e 38 default:
drrrnino7 3:97041d02648e 39 return "Unknown";
drrrnino7 3:97041d02648e 40 }
drrrnino7 3:97041d02648e 41 }
drrrnino7 3:97041d02648e 42
drrrnino7 3:97041d02648e 43 void scan_demo(WiFiInterface *wifi)
drrrnino7 3:97041d02648e 44 {
drrrnino7 3:97041d02648e 45 WiFiAccessPoint *ap;
drrrnino7 3:97041d02648e 46
drrrnino7 3:97041d02648e 47 tr_info("Scan:\r\n");
drrrnino7 3:97041d02648e 48
drrrnino7 3:97041d02648e 49 int count = wifi->scan(NULL,0);
drrrnino7 3:97041d02648e 50
drrrnino7 3:97041d02648e 51 /* Limit number of network arbitrary to 15 */
drrrnino7 3:97041d02648e 52 count = count < 15 ? count : 15;
drrrnino7 3:97041d02648e 53
drrrnino7 3:97041d02648e 54 ap = new WiFiAccessPoint[count];
drrrnino7 3:97041d02648e 55 count = wifi->scan(ap, count);
drrrnino7 3:97041d02648e 56 for (int i = 0; i < count; i++)
drrrnino7 3:97041d02648e 57 {
drrrnino7 3:97041d02648e 58 tr_info("Network: %s secured: %s BSSID: %hhX:%hhX:%hhX:%hhx:%hhx:%hhx RSSI: %hhd Ch: %hhd\r\n", ap[i].get_ssid(),
drrrnino7 3:97041d02648e 59 sec2str(ap[i].get_security()), ap[i].get_bssid()[0], ap[i].get_bssid()[1], ap[i].get_bssid()[2],
drrrnino7 3:97041d02648e 60 ap[i].get_bssid()[3], ap[i].get_bssid()[4], ap[i].get_bssid()[5], ap[i].get_rssi(), ap[i].get_channel());
drrrnino7 3:97041d02648e 61 }
drrrnino7 3:97041d02648e 62 tr_info("%d networks available.\r\n", count);
drrrnino7 3:97041d02648e 63
drrrnino7 3:97041d02648e 64 delete[] ap;
drrrnino7 3:97041d02648e 65 }
drrrnino7 1:be7ba474fb5f 66
drrrnino7 0:6f274a82671c 67 int main()
drrrnino7 0:6f274a82671c 68 {
drrrnino7 3:97041d02648e 69 TCPSocket tcp_socket;
drrrnino7 3:97041d02648e 70
drrrnino7 3:97041d02648e 71 printf("\r\nSSU Temperature/Humidity WiFi Comm Board\r\n");
drrrnino7 3:97041d02648e 72 mbed_trace_init();
drrrnino7 3:97041d02648e 73
drrrnino7 3:97041d02648e 74 int ret;
drrrnino7 3:97041d02648e 75 tr_info("WiFi Connecting...");
drrrnino7 3:97041d02648e 76 while(wifi.connect(MBED_CONF_APP_WIFI_SSID, MBED_CONF_APP_WIFI_PASSWORD, NSAPI_SECURITY_WPA_WPA2) != 0) {
drrrnino7 3:97041d02648e 77 tr_err("WiFi Connection error, Retry");
drrrnino7 3:97041d02648e 78 }
drrrnino7 3:97041d02648e 79
drrrnino7 3:97041d02648e 80 tr_info("Successfully connected to WiFi AP");
drrrnino7 3:97041d02648e 81 tr_debug("MAC: %s", wifi.get_mac_address());
drrrnino7 3:97041d02648e 82 tr_debug("IP: %s", wifi.get_ip_address());
drrrnino7 3:97041d02648e 83 tr_debug("Netmask: %s", wifi.get_netmask());
drrrnino7 3:97041d02648e 84 tr_debug("Gateway: %s", wifi.get_gateway());
drrrnino7 3:97041d02648e 85 tr_debug("RSSI: %d", wifi.get_rssi());
drrrnino7 3:97041d02648e 86
drrrnino7 3:97041d02648e 87 tr_info("Create WiFi TCP Socket");
drrrnino7 3:97041d02648e 88 if((ret = tcp_socket.open(&wifi)) < 0) {
drrrnino7 3:97041d02648e 89 tr_err("Error: Cannot Open UDP Socket (err code:%d)", ret);
drrrnino7 3:97041d02648e 90 NVIC_SystemReset();
drrrnino7 3:97041d02648e 91 }
drrrnino7 3:97041d02648e 92 tr_info("Successfully created WiFi TCP Socket");
drrrnino7 3:97041d02648e 93
drrrnino7 0:6f274a82671c 94 while(1) {
drrrnino7 4:7161fd64b2ef 95 int err;
drrrnino7 3:97041d02648e 96 float humid = 0.0f;
drrrnino7 3:97041d02648e 97 float temp = 0.0f;
drrrnino7 0:6f274a82671c 98
drrrnino7 3:97041d02648e 99 char json_buf[100];
drrrnino7 3:97041d02648e 100
drrrnino7 4:7161fd64b2ef 101 //Read Humid, Temp
drrrnino7 4:7161fd64b2ef 102 err = sensor.readData();
drrrnino7 4:7161fd64b2ef 103 if (err == 0) {
drrrnino7 4:7161fd64b2ef 104 humid = sensor.ReadHumidity();
drrrnino7 4:7161fd64b2ef 105 temp = sensor.ReadTemperature(CELCIUS);
drrrnino7 4:7161fd64b2ef 106
drrrnino7 4:7161fd64b2ef 107 tr_info("Humidity = %4.2f%% Temperature = %4.2fC", humid, temp);
drrrnino7 4:7161fd64b2ef 108 sprintf(json_buf, "{\r\n\t\"id\":%d,\r\n\t\"temp\":%f,\r\n\t\"humid\":%f\r\n}\r\n", TW_TCP_TEST_DEVICE_NO, temp, humid);
drrrnino7 4:7161fd64b2ef 109
drrrnino7 4:7161fd64b2ef 110 if((ret = tcp_socket.connect(TW_TCP_TEST_SERVER_IP, TW_TCP_TEST_SERVER_PORT)) < 0) {
drrrnino7 4:7161fd64b2ef 111 tr_err("Cannot connect to TCP Server");
drrrnino7 4:7161fd64b2ef 112 } else {
drrrnino7 4:7161fd64b2ef 113 if((ret = tcp_socket.send(json_buf, strlen(json_buf))) < 0) {
drrrnino7 4:7161fd64b2ef 114 tr_err("Cannot send to TCP Server");
drrrnino7 4:7161fd64b2ef 115 } else {
drrrnino7 4:7161fd64b2ef 116 tr_info("Sucessfully send TCP packet via WiFi");
drrrnino7 4:7161fd64b2ef 117 }
drrrnino7 4:7161fd64b2ef 118 }
drrrnino7 3:97041d02648e 119 } else {
drrrnino7 4:7161fd64b2ef 120 tr_err("Cannot Read Humid & Temp");
drrrnino7 3:97041d02648e 121 }
drrrnino7 3:97041d02648e 122
drrrnino7 4:7161fd64b2ef 123 led = !led;
drrrnino7 4:7161fd64b2ef 124 wait(5);
drrrnino7 0:6f274a82671c 125 }
drrrnino7 0:6f274a82671c 126 }