毕设(四)——传感器数据采集

简介: 毕设(四)——传感器数据采集

一、情况简述

现在就是准备把MPU6050gps定位模块超声波模块NB-LOT模块搭载到pico模块上,基于上一次智能垃圾桶的教训,我决定额外加个电池(一开始想的是太阳能板,但是我怕电压不够),接到pico的VSYS端口上

二、电源情况(待)

上面就是从左端输入的micro-usb的电压5V供电、再从VSYS进行额外输入

NB-LOT:5V、TXD与RXD

三、超声波+mpu6050

import machine
from machine import Pin
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)

# 超声波测距,单位:厘米
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:
    #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))
    distance = getDistance(trigger, echo)
    print("距离:{:.2f} cm".format(distance))
    utime.sleep(1)


四、gps对于$GNGGA的输出

不得不说,chatgpt是真好用

from machine import UART,Pin
#串口配置

uart0 = UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1))
while True:   
    while uart0.any() > 0:
        rxData_One = uart0.read()
        # 将接收到的数据按换行符分割成多行
        data_lines = rxData_One.split(b'\r\n')

        # 遍历每一行数据,找到包含 $GAGGA 的数据行
        for line in data_lines:
            if b'$GNGGA' in line:
                # 找到包含 $GNGGA 的数据行
                print("Found $GNGGA data line:")
                # print(line)
                # 转换成字符串
                str_data = line.decode('utf-8')
                print(str_data)


五、三个传感器一起输出

from machine import UART,Pin
import machine
import utime
import imu

uart0 = UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1))
i2c = machine.I2C(0, sda=machine.Pin(16), scl=machine.Pin(17), freq=400000)
# print("I2C addr: ", i2c.scan()[0])
sensor = imu.MPU6050(i2c)

# 主程序
trigger = Pin(18, Pin.OUT)
echo = Pin(26, Pin.IN)

# 超声波测距,单位:厘米
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


while True:
    while uart0.any() > 0:
        rxData_One = uart0.read()
        # 将接收到的数据按换行符分割成多行
        data_lines = rxData_One.split(b'\r\n')

        # 遍历每一行数据,找到包含 $GAGGA 的数据行
        for line in data_lines:
            if b'$GNGGA' in line:
                # 找到包含 $GNGGA 的数据行
                print("Found $GNGGA data line:")
                # print(line)
                str_data = line.decode('utf-8')
                print(str_data)
        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))
        distance = getDistance(trigger, echo)
        print("距离:{:.2f} cm".format(distance))
        utime.sleep(1)
相关文章
|
SQL Java Apache
skywalking 搭建(apache-skywalking-apm-es7-7.0.0)
skywalking 搭建(apache-skywalking-apm-es7-7.0.0)
796 0
|
12月前
|
大数据 数据处理 开发者
Python 判断for循环最后一次
Python 判断for循环最后一次
207 4
|
机器学习/深度学习 算法 开发工具
Python Web开发工具
Python Web开发工具
220 4
Python基础语法:运算符详解(算术运算符、比较运算符、逻辑运算符、赋值运算符)
运算符是Python编程中的重要组成部分,理解并熟练使用这些运算符有助于编写高效、简洁的代码。本文详细介绍了算术运算符、比较运算符、逻辑运算符和赋值运算符的使用方法,并通过综合示例展示了它们在实际编程中的应用。希望通过本文的介绍,您能更好地掌握Python中的运算符。
453 13
|
前端开发 JavaScript 数据可视化
Python+Dash快速web应用开发——基础概念篇
Python+Dash快速web应用开发——基础概念篇
399 3
|
存储 消息中间件 缓存
高速网络的未来:解析零拷贝Zero-Copy架构
高速网络的未来:解析零拷贝Zero-Copy架构
|
存储 JSON 数据格式
Flask 3 保姆级教程(一):快速上手
Flask 3 保姆级教程(一):快速上手
|
存储 SQL 安全
网络防线之钥:洞悉网络安全漏洞与加固信息防护
在数字化时代,数据成为了新石油,而网络安全则是保护这些宝贵资源不被非法开采的关键。本文将探讨网络安全中的漏洞问题、加密技术的应用以及提升个人和企业的安全意识。通过深入分析常见的安全威胁,我们揭示了网络攻击者的入侵手段,并提供了相应的防御策略。同时,文章还将讨论如何通过强化加密措施和提高整体的安全认知,来构建更为坚固的信息安全防线。
|
Java Go C语言
Go语言学习4-数组类型
本篇介绍 Go语言的数组类型
108 1
Go语言学习4-数组类型
|
Docker 容器
Docker(三):Docker镜像加速器和常用命令
Docker(三):Docker镜像加速器和常用命令
967 0
Docker(三):Docker镜像加速器和常用命令