一、前言
emmmm,我查了查我做的是,井盖侧翻,嗯,外加一些其他传感器,GPS等等吧。用的话,我这边依旧是准备是pico作为主控
二、设计构思
2.1 软件构思
- pico作为采集端,采集并整合好数据,通过NB-IOT进行传输到上位机,
- 上位机进行对采集过来的数据处理:1.百度地图显示,2. 判断是否需要报警 3. 数据记录(待定)
- 采集端所需要采集的数据有
1. 角度测量——MPU6050三轴传感器
2. 水位测量——超声波传稿器
3. 位置测量——gps+bds北斗双模模块
4. 甲烷气体浓度测量(待定:感觉测试起来很危险)——甲烷气体浓度传感器
2.2 硬件构思
- 井盖模型——刚刚查了查井盖模型,嗯,没有好操作的大小,需要自己用3D模型打印出来(这个应该最后再弄。需要根据最终传感器模型大小来定)
- pico主控,孤零零的,应该害需要画一个扩展板比较好,之后在画个小盒子,小盒子就不准备卡扣啥的榫卯结构了,直接热熔胶往死里怼就行。
扩展板、小盒子、井盖模型,这些都最后再画,前期还是主要是软件实现。
三、计划安排
第一阶段:材料购买,
(行了,写到这,老师给我发消 息了,说毕设选题不急,说课题预审完再弄,那就先这样吧)
(嗯,老师说,我的题目应该能过审,所以材料可以先)
东西,就都在这里
四、计划
花两天时间,把NB-IOT的搞定(想了想可能害需要一个usb转ttl做数据转串口的连接)
一天时间给三轴传感器(好像之前做过,刚刚看了看,之前也做过这个,就拿来看看)
一天时间给gps系统,(这个之前文章里也做过,明天需要到外面空地测试,不然没数据)
今天的话,就简单的对超声波模块、gps进行测试和资料整理
- 超声波模块测试正常
from machine import Pin import utime # 超声波测距,单位:厘米 def getDistance(trigger, echo): # 产生10us的方波 trigger.low() utime.sleep_us(2) trigger.high() utime.sleep_us(10) trigger.low() while echo.value() == 0: start = utime.ticks_us() while echo.value() == 1: end = utime.ticks_us() d = (end - start) * 0.0343 / 2 return d # 主程序 trigger = Pin(18, Pin.OUT) echo = Pin(26, Pin.IN) while True: distance = getDistance(trigger, echo) print("距离:{:.2f} cm".format(distance)) utime.sleep(1)
- mpu6050测试也正常
import machine import utime import imu i2c = machine.I2C(0, sda=machine.Pin(16), scl=machine.Pin(17), freq=400000) print("I2C addr: ", i2c.scan()[0]) sensor = imu.MPU6050(i2c) while True: #print(sensor.accel.xyz, sensor.gyro.xyz, sensor.temperature) print("加速度:{:7.2f}{:7.2f}{:7.2f} 陀螺仪:{:9.2f}{:9.2f}{:9.2f} 温度:{:5.1f}" \ .format(sensor.accel.x, sensor.accel.y, sensor.accel.z, \ sensor.gyro.x, sensor.gyro.y, sensor.gyro.z, \ sensor.temperature)) utime.sleep(1)