//ESP8266 //#include //#include //#define BrdMark "ESP8266" //const char *ap_id = "R60_8266_01"; //const char *ap_id = "R60_GERMAN"; // target - DOIT ESP32 DEVKIT V1 #include #include #define BrdMark "ESP32" #include // office server //#define WFSSID "TP-Link_7C38" //#define WFPSWD "36929092" // my home server #define WFSSID "Keenetic-6595" #define WFPSWD "1Q2w3e4r" // clinica WiFI //#define WFSSID "clinica" //#define WFPSWD "givemeaccessnow" // office WiFi //#define WFSSID "MediaMetrics_2.4g" //#define WFPSWD "germanklimenko" // German home //#define WFSSID "MTS_GPON_9f1ac0" //#define WFPSWD "D9a287k9" //const char* httpuri ="http://192.168.0.104:8080/pox"; //const char* httpuri ="http://192.168.3.14/pox"; const char* httpuri ="http://192.168.1.79/pox"; // home 25.03.2026 //const char* httpuri ="http://aim.kwam.ru:8080/pox"; //const char* httpuri ="http://195.201.126.70:8080/pox"; //const char* httpuri ="http://activity206.li.ru/cgi-bin/radar.sh"; // Владимир const char *ap_id = "R60_02"; #define LOOP_TIME 1000 bool wifi_started = false; // Serial2 #define RXD2 16 #define TXD2 17 #define BAUDRATE 115200 // MicRadar60 data block definitions #define BLK_HEAD_1 85 #define BLK_HEAD_2 170 #define DATA_READ_MAX_SIZE 64 #define DATA_BLOCK_LEN 10 #define DATA_BLOCK_MASK 89 // 0x59 #define DATA_BLOCK_MASK_POS 1 #define DATA_TYPE_MASK_POS 2 #define CMD_TYPE_MASK_POS 3 #define DATA_VALUE_POS 6 #define HEAR_RATE_MASK 133 // 0x85 #define BREATH_RATE_MASK 129 // 0x81 #define SLEEP_VALUE_MASK 132 // 0x84 #define HUMAN_DETECT_MASK 128 // 0x80 #define PARSE_DATA_COUNT 4 #define PARSE_DATA_COUNT 4 enum{ hr_pos=0, br_pos, mv_pos, dv_pos }; uint8_t k=0,f=0, rf=0, rpos=0, i, s, dl=0, b1; uint8_t data_read[DATA_READ_MAX_SIZE], data_updt_flag[PARSE_DATA_COUNT]; uint16_t data[PARSE_DATA_COUNT]; uint32_t t_last; void setup() { // Note the format for setting a serial port is as follows: Serial2.begin(baud-rate, protocol, RX pin, TX pin); Serial.begin(BAUDRATE); Serial2.begin(BAUDRATE, SERIAL_8N1, RXD2, TXD2); pinMode(LED_BUILTIN, OUTPUT); Serial.println("Serial Txd is on pin: "+String(TXD2)); Serial.println("Serial Rxd is on pin: "+String(RXD2)); Serial.printf("ESP32 Chip model = %s Rev %d\n", ESP.getChipModel(), ESP.getChipRevision()); Serial.print("Chip ID: "); Serial.println(ESP.getEfuseMac()); Serial.println("Start wifi "+String(millis())); wifi_started = startWiFiClient(); // time reading by firststart flag if(wifi_started){ Serial.println("wifi started "+String(millis())); digitalWrite(LED_BUILTIN, HIGH); delay(1000); digitalWrite(LED_BUILTIN, LOW); // Получение мирового времени Serial.print("Retrieving time: "); configTime(0, 0, "pool.ntp.org"); // get UTC time via NTP time_t now = time(nullptr); while (now < 24 * 3600) { //Serial.print("."); digitalWrite(LED_BUILTIN, HIGH); delay(20); digitalWrite(LED_BUILTIN, LOW); delay(80); now = time(nullptr); //pisk(1); } Serial.println(now); digitalWrite(LED_BUILTIN, HIGH); delay(200); digitalWrite(LED_BUILTIN, LOW); delay(200); digitalWrite(LED_BUILTIN, HIGH); delay(200); digitalWrite(LED_BUILTIN, LOW); delay(200); digitalWrite(LED_BUILTIN, HIGH); delay(200); digitalWrite(LED_BUILTIN, LOW); delay(200); }else{ Serial.println("can not started WiFi"); } for(i = 0; i=DATA_BLOCK_LEN){ //if(data_read[DATA_BLOCK_MASK_POS]==DATA_BLOCK_MASK){ /* if(data_read[DATA_TYPE_MASK_POS]==HUMAN_DETECT_MASK ){ //HUMAN_DETECT_MASK HEAR_RATE_MASK for(i=0;i= LOOP_TIME){ bool rez = sendData(); Serial.print("Heart rate: "); Serial.print(data[hr_pos]);Serial.print(" / ");Serial.print(data_updt_flag[hr_pos]); Serial.print(", Breath rate: "); Serial.print(data[br_pos]);Serial.print(" / ");Serial.print(data_updt_flag[br_pos]); Serial.print(", Distance: "); Serial.print(data[dv_pos]);Serial.print(" / ");Serial.print(data_updt_flag[dv_pos]); Serial.print(", Motion value: "); Serial.print(data[mv_pos]);Serial.print(" / ");Serial.print(data_updt_flag[mv_pos]); Serial.print(" | "); s = 0; for(i = 0; i100){return(false);} } Serial.println("Connected"); return(true); }