STM32驱动超声波+OLED显示,并上传数据到云端(ONENET)

news2024/11/26 1:25:05

本文将介绍如何使用STM32F103C8T6单片机和HC-SR04超声波测距模块来实现测距功能,并通过0.96寸OLED屏幕显示测距结果。

首先,我们需要了解一下HC-SR04超声波测距模块的工作原理。该模块通过发送超声波脉冲并接收回波信号的时间来计算物体与模块之间的距离。具体实现过程如下:

  1. 发送一个10微秒的高电平脉冲至Trig引脚,该脉冲将触发模块发送一组8个40kHz的超声波脉冲。
  2. 当超声波脉冲发射后,模块将Echo引脚输出高电平,并持续时间与超声波传播路径的长度成正比。
  3. 使用STM32F103C8T6单片机的定时器(Timer)来测量Echo引脚输出高电平的时间,即为超声波传播路径的时间t。
  4. 计算物体与超声波模块之间的距离:距离 = t * 340m/s / 2,其中340m/s是声速,除以2是因为超声波信号从模块发出后需要返回。

接下来,我们需要连接硬件。

准备硬件:

1.HC-SR04超声波测距模块

2.stm32c8t6核心板

3.OLED屏幕(4个引脚的)。

4.ESP-01S,wifi模块

准备软件

1.keil5

2.串口助手

将的Trig引脚连接到STM32F103C8T6单片机的GPIO口(例如PB11),将Echo引脚连接到另一个GPIO口(例如PB10)。同时,将0.96寸OLED屏幕模块连接到单片机的I2C口(例如PA5和PA7)。

接下来我们需要在STM32F103C8T6单片机上编写程序。首先,我们需要定义一些参数:

 

后面主要是通过定时器4的中断处理

这是一个测量超声波传感器距离的函数。

函数使用HC-SR04超声波传感器进行测量,该传感器通过发送超声波脉冲并测量返回的回响时间来计算物体与传感器之间的距离。

在代码中,变量"t"保存回响时间,变量"lengthTemp"保存单次测量得到的距离值(以厘米为单位),变量"sum"保存多次测量时得到的距离值总和。 这个函数会进行5次测量,然后将这5次测量的平均值作为最终的距离值,并返回。

在主函数中,我们首先初始化GPIO口和I2C接口。然后进入一个无限循环中,在循环中发送超声波脉冲并使用定时器测量Echo引脚输出高电平的持续时间。最后,通过计算得到物体与模块之间的距离,并将其显示在OLED屏幕上。 需要注意的是,在程序中使用了延时函数和sprintf函数,需要自行实现或使用相应库函数。 以上就是使用STM32F103C8T6单片机和HC-SR04超声波测距模块实现测距功能,并通过0.96寸OLED屏幕显示测距结果的方法。

 直接找我要例程,对应的接上线,就可以复现一模一样的功能

上传数据到onenet

只需要在代码这样写就可以了  

 关于onenet上传数据的内容,可以看我其他的文章,都有写。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/525555.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++ STL 标准模板库介绍与入门

目录 1、概述 1.1、C 标准库 1.2、Boost库 2、STL 版本 2.1、HP 原始版本 2.2、P. J. 实现版本 2.3、RW 实现版本 2.4、SGI 实现版本 2.5、STLport 实现版本 3、STL 的六大组件 3.1、STL 六大组件构成 3.2、六大组件的交互关系 4、STL 的重要性 5、总结 VC常用功…

java spring MVC之RESTful快速开发

我这里有个一springboot项目 我在启动类同目录下创建了一个目录 目录名叫 controller 里面有一个UserController diam结构是这样的 package com.example.threshold.controller;import com.example.threshold.user; import org.springframework.stereotype.Controller; import…

平衡二叉树理论详解

文章目录 基本概念平衡二叉树插入结点LL(左单旋)RR(右单旋)LR(左右旋)RL(右左旋) 示例插入推导过程 基本概念 平衡二叉树是一棵空树或它的左右两个子树的高度差的绝对值不超过1&…

Maven ( 二 ) 项目应用

4.资源管理 4.0.pom.xml Maven的pom.xml是一个项目对象模型(Project Object Model)&#xff0c;它是Maven项目的构建文件。它描述了一个项目的基本信息&#xff0c;包括项目依赖、插件、仓库等信息。 下面是一个简单的pom.xml示例&#xff1a; <project xmlns"http…

深度学习用于医学预后-第二课第三周4-7节-关于事件的时间数据,认识处理删失数据

在本课中&#xff0c;我们将讨论生存数据。为了能够对生存进行建模&#xff0c;我们需要能够以我们可以处理的形式表示数据。 主要的挑战是删失数据&#xff0c;这是一种特殊形式的缺失数据。我们接下来将要研究这一点。 在这节课中&#xff0c;我们将谈论生存数据和删失。 …

LeetCode 96 不同的二叉搜索树

题目&#xff1a; 给你一个整数 n &#xff0c;求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种&#xff1f;返回满足题意的二叉搜索树的种数。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;5 示例 2&#xff1a; 输入&#xff1a;n 1 …

第七章:C语言的操作符

说起操作符大家都不陌生&#xff0c;从我们最初的 - c * / 加减乘除&#xff0c;到更加深奥的操作符&#xff0c;而今天我要有完整的系统来理清楚C语言的操作符到底有什么&#xff0c;和它们相关的用法&#xff0c;话不多说&#xff0c;直接走进今天的主题----C语言的操…

保护个人隐私和数据安全的方法与策略

引言 随着信息技术的普及和发展&#xff0c;我们享受到了便捷的互联网服务&#xff0c;但与此同时&#xff0c;个人隐私和数据安全问题也日益受到威胁。在这个所谓的"裸奔"时代&#xff0c;网络攻击、数据泄露和隐私侵犯已经成为常态。然而&#xff0c;我们并不无助…

sysfs文件系统

sysfs系统介绍 sysfs系统sysfs系统是什么&#xff1f;koject的内核对象模型基础kobject结构体定义kest bus如何管理driver和devicebus_type 结构体 小知识什么是挂载mount命令 &#x1f4cc;————本章重点————&#x1f4cc; &#x1f517;了解sysfs系统概念; &#x1f5…

布谷鸟hash算法的并行化实现(一)

由于本人最近在写一个项目&#xff0c;为了实现数据查找以及数据修改部分的快速操作&#xff0c;所以采用hash对数据进行存储&#xff0c;而在此过程中接触到了布谷鸟hash&#xff0c;觉得这个hash算法还是很有意思并且高效&#xff0c;所以想着进行一些记录&#xff0c;本系列…

一文带你快速掌握如何读懂 YonBuilder移动开发 的项目源码

本文将通过四大步的简单讲述&#xff0c;让新手开发者朋友们快速掌握阅读YonBuilder移动开发项目源码的技巧方法。 1.读懂代码的第一步&#xff0c;了解项目的整体文件结构 CSS: 存放css样式的文件&#xff1b; feature&#xff1a;猜测是用来存放特征文件的&#xff0c;实际…

了解投影坐标系统,并在精美的地图上探索

投影坐标系简介 地球椭球体表面也是个曲面&#xff0c;而我们日常生活中的地图及量测空间通常是二维平面&#xff0c;因此在地图制图和线性量测时首先要考虑把曲面转化成平面。由于球面上任何一点的位置是用地理坐标&#xff08;λ&#xff0c;φ&#xff09;表示的&#xff0…

计算机三级网络技术总结(更新中)

&#x1f37f;*★,*:.☆(&#xffe3;▽&#xffe3;)/$:*.★* &#x1f37f; &#x1f35f;欢迎来到前端初见的博文&#xff0c;本文主要讲解我计算机三级网络技术&#x1f35f; &#x1f468;‍&#x1f527; 个人主页 : 前端初见 &#x1f95e;喜欢的朋友可以关注一下&#…

BEV专栏(二)从BEVFormer看BEV流程(下篇)

前言 书接上回&#xff0c;在上一篇文章中&#xff0c;我们介绍了BEVFormer这一先进的BEV算法。在本篇文章中&#xff0c;我们将深入探讨BEVFormer的实现细节&#xff0c;旨在帮助读者更深入地理解BEVFormer的工作原理和性能表现。 本教程禁止转载。同时&#xff0c;本教程来自…

【maven】自定义构建maven的jar包依赖

前言 自己定义自己的maven的jar包依赖&#xff0c;本地版本。 实现 pom.xml pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSche…

车载软件架构——闲聊几句AUTOSAR BSW(五)

我是穿拖鞋的汉子,魔都中坚持长期主义的工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 我们并不必要为了和谐,而时刻保持通情达理;我们需要具备的是,偶尔有肚量欣然承认在某些方面我们可能会有些不可理喻。该有主见的时候能掷地有声地镇得住场…

车载基础软件——基础软件验证平台(网络管理和诊断)

我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 我们并不必要为了和谐&#xff0c;而时刻保持通情达理&#xff1b;我们需要具备的是&#xff0c;偶尔有肚量欣然承…

部署packstack及问题总结

目录 一、部署packstack 1.1 简介 1.2 性能搭配 1.3 准备工作 1.4 安装 二、出现的问题 2.1 安装中断临时文件 2.2 提示某个安装包出错 2.3 leatherman版本太高 三、安装成功 一、部署packstack 1.1 简介 对于openstack初学者而言&#xff0c;传统部署openstack流程…

MQ-rabbitMQ_基础篇

MQ-rabbitMQ_基础篇 1.MQ1.1什么是MQ1,2应用 2.常见消息中间件协议&#xff08;模型&#xff09;2.1JMS模型&#xff08;协议&#xff09;2.2AMQP协议 3.RabbitMQ3.1六种工作模式3.1.1Hello Word简单模式3.1.2word queues 工作队列能者多劳 3.1.3Publish/Subscribe 发布与订阅模…

在SwissTargetsPrediction数据库中预测成分靶点

1.对筛选的多肽成分进行靶点预测&#xff1a; ①用Uniport中的蛋白进行一系列操作&#xff08;水解&#xff0c;挑选2~8短肽&#xff0c;活性预测&#xff0c;毒性&#xff0c;过敏性预测&#xff0c;胃肠吸收度&#xff0c;半衰期和苦味的预测、生物活性功能预测&#xff09;…