parent
e7d210c8cc
commit
0f6b59f52d
|
@ -20,9 +20,9 @@ bool touch_STATE[4] = {0, 0, 0, 0}; // 定义按键触发对象状态变量初
|
|||
|
||||
const double min_voltage = 6; //电池检测最低电压
|
||||
double bat_voltage;
|
||||
double pressure_val = 0; //气压数据 如果设置初始值为-1则不检测气压 传感器强制执行
|
||||
int running_type = 0; //运行状态 0不运行 1篮球 2摩托车 3汽车 4自行车 5自定义
|
||||
uint32_t running_time;
|
||||
double pressure_val = -1; //气压数据 如果设置初始值为-1则不检测气压 传感器强制执行
|
||||
int pressure_type[6] = {600000, 1305485, 3762277, 3839579, 5691781, 1305485}; //气压类型 0不运行 1篮球 2摩托车 3汽车 4自行车
|
||||
float running_pressure_type;
|
||||
|
||||
|
@ -47,7 +47,7 @@ double return_voltage_value(int pin_no)
|
|||
tmp = tmp + analogRead(pin_no);
|
||||
}
|
||||
avg = tmp / 50;
|
||||
ADCVoltage = ((avg * 3.3) / (4095)) + 0.225;
|
||||
ADCVoltage = ((avg * 3.3) / (4095)) + 0.138;
|
||||
inputVoltage = ADCVoltage / (R2_VOLTAGE / (R1_VOLTAGE + R2_VOLTAGE)); // formula for calculating voltage in i.e. GND
|
||||
return inputVoltage;
|
||||
}
|
||||
|
@ -123,10 +123,50 @@ long readADC()
|
|||
digitalWrite(clck, LOW);
|
||||
delayMicroseconds(1);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
String TimeString(int TimeMillis) {
|
||||
|
||||
String stringTime;
|
||||
|
||||
stringTime += int(TimeMillis / 60 / 60);
|
||||
stringTime += ":";
|
||||
stringTime += int(TimeMillis / 60 % 60);
|
||||
stringTime += ":";
|
||||
stringTime += TimeMillis % 60;
|
||||
|
||||
return stringTime;
|
||||
}
|
||||
|
||||
String ProcessUpdate() //页面更新
|
||||
{
|
||||
//自动生成一串用“,”隔开的字符串。
|
||||
//HTML脚本会按照“, ”分割,形成一个字符串数组。
|
||||
//并把这个数组填个表格的相应部分。
|
||||
String ReturnString;
|
||||
if (touch_STATE[0]) {
|
||||
ReturnString += TimeString((millis() - running_time) / 1000);
|
||||
} else {
|
||||
ReturnString += "0";
|
||||
}
|
||||
ReturnString += ",";
|
||||
ReturnString += bat_voltage; //电压值
|
||||
ReturnString += ",";
|
||||
ReturnString += pressure_val; //气压值
|
||||
ReturnString += ",";
|
||||
ReturnString += touch_STATE[0]; //运行状态
|
||||
ReturnString += ",";
|
||||
ReturnString += running_type; //运行方式
|
||||
ReturnString += ",";
|
||||
ReturnString += running_pressure_type; //运行气压自定义
|
||||
ReturnString += ",";
|
||||
ReturnString += TimeString(millis() / 1000); //系统运行时间
|
||||
|
||||
Serial.println(ReturnString);
|
||||
return ReturnString;
|
||||
}
|
||||
|
||||
void setup()
|
||||
{
|
||||
delay(50);
|
||||
|
@ -270,10 +310,6 @@ void loop()
|
|||
{
|
||||
ArduinoOTA.handle();
|
||||
|
||||
ESP32Server.handleClient();
|
||||
delay(2);
|
||||
TenthSecondsSinceStartTask();
|
||||
|
||||
//触摸感应处理
|
||||
touchAttach(0, T4);
|
||||
touchAttach(1, T3);
|
||||
|
@ -346,15 +382,17 @@ void loop()
|
|||
|
||||
if ( pressure_val != -1) { //传感器正常
|
||||
long adcValue = readADC();
|
||||
pressure_val = adcValue / 100000 * 0.0689476;
|
||||
pressure_type[5] = running_pressure_type*100000 / 0.0689476;
|
||||
if(adcValue!=-1){
|
||||
pressure_val = adcValue/100000 * 0.0689476 - 0.23;
|
||||
}
|
||||
pressure_type[5] = (running_pressure_type + 0.23) * 100000 / 0.0689476;
|
||||
|
||||
if (adcValue > 600000 ) {
|
||||
Serial.print("ADC reading: ");
|
||||
if (adcValue > 520000 ) {
|
||||
Serial.print("ADC reading:");
|
||||
Serial.print(adcValue);
|
||||
Serial.print("\t");
|
||||
Serial.print(pressure_val);
|
||||
Serial.print("bar\t");
|
||||
Serial.print(" bar\t");
|
||||
Serial.println(pressure_type[5]);
|
||||
}
|
||||
|
||||
|
@ -370,7 +408,7 @@ void loop()
|
|||
}
|
||||
} else { //无传感器强制启动,设定时间1分钟停机
|
||||
if (touch_STATE[0]) {
|
||||
if ( ((millis() - running_time) / 1000) > 60 ){
|
||||
if ( ((millis() - running_time) / 1000) > 60 ) {
|
||||
touch_STATE[0] = 0;
|
||||
delay(500);
|
||||
digitalWrite(RelayPin[0], HIGH);
|
||||
|
@ -379,11 +417,15 @@ void loop()
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
TenthSecondsSinceStartTask();
|
||||
}
|
||||
|
||||
unsigned long LastMillis = 0;
|
||||
void TenthSecondsSinceStartTask() //100ms
|
||||
{
|
||||
ESP32Server.handleClient();
|
||||
delay(2);
|
||||
unsigned long CurrentMillis = millis();
|
||||
if (abs(int(CurrentMillis - LastMillis)) > 100)
|
||||
{
|
||||
|
@ -391,6 +433,7 @@ void TenthSecondsSinceStartTask() //100ms
|
|||
TenthSecondsSinceStart++;
|
||||
OnTenthSecond();
|
||||
}
|
||||
yield();
|
||||
}
|
||||
|
||||
bool battery_low = 0;
|
||||
|
@ -426,44 +469,7 @@ void OnTenthSecond() // 100ms 十分之一秒
|
|||
}
|
||||
|
||||
|
||||
String TimeString(int TimeMillis) {
|
||||
|
||||
String stringTime;
|
||||
|
||||
stringTime += int(TimeMillis / 60 / 60);
|
||||
stringTime += ":";
|
||||
stringTime += int(TimeMillis / 60 % 60);
|
||||
stringTime += ":";
|
||||
stringTime += TimeMillis % 60;
|
||||
|
||||
return stringTime;
|
||||
}
|
||||
|
||||
String ProcessUpdate() //页面更新
|
||||
{
|
||||
//自动生成一串用“,”隔开的字符串。
|
||||
//HTML脚本会按照“, ”分割,形成一个字符串数组。
|
||||
//并把这个数组填个表格的相应部分。
|
||||
String ReturnString;
|
||||
if (touch_STATE[0]) {
|
||||
ReturnString += TimeString((millis() - running_time) / 1000);
|
||||
} else {
|
||||
ReturnString += "0";
|
||||
}
|
||||
ReturnString += ",";
|
||||
ReturnString += bat_voltage; //电压值
|
||||
ReturnString += ",";
|
||||
ReturnString += pressure_val; //气压值
|
||||
ReturnString += ",";
|
||||
ReturnString += touch_STATE[0]; //运行状态
|
||||
ReturnString += ",";
|
||||
ReturnString += running_type; //运行方式
|
||||
ReturnString += ",";
|
||||
ReturnString += running_pressure_type; //运行气压自定义
|
||||
|
||||
//Serial.println(ReturnString);
|
||||
return ReturnString;
|
||||
}
|
||||
|
||||
void PocessControl(int DeviceType, int DeviceIndex, int Operation, float Operation2)
|
||||
{
|
||||
|
@ -475,16 +481,16 @@ void PocessControl(int DeviceType, int DeviceIndex, int Operation, float Operati
|
|||
|
||||
if (Operation % 3 == 0)
|
||||
{ //重新设置传感器
|
||||
pressure_val =0;
|
||||
pressure_val = 0;
|
||||
pinMode(ndrdy, INPUT);
|
||||
digitalWrite(ndrdy, LOW);
|
||||
|
||||
|
||||
pinMode(clck, OUTPUT);
|
||||
digitalWrite(clck, LOW);
|
||||
|
||||
|
||||
while (digitalRead(ndrdy)) {}
|
||||
while (!digitalRead(ndrdy)) {}
|
||||
|
||||
|
||||
}
|
||||
else if (Operation % 3 == 1)
|
||||
{
|
||||
|
@ -535,6 +541,7 @@ void handleNotFound()
|
|||
// 获取用户请求网址信息
|
||||
String webAddress = ESP32Server.uri();
|
||||
int AutheTimes = 0;
|
||||
//Serial.println(pressure_val);
|
||||
|
||||
if (!ESP32Server.authenticate(username, userpassword)) //校验用户是否登录
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue