原文:Hiking Tracker
在徒步旅行的时候获得罗盘航向,高度,温度,压力,湿度,时间,行程距离和GPS位置。
在这个项目中使用的东西
Arduino 101和Genuino 101 | ×1 | AA电池 | ×1 | 4xAA电池座 | ×1 | 配件Shiled | ×1 | Adafruit BMP180压力传感器 | ×1 | Adafruit Ultimate GPS模块 | ×1 | Adafruit - 3轴磁性传感器 | ×1 | Adafruit AM2320湿度传感器 | ×1 | Adafruit纽扣电池CR2012 | ×2 | 电阻10k | ×1 | 电阻3.9k | ×1 |
什么是远足追踪器?徒步追踪器是一种在远足期间感知徒步旅行者周围环境变化的装置。 我们的想法是得到温度,压力,湿度,海拔高度,位置,方向等的变化。这些提供了一些有趣的远足见解。 山区与海拔较低的地方相比,山区拥有寒冷,干燥,低密度的空气,许多人在那里很难呼吸。有些人会经历皮肤干燥。该设备让人们对徒步旅行感兴趣,了解他们自己的极限,还有到高海拔地方的乐趣。能够知道去高处是一件有趣的事情! 不仅是山脉,而且探索沼泽,沙漠,森林 - 每个都有其独特的环境特征,能够在旅途中监控环境,是了解自然的更好方式。
堆叠的图层
视频演示
传感器数据
第1步:硬件,哪个哪里适合?
这个项目有很多传感器 附加的带有屏蔽的板板子装有一些I2C设备: - LM75B温度感器,用于检测环境温度
- ADXL345 3轴加速度计,用于检测倾斜和重力
- DS3231高精度RTC,用于检测时间
- HMC5883 3轴磁传感器,用于感应罗盘航向
- AM2320湿度传感器,用于检测空气的%RH
- BMP180压力传感器,用于检测大气压力和海拔高度
- MTK3339 GPS传感器,用于感应位置和步行距离
在Arduino Uno上: - 3.9k+22k分压器,用于检测电池电压
- 1306 OLED用于查看数据
- 蜂鸣器发出警报声
- 此项目不使用RGB LED
- 不使用XBee接口,但Arduino D2,D3,D9,D10可以从这个接口引出来用于其他项目,D2连接到reset,这允许使用程序来复位Arduino!
- 不使用5向操纵杆
- 不使用101 pot
第2步:修改和连接硬件对Arduino Uno的修改很少。把它安装在带有螺钉支架和热熔胶的电池座上。
1/2 • 电池座顶部的Arduino
2/2•热熔胶
4AA电池和CR1220(用于RTC)安装在电池座上。
1/2 • 电池座带支架
2/2•用于RTC的纽扣电池CR1220
电池座和Arduino Uno板之间有一个空间,可以放置压力,湿度,磁性和GPS传感器。
1/2 • 放传感器的空间
2/2•传感器放置在Uno和电池组之间
I2C传感器焊接在一块万用板上并放置在这个空间中
1/2 • 压力,湿度,磁传感器连接在I2C通道上
2/2•I2C公共总线,用胶带绝缘
这些传感器连接到Arduino Uno底部:
I2C连接位置和传感器电源(将被焊接)
添加分压电路以测量4节AA电池的电池电压。
分压器焊接在电源连接器上
AA电池组电压检测线连到ADC A1:
ADC A1的分压器
未使用的操纵杆的引脚A5映射到ACD引脚A1。这就是操纵杆被拆除的原因。
5路操纵杆被移除
通过连接附件板上的一些焊盘(参考示意图)和焊接桥D2(用于软复位),可以在Xbee接口上使用Arduino的D3,D9,D10引脚。
1/2 • D9,D10引脚分支焊桥
2/2•D2,D3桥接
组件堆叠起来如下:
把它们放在一起!
- 顶层:Arduino上的附件板
- 中间层:其他传感器和GPS将介于Uno和Battery Case之间
- 底层:4节AA电池座,带电池
连接电路:
第3步:对设备进行编程Arduino IDEBuild 1.8.5用于编程。首先,使用库管理器包含或下载所有以下库。
添加库
通过在库管理器的搜索框中键入传感器的名称,将找到相应的库。
单击“安装”以添加新库
一些Accessory Shield库(请参阅参考资料)是通过zip.file选项添加的
使用库zip手动添加库
添加必要的库后,将检查每个传感器的示例代码,以找出相关传感器的API。 接下来,所有库头都包含在一个空的Arduino工程中。
头文件列表- math.h,inttypes.h,Wire.h,lm75.h,ADXL345.h,ChainableLED.h,U8glib.h,ds3231.h,Adafruit_Sensor.h,Adafruit_AM2320.h,Adafruit_BMP085_U.h,Adafruit_HMC5883_U.h,Adafruit_GPS.h
复制代码经过多次编辑,编译和调试(包括连接,我发现BMP180可以在没有Vcc的情况下工作,可能因为是I2C引脚的漏电)并上传 - 最后代码就绪了。
警告
气压与海拔高度
- 指南针代码没在程序中进行倾斜补偿,设备必须保持在水平面上。有一个固定的罗盘圆,其中有另一个可变半径圆。当设备倾斜时,内圈会增加。当它处于水平位置时(即加速度计的x和y分量几乎为0),内圆将减小到一个点。这是罗盘测量更准确的时候。
- 指南针指针偏角取决于地球磁场的位置和变化。这可能会受到太阳风暴的影响。如果考虑倾斜角度,罗盘将偏离几度。
找到您所在地区的赤纬:http://www.magnetic-declination.com - 指南针容易被附近的磁性物体干扰,如山上存在强磁性矿物质。
- 器件最小工作电压约为4.5伏。过低需要更换AA电池。
- 时间和日期是根据代码编程的,如果需要更换纽扣电池,则必须拔下插头电源插头。在代码中改成新时间,上传新程序改变时间。
- 在开发过程中,GPS模块不可用。因此,演示坐标放在Lat-Long中。如果有人希望复制此项目,则需要包含GPS库和相关代码。
- 加速度计和磁力计的XY平面可放置在PCB上。代码需要相应调整。
- 加速度计读数精度容易产生振动。建议在静止状态下使用该设备。
改进范围可以从固件方面进行改进,以获得更多功能: - 在EEPROM上定期记录参数
- 达到高度/位置里程碑时蜂鸣器警报会发出蜂鸣声
- 喝水提醒
- 请稍等提醒
- 低电量警报
- 低温,湿度警报
- 用于倾斜补偿的罗盘软件校准(三角函数)
- 通过Gateway应用程序使用GPS和物联网连接自动获取偏差
至于改进的硬件部分: - 用户输入开关用于设置时间,偏差等。
- 为设备定制3D外壳
- 使用可充电LiPo电池
- 单板紧凑型PCB设计,更便于携带
结论旅行和徒步旅行很酷,当你可以检查周围环境的变化时,它会让事情变得更有趣。特别是,在徒步旅行时,检查高度,湿度,压力和温度的变化。这个装置让你知道当你感到高原反应时的高度,你的皮肤干燥的湿度水平 - 这样的东西。虽然在电路布局和代码方面都有改进的余地,但是在进入荒野时拥有这样的小工具仍然很酷!
外部资源https://www.waveshare.com/wiki/Accessory_Shield
推荐硬件,以获得更好的本项目版本快速原型套件
原理图
代码
|