parent
e7d210c8cc
commit
0f6b59f52d
|
@ -20,9 +20,9 @@ bool touch_STATE[4] = {0, 0, 0, 0}; // 定义按键触发对象状态变量初
|
||||||
|
|
||||||
const double min_voltage = 6; //电池检测最低电压
|
const double min_voltage = 6; //电池检测最低电压
|
||||||
double bat_voltage;
|
double bat_voltage;
|
||||||
|
double pressure_val = 0; //气压数据 如果设置初始值为-1则不检测气压 传感器强制执行
|
||||||
int running_type = 0; //运行状态 0不运行 1篮球 2摩托车 3汽车 4自行车 5自定义
|
int running_type = 0; //运行状态 0不运行 1篮球 2摩托车 3汽车 4自行车 5自定义
|
||||||
uint32_t running_time;
|
uint32_t running_time;
|
||||||
double pressure_val = -1; //气压数据 如果设置初始值为-1则不检测气压 传感器强制执行
|
|
||||||
int pressure_type[6] = {600000, 1305485, 3762277, 3839579, 5691781, 1305485}; //气压类型 0不运行 1篮球 2摩托车 3汽车 4自行车
|
int pressure_type[6] = {600000, 1305485, 3762277, 3839579, 5691781, 1305485}; //气压类型 0不运行 1篮球 2摩托车 3汽车 4自行车
|
||||||
float running_pressure_type;
|
float running_pressure_type;
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ double return_voltage_value(int pin_no)
|
||||||
tmp = tmp + analogRead(pin_no);
|
tmp = tmp + analogRead(pin_no);
|
||||||
}
|
}
|
||||||
avg = tmp / 50;
|
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
|
inputVoltage = ADCVoltage / (R2_VOLTAGE / (R1_VOLTAGE + R2_VOLTAGE)); // formula for calculating voltage in i.e. GND
|
||||||
return inputVoltage;
|
return inputVoltage;
|
||||||
}
|
}
|
||||||
|
@ -123,10 +123,50 @@ long readADC()
|
||||||
digitalWrite(clck, LOW);
|
digitalWrite(clck, LOW);
|
||||||
delayMicroseconds(1);
|
delayMicroseconds(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
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()
|
void setup()
|
||||||
{
|
{
|
||||||
delay(50);
|
delay(50);
|
||||||
|
@ -270,10 +310,6 @@ void loop()
|
||||||
{
|
{
|
||||||
ArduinoOTA.handle();
|
ArduinoOTA.handle();
|
||||||
|
|
||||||
ESP32Server.handleClient();
|
|
||||||
delay(2);
|
|
||||||
TenthSecondsSinceStartTask();
|
|
||||||
|
|
||||||
//触摸感应处理
|
//触摸感应处理
|
||||||
touchAttach(0, T4);
|
touchAttach(0, T4);
|
||||||
touchAttach(1, T3);
|
touchAttach(1, T3);
|
||||||
|
@ -346,15 +382,17 @@ void loop()
|
||||||
|
|
||||||
if ( pressure_val != -1) { //传感器正常
|
if ( pressure_val != -1) { //传感器正常
|
||||||
long adcValue = readADC();
|
long adcValue = readADC();
|
||||||
pressure_val = adcValue / 100000 * 0.0689476;
|
if(adcValue!=-1){
|
||||||
pressure_type[5] = running_pressure_type*100000 / 0.0689476;
|
pressure_val = adcValue/100000 * 0.0689476 - 0.23;
|
||||||
|
}
|
||||||
|
pressure_type[5] = (running_pressure_type + 0.23) * 100000 / 0.0689476;
|
||||||
|
|
||||||
if (adcValue > 600000 ) {
|
if (adcValue > 520000 ) {
|
||||||
Serial.print("ADC reading: ");
|
Serial.print("ADC reading:");
|
||||||
Serial.print(adcValue);
|
Serial.print(adcValue);
|
||||||
Serial.print("\t");
|
Serial.print("\t");
|
||||||
Serial.print(pressure_val);
|
Serial.print(pressure_val);
|
||||||
Serial.print("bar\t");
|
Serial.print(" bar\t");
|
||||||
Serial.println(pressure_type[5]);
|
Serial.println(pressure_type[5]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -370,7 +408,7 @@ void loop()
|
||||||
}
|
}
|
||||||
} else { //无传感器强制启动,设定时间1分钟停机
|
} else { //无传感器强制启动,设定时间1分钟停机
|
||||||
if (touch_STATE[0]) {
|
if (touch_STATE[0]) {
|
||||||
if ( ((millis() - running_time) / 1000) > 60 ){
|
if ( ((millis() - running_time) / 1000) > 60 ) {
|
||||||
touch_STATE[0] = 0;
|
touch_STATE[0] = 0;
|
||||||
delay(500);
|
delay(500);
|
||||||
digitalWrite(RelayPin[0], HIGH);
|
digitalWrite(RelayPin[0], HIGH);
|
||||||
|
@ -379,11 +417,15 @@ void loop()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TenthSecondsSinceStartTask();
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned long LastMillis = 0;
|
unsigned long LastMillis = 0;
|
||||||
void TenthSecondsSinceStartTask() //100ms
|
void TenthSecondsSinceStartTask() //100ms
|
||||||
{
|
{
|
||||||
|
ESP32Server.handleClient();
|
||||||
|
delay(2);
|
||||||
unsigned long CurrentMillis = millis();
|
unsigned long CurrentMillis = millis();
|
||||||
if (abs(int(CurrentMillis - LastMillis)) > 100)
|
if (abs(int(CurrentMillis - LastMillis)) > 100)
|
||||||
{
|
{
|
||||||
|
@ -391,6 +433,7 @@ void TenthSecondsSinceStartTask() //100ms
|
||||||
TenthSecondsSinceStart++;
|
TenthSecondsSinceStart++;
|
||||||
OnTenthSecond();
|
OnTenthSecond();
|
||||||
}
|
}
|
||||||
|
yield();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool battery_low = 0;
|
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)
|
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)
|
if (Operation % 3 == 0)
|
||||||
{ //重新设置传感器
|
{ //重新设置传感器
|
||||||
pressure_val =0;
|
pressure_val = 0;
|
||||||
pinMode(ndrdy, INPUT);
|
pinMode(ndrdy, INPUT);
|
||||||
digitalWrite(ndrdy, LOW);
|
digitalWrite(ndrdy, LOW);
|
||||||
|
|
||||||
pinMode(clck, OUTPUT);
|
pinMode(clck, OUTPUT);
|
||||||
digitalWrite(clck, LOW);
|
digitalWrite(clck, LOW);
|
||||||
|
|
||||||
while (digitalRead(ndrdy)) {}
|
while (digitalRead(ndrdy)) {}
|
||||||
while (!digitalRead(ndrdy)) {}
|
while (!digitalRead(ndrdy)) {}
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (Operation % 3 == 1)
|
else if (Operation % 3 == 1)
|
||||||
{
|
{
|
||||||
|
@ -535,6 +541,7 @@ void handleNotFound()
|
||||||
// 获取用户请求网址信息
|
// 获取用户请求网址信息
|
||||||
String webAddress = ESP32Server.uri();
|
String webAddress = ESP32Server.uri();
|
||||||
int AutheTimes = 0;
|
int AutheTimes = 0;
|
||||||
|
//Serial.println(pressure_val);
|
||||||
|
|
||||||
if (!ESP32Server.authenticate(username, userpassword)) //校验用户是否登录
|
if (!ESP32Server.authenticate(username, userpassword)) //校验用户是否登录
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue