


#define HOST_NAME "api.heclouds.com" //定义域名,定义云端硬件编码。对于不同的硬件端,这里的DEVICEID不同#define DEVICEID "23343719"#define PROJECTID "102517"#define HOST_PORT (80)String apiKey="EvldL=Gho20lXXcXT0r=dCRxznk=";char buf[20];sensor_tem = SHT2x.readT() ; //读取温度 sensor_hum = SHT2x.readRH();//读取相对湿度 sensor_voi = analogRead(A0);//读取声音float temp= sensor_voi;sensor_voi=map(sensor_voi,0,1023,0,5);db = (20*log(10)) * (sensor_voi/1.0);//此处是想将声音传感器的信号转化为分贝,但是由于声音传感器敏感度较低,真正实现的时候并没有用这个数据 sensor_voi=temp;//重新使用声音传感器的原始数据sensor_pir=digitalRead(PIR_PIN);dtostrf(sensor_tem, 2, 1, sensor_tem_c);dtostrf(sensor_hum, 2, 1, sensor_hum_c);dtostrf(sensor_voi, 3, 1, sensor_voi_c);dtostrf(db,3,1,db_c);dtostrf( sensor_pir, 2, 1, sensor_pir_c);//将数据转化为字符串,便于上传// var length = app.globalData.voice.datapoints.length; //获得长度,以进行下一步处理 const voice_i=0.3; const PIR_i = 0.7;//声音和红外传感器的比例系数 const voice_rate =2; const PIR_rate = 100;//声音和红外传感器的放大系数,使数值判断更易 const judge_L=58;//超过这个值,显示现场人流较为拥挤 const judge_M = 40;//超过这个值,显示现场人流正常 var judge=0; for (var i = 0; i < length; i++) { voice=voice+parseFloat(app.globalData.voice.datapoints[i].value); PIR = PIR + parseFloat(app.globalData.PIR.datapoints[i].value); Humidity = Humidity + parseFloat(app.globalData.Humidity.datapoints[i].value); Temperature = Temperature + parseFloat(app.globalData.Temperature.datapoints[i].value); }//获得各个数据之和 voice =voice/length; PIR = PIR / length; Humidity = Humidity/length; app.globalData.Humidity =Humidity; Temperature = Temperature/length; app.globalData.in_temp = Temperature; app.globalData.in_humi = Humidity;//计算平均数,给全局变量赋值 judge = PIR * PIR_rate * PIR_i +voice*voice_rate*voice_i; //对红外线感应器和声音感应器的数据进行加权计算,获得判断依据


1. 人流检测
编程语言: C/C++(Arduino)
软件工具:Arduino IDE 1.6.9
创建时间:2018/03/14
| 作者: | 黄昱衡,宋岩熠,王振宁,汪博成 |
立即注册