test
Dependencies: BH1750 DHT DS1820 W5500Interface MQ135 NTPClient SENSOR WebSocketClient mbed
main.cpp
00001 #include "mbed.h" 00002 #include "SENSOR.h" 00003 00004 #include "HTTPClient.h" 00005 #include "ESP8266Interface.h" 00006 #include "TCPSocketConnection.h" 00007 #include "Websocket.h" 00008 //#include "NTPClient.h" 00009 00010 #define SENSOR_ARRAY_SIZE 6 00011 00012 SENSOR *sensor_array[SENSOR_ARRAY_SIZE]; 00013 Serial pc(USBTX, USBRX); // tx, rx 00014 ESP8266Interface wifi(PA_11,PA_12,PB_12,"EE-mehrg7","MFPHOME0708",115200); // TX,RX,Reset,SSID,Password,Baud 00015 //NTPClient ntp; 00016 00017 00018 int main() { 00019 pc.baud(921600); 00020 00021 #if defined(TARGET_NUCLEO_F401RE) 00022 SPI spi(PB_15, PB_14, PB_13); // mosi, miso, sclk 00023 EthernetInterface eth(&spi, PB_1, PB_2); // spi, cs, reset 00024 #warning "setup for F401RE" 00025 #endif 00026 00027 //Create sensors 00028 // pc.printf("Creating sensor 0\n\r"); 00029 sensor_array[0] = new SENSOR( PB_9, PB_8, NC, NC, PA_0, PA_9); //I2C1,A0 00030 // pc.printf("Creating sensor 1\n\r"); 00031 sensor_array[1] = new SENSOR( PB_3, PB_10, NC, NC, PA_1, PC_7); //I2C2,A1 00032 // pc.printf("Creating sensor 2\n\r"); 00033 sensor_array[2] = new SENSOR( PB_4, PA_8, NC, NC, PA_4, PB_6); //I2C3,A2 00034 // pc.printf("Creating sensor 3\n\r"); 00035 sensor_array[3] = new SENSOR( PA_3, NC, NC, NC, PB_0, PA_7); //GPIO,A3 00036 // pc.printf("Creating sensor 4\n\r"); 00037 sensor_array[4] = new SENSOR( PA_2, NC, NC, NC, PC_1, PA_6); //GPIO,A4 00038 // pc.printf("Creating sensor 5\n\r"); 00039 sensor_array[5] = new SENSOR( PA_10, NC, NC, NC, PC_0, PA_5); //GPIO,A5 00040 00041 //Statically connect sensors 00042 // pc.printf("Connecting sensor 0\n\r"); 00043 // sensor_array[0]->detectSensor(BH1750_SENSOR); 00044 sensor_array[0]->detectSensor(NO_SENSOR); 00045 // pc.printf("Connecting sensor 1\n\r"); 00046 sensor_array[1]->detectSensor(NO_SENSOR); 00047 // sensor_array[1]->detectSensor(NO_SENSOR); 00048 // pc.printf("Connecting sensor 2\n\r"); 00049 sensor_array[2]->detectSensor(NO_SENSOR); 00050 // sensor_array[2]->detectSensor(NO_SENSOR); 00051 // pc.printf("Connecting sensor 3\n\r"); 00052 // sensor_array[3]->detectSensor(MQ135_SENSOR); 00053 sensor_array[3]->detectSensor(NO_SENSOR); 00054 // pc.printf("Connecting sensor 4\n\r"); 00055 sensor_array[4]->detectSensor(NO_SENSOR); 00056 // sensor_array[4]->detectSensor(ML8511_SENSOR); 00057 // pc.printf("Connecting sensor 5\n\r"); 00058 // sensor_array[5]->detectSensor(DHT11_SENSOR); 00059 sensor_array[5]->detectSensor(NO_SENSOR); 00060 00061 string sensor_reading; 00062 string sensor_logentry; 00063 sensorStatus sensor_status; 00064 sensorType sensor_type; 00065 00066 pc.printf("pre init eth\r\n", eth.getMACAddress()); 00067 eth.init("192.168.1.202", "255.255.255.0", "192.168.1.254"); //Use DHCP 00068 pc.printf("Initialized, MAC: %s\r\n", eth.getMACAddress()); 00069 eth.connect(); 00070 pc.printf("Connected, IP: %s, MASK: %s, GW: %s\r\n",eth.getIPAddress(), eth.getNetworkMask(), eth.getGateway()); 00071 00072 /* 00073 if (ntp.setTime("0.uk.pool.ntp.org") == 0) 00074 { 00075 time_t ctTime; 00076 ctTime = time(NULL); 00077 printf("Time is set to : %s \r\n", ctime(&ctTime)); 00078 } 00079 else 00080 { 00081 printf("Error getting time \r\n"); 00082 } 00083 wait(2); 00084 */ 00085 00086 pc.printf("trying to connect to ws://192.168.1.84:8000/\n\r"); 00087 Websocket ws("ws://192.168.1.84:8000/"); 00088 00089 if(!ws.connect()) { 00090 pc.printf("Failed to connect to ws://192.168.1.84:8000/\n\r"); 00091 } else { 00092 pc.printf("Starting reading sensor array\n\r"); 00093 00094 while(1) { 00095 for(int sensor_index = 0; sensor_index < SENSOR_ARRAY_SIZE; sensor_index++) { 00096 pc.printf("Reading sensor %d\n\r", sensor_index); 00097 sensor_type = sensor_array[sensor_index]->getSensorType(); 00098 pc.printf("Sensor type: %d\n\r", sensor_type); 00099 sensor_status = sensor_array[sensor_index]->readSensor(sensor_reading); 00100 pc.printf("Sensor status: %d\n\r", sensor_status); 00101 switch (sensor_status) { 00102 case SENSOR_SUCCESS: 00103 pc.printf("Reading sensor(%d) of type(%d), status(%d): %s\n\r", sensor_index, (int)sensor_type, (int)sensor_status, sensor_reading.c_str()); 00104 break; 00105 case SENSOR_UNCONNECTED: 00106 break; 00107 default: 00108 pc.printf("Problem reading (%d) of type(%d), status(%d): %s\n\r", sensor_index, (int)sensor_type, (int)sensor_status, sensor_reading.c_str()); 00109 break; 00110 break; 00111 } 00112 } 00113 pc.printf("send: %s\n\r", sensor_reading.c_str()); 00114 char msg[1000]; 00115 strcpy(msg, sensor_reading.c_str()); 00116 ws.send(msg); 00117 pc.printf("\n\r\n\r"); 00118 wait(1); 00119 } 00120 } 00121 00122 00123 ws.close(); 00124 00125 while(true) {} 00126 00127 }
Generated on Wed Jul 13 2022 12:08:01 by 1.7.2