ssc-wifi application
Dependencies: DHT esp8266-driver
main.cpp
- Committer:
- drrrnino7
- Date:
- 2017-11-07
- Revision:
- 4:7161fd64b2ef
- Parent:
- 3:97041d02648e
File content as of revision 4:7161fd64b2ef:
#include "mbed.h" #if defined(FEATURE_COMMON_PAL) #include "mbed_trace.h" #define TRACE_GROUP "APPL" #else #define tr_debug(...) (void(0)) //dummies if feature common pal is not added #define tr_info(...) (void(0)) //dummies if feature common pal is not added #define tr_error(...) (void(0)) //dummies if feature common pal is not added #endif //defined(FEATURE_COMMON_PAL) #define TW_TCP_TEST_DEVICE_NO 1 #define TW_TCP_TEST_SERVER_IP "1.221.6.243" #define TW_TCP_TEST_SERVER_PORT 41112 DigitalOut led(PA_5); #include "ESP8266Interface.h" ESP8266Interface wifi(PC_4, PC_5); #include "DHT.h" DHT sensor(PC_2, DHT11); const char *sec2str(nsapi_security_t sec) { switch (sec) { case NSAPI_SECURITY_NONE: return "None"; case NSAPI_SECURITY_WEP: return "WEP"; case NSAPI_SECURITY_WPA: return "WPA"; case NSAPI_SECURITY_WPA2: return "WPA2"; case NSAPI_SECURITY_WPA_WPA2: return "WPA/WPA2"; case NSAPI_SECURITY_UNKNOWN: default: return "Unknown"; } } void scan_demo(WiFiInterface *wifi) { WiFiAccessPoint *ap; tr_info("Scan:\r\n"); int count = wifi->scan(NULL,0); /* Limit number of network arbitrary to 15 */ count = count < 15 ? count : 15; ap = new WiFiAccessPoint[count]; count = wifi->scan(ap, count); for (int i = 0; i < count; i++) { tr_info("Network: %s secured: %s BSSID: %hhX:%hhX:%hhX:%hhx:%hhx:%hhx RSSI: %hhd Ch: %hhd\r\n", ap[i].get_ssid(), sec2str(ap[i].get_security()), ap[i].get_bssid()[0], ap[i].get_bssid()[1], ap[i].get_bssid()[2], ap[i].get_bssid()[3], ap[i].get_bssid()[4], ap[i].get_bssid()[5], ap[i].get_rssi(), ap[i].get_channel()); } tr_info("%d networks available.\r\n", count); delete[] ap; } int main() { TCPSocket tcp_socket; printf("\r\nSSU Temperature/Humidity WiFi Comm Board\r\n"); mbed_trace_init(); int ret; tr_info("WiFi Connecting..."); while(wifi.connect(MBED_CONF_APP_WIFI_SSID, MBED_CONF_APP_WIFI_PASSWORD, NSAPI_SECURITY_WPA_WPA2) != 0) { tr_err("WiFi Connection error, Retry"); } tr_info("Successfully connected to WiFi AP"); tr_debug("MAC: %s", wifi.get_mac_address()); tr_debug("IP: %s", wifi.get_ip_address()); tr_debug("Netmask: %s", wifi.get_netmask()); tr_debug("Gateway: %s", wifi.get_gateway()); tr_debug("RSSI: %d", wifi.get_rssi()); tr_info("Create WiFi TCP Socket"); if((ret = tcp_socket.open(&wifi)) < 0) { tr_err("Error: Cannot Open UDP Socket (err code:%d)", ret); NVIC_SystemReset(); } tr_info("Successfully created WiFi TCP Socket"); while(1) { int err; float humid = 0.0f; float temp = 0.0f; char json_buf[100]; //Read Humid, Temp err = sensor.readData(); if (err == 0) { humid = sensor.ReadHumidity(); temp = sensor.ReadTemperature(CELCIUS); tr_info("Humidity = %4.2f%% Temperature = %4.2fC", humid, temp); 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); if((ret = tcp_socket.connect(TW_TCP_TEST_SERVER_IP, TW_TCP_TEST_SERVER_PORT)) < 0) { tr_err("Cannot connect to TCP Server"); } else { if((ret = tcp_socket.send(json_buf, strlen(json_buf))) < 0) { tr_err("Cannot send to TCP Server"); } else { tr_info("Sucessfully send TCP packet via WiFi"); } } } else { tr_err("Cannot Read Humid & Temp"); } led = !led; wait(5); } }