08讲 | 基于STM32单片机NBIOT定位实战项目
前言
绘制基于 STM32 单片机的 NBIOT 实战开发板。
文章目录
- 前言
- 一、原理图
- 1、绘制
- 1)电源供电
- a、USB 转 TTL 电路
- b、锂电池充电管理电路
- c、3.3V电压转换电路
- d、一键开关机电路
- 2)单片机最小系统
- 3)ADC电压转换电路
- 4)NBIOT 模组串口电平转换电路
- 5)BC20 模组电路
- 6)SIM 卡物联网电路
- 7)项目整体原理图
- 2、原理图下载链接
- 1)PDF 格式
- 2)Altium Designer 格式
- 3)立创 eda 格式
- 二、PCB
- 1、图示
- 2、工程下载链接
- 1)立创 eda 格式
- 2)Altium Designer 格式
一、原理图
1、绘制
1)电源供电
a、USB 转 TTL 电路
-
USB 转 TTL 模块的作用就是把电平转换到双方都能识别进行通信。
-
单片机通信接口的电平逻辑和 PC 机通信接口的电平逻辑不同,PC机上的通信接口有USB接口,相应电平逻辑遵照USB原则;还有 DB9 接口(九针口),相应电平逻辑遵照RS-232原则。
-
单片机上的串行通信通过单片机的 RXD、TXD、VCC、GND 四个引脚,相应电平逻辑遵照TTL 原则。
-
供电分为USB供电和锂电池供电,USB供电可以给锂电池充电同时也可进行产品的调试,故需要一个USB转TTL电路。

b、锂电池充电管理电路

c、3.3V电压转换电路

d、一键开关机电路
- 当USB-5V不供电时,PMOS管G端电压为0,VBAT(锂离子电池供电电压最大为4.2V,最小为2.7V)通过PMOS管内部的二极管导通4.2V-0.1V=4.1V,S端电压为4.1V,PMOS管导通(区别NMOS)的条件时Vg-Vs<-0.7V(G端电压比S端电压小0.7伏以上或者1V以上),此时满足条件,PMOS导通,MOS管导通的时候相当于一根导线将内部的二极管短路,走上面VCC= VBAT,此时通过VBAT给后面的电路供电
- 当接入USB时5V输入,G端电压比S端电压大,故PMOS管不导通,S端电压通过二极管2电压为4.7V大于VBAT电压4.2V故MOS管内部的二极管也不导通,此时VBAT就不再给后面电路供电了,只通过USB给供电

- 按键实现开关机:当按键按下时,PMOS导通开始供电,当按键松开PMOS截至不供电,那要怎么保持住MOS管2G端的电压呢实现一键开机呢?

-
PWR_EN接单片机 的引脚,通过单片机高低电平控制三极管接通与否,当按键按下时,VCC有电,单片机开始工作运行程序将PWR_EN引脚置位高电平,三极管导通,放开按键,单片机保持运行,这样就实现了一键开机操作。
-
开机之后再怎么实现一键关机呢?现在我们的单片机检测不到按键按下的状态。SHUT_DOWN引脚接单片机的一个引脚,按键按下开机,SHUT_DOWN引脚检测到按键按下。按键再次按下,SHUT_DOWN引脚检测到按键再次按下,就可以实现关机了
2)单片机最小系统
- 单片机最小系统电路包括BOOT电路、复位电洛、下载接口、电源引脚BOOT引脚接GND之后单片机一上电就会运行我们下载进去的程序VDDA引脚是给单片机模拟器件(ADC)的电源供电引脚,VDD是给单片机数字电源的供电引脚。

3)ADC电压转换电路
- ADC引脚只支持0-3.3V的输入不能直接将VBAT(可能超过3.3V)直接接入过来,我们用电阻分压的方式,BAT_ADC_EN经过分压之后最大电压为(2.1V,VBAT4.2V)。R16上拉电阻,R17限流电阻。当电路板关机的时候如果不加PMOS,锂电池会接电阻一直耗电,接个PMOS避免过放,断电之后PMOS不接通。

4)NBIOT 模组串口电平转换电路
- NB模组的串口电压域为1.8V,而单片机的系统电压为3.3V,要想实现通信必须进行电平转换。
- 当单片机的TXD为高电平时(3.3V),三极管的E极为3.3V,B极为1.8V,三极管不导通,模组的RXD被上拉电阻上拉成高电平,故此时单片机发送高电平,模组接收为高电平。
当单片机的TXD发送低电平时(OV),三极管E极为OV,B极为1.8V,三极管导通,模组的RXD和TXD直连接都为OV低电平,故此时单片机发低电平,模组接收为低电平。


5)BC20 模组电路

6)SIM 卡物联网电路

7)项目整体原理图

2、原理图下载链接
1)PDF 格式
链接:https://pan.baidu.com/s/1BGQz7L04XPwBR3xKyptQMg?pwd=oald
提取码:oald
2)Altium Designer 格式
链接:https://pan.baidu.com/s/1D0AnsFHlAjxvL355ZUe-Ow?pwd=oald
提取码:oald
3)立创 eda 格式
链接:https://pan.baidu.com/s/1-qbmFcJq3dqdGbCxL_YmZQ?pwd=oald
提取码:oald
二、PCB
1、图示
2、工程下载链接
1)立创 eda 格式
链接:https://pan.baidu.com/s/1TBVdZX0XkEuBizLoK4FZdQ?pwd=oald
提取码:oald
2)Altium Designer 格式
链接:https://pan.baidu.com/s/1ctyMn7y-jCt2cmIG5eC6fQ?pwd=oald
提取码:oald
相关文章:

08讲 | 基于STM32单片机NBIOT定位实战项目
前言 绘制基于 STM32 单片机的 NBIOT 实战开发板。 文章目录前言一、原理图1、绘制1)电源供电a、USB 转 TTL 电路b、锂电池充电管理电路c、3.3V电压转换电路d、一键开关机电路2)单片机最小系统3)ADC电压转换电路4)NBIOT 模组串口电…...

提取接近竖直物体(粗定位)
由于项目的需要提取图像之中的一个接近于竖直的物体,一般的方法是进行图像分割,分割方式使用什么OTSU方式以及hsv方法等等。但是项目中使用的相机是黑白相机,会受到一定的限制。因此想到的是使用线条提取方式。线条提取方式之中最好的方法是使…...

程序环境和预处理
目录一、程序的翻译环境和执行环境二、编译链接2.1 翻译环境2.2 编译2.2.1 预处理2.2.2 编译2.2.3 汇编2.3 链接2.4 结果三、运行环境四、预处理详解4.1 #define4.1.1 #define定义标识符4.1.2 #define定义宏4.1.3 #define 替换规则4.1.4 #和##4.1.5 带副作用的宏参数4.1.6 宏和…...

财报解读:业务复苏迹象明显,中国中免能否重写增长神话?
2月3日,中国中免披露2022年度业绩快报,2022年总营收为544.63亿元,同比下降19.52%;实现归属于上市公司股东的净利润50.25亿元,同比下降47.95%。来源:中国中免2022年度业绩快报业绩近乎腰斩,但从长…...

macOS中虚拟机桥接模式分配静态ip
1.首先使用dhclient命令,在局域网中分配一个C类地址。 2.获得地址后,输入ifconfig,查看分配的地址。 3.然后编辑vi /etc/sysconfig/network-scripts/ifcfg-en***文件 在该配置文件中编辑,设置ONBOOTyes,而后添加静态配…...

prometheus increase函数统计得到小数
今天发现prometheus的increase函数得到了小数,研究一下源码,以下是rate/increase/delta 对应的计算函数https://github.com/prometheus/prometheus/blob/d77b56e88e3d554a499e22d2073812b59191256c/promql/functions.go#L55// extrapolatedRate is a uti…...

C++学习记录——유 类和对象(3)
文章目录1、赋值运算符重载1、运算符重载1、理解2、运算符重载实例2、赋值运算符重载2、日期类的实现1、加减函数1、加函数2、减函数2、前/后置--重载3.两个日期相减其他1、流插入2、流提取日期类的整体实现代码: https://gitee.com/kongqizyd/start-some-c-codes-for-learning…...
基于Hi3861平台的OpenHarmony程序是如何启动运行的
一、前言 在继续后面课程的内容讲解前,我们要知道在H3861平台上编写的代码到底是如何启动的,这一点很重要。 先分析HelloWorld程序的启动运行流程,并顺便讲解OpenHarmony在H3861平台的,系统是从哪里启动的。 反着推导函数之间具体…...

2023彻底解决Typora使用iPic微博图床失效问题
一、问题描述用Typora搭配iPic图床使用,最近csdn图片显示不出来用浏览器打开图片显示403,这里原因是微博图床出问题了导致的而使用iPic其他图床则需要一直付费,那有没有一劳永逸的解决所有问题呢?二、旧图恢复首先怎么找回旧图&am…...

Revit中添加水平仰视平面图及水平剖面
一、 Revit中如何添加水平仰视平面图 在Revit平面视图中视角是俯视视角,但是在一些特殊的情况下,我们可能需要创建仰视视角的平面视图,例如我们需要向上看天花板的灯具布置的时候。 1.下面讲一下如何在添加仰视平面视图的方法。如图1在模型中…...

Python 循环语句
Python的循环语句,程序在一般情况下是按顺序执行的。编程语言提供了各种控制结构,允许更复杂的执行路径。循环语句允许我们执行一个语句或语句组多次,下面是在大多数编程语言中的循环语句的一般形式:Python 提供了 for 循环和 whi…...

使用 ThreeJS 实现第一个三维场景(详)
文章目录参考描述index.html三维场景的基本实现导入 ThreeJS准备工作场景摄像机视锥体正交摄像机透视摄像机渲染器后续处理将摄像机添加至场景中移动摄像机设置画布尺寸将渲染器创建的画布添加到 HTML 元素中渲染物体结构材质合成将物体添加至场景中代码总汇执行效果动画reques…...

《小猫猫大课堂》三轮5——动态内存管理(通讯录动态内存化)
宝子,你不点个赞吗?不评个论吗?不收个藏吗? 最后的最后,关注我,关注我,关注我,你会看到更多有趣的博客哦!!! 喵喵喵,你对我真的很重…...

【Selenium学习】Selenium 八大定位法
1.1 ID定位HTML Tag 的 id 属性值是唯一的,故不存在根据 id 定位多个元素的情况。下面以在百度首页搜索框输入文本“python”为例。搜索框的 id 属性值为“kw”,如图1.1所示:代码如下,“find_element_by_id”方法已废弃࿰…...
算法训练营 day41 贪心算法 单调递增的数字 买卖股票的最佳时机含手续费
算法训练营 day41 单调递增的数字 买卖股票的最佳时机含手续费 单调递增的数字 738. 单调递增的数字 - 力扣(LeetCode) 当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时,我们称这个整数是单调递增的。 给定一个整数 n ,…...

【数据结构-JAVA】排序
排序在现实生活中的应用可谓相当广泛,比如电商平台中,选购商品时,使用价格排序或是综合排序、高考填报志愿的时候,会参考全国大学排名的情况。下面介绍一些计算机中与排序相关的概念:排序:所谓排序…...

基于注解管理Bean
一、介绍从 Java 5 开始,Java 增加了对注解(Annotation)的支持,它是代码中的一种特殊标记,可以在编译、类加载和运行时被读取,执行相应的处理。开发人员可以通过注解在不改变原有代码和逻辑的情况下&#x…...
Containerd 的 Bug 导致容器被重建!如何避免?
作者简介邓宇星,SUSE Rancher 中国区软件架构师,6 年云原生领域经验,参与Rancher 1.x 到 Rancher 2.x 版本迭代,目前负责 Rancher For openEuler(RFO) 项目开发。最近我们关注到一个关于 containerd 运行时的 issue(https://g…...

win环境安装部署Jenkins
win环境安装部署Jenkins,2022年11月:从2022年 6 月 28 日发布的 Jenkins 2.357 和2022年9 月发布的 LTS 版本开始,Jenkins 需要 Java 11 才能使用,放弃 Java 8,如果用JDK1.8,那么Jenkins版本需要是2.357版本…...

网络变压器与不同芯片之间的匹配原则及POE通讯产品需要注意哪些方面
Hqst盈盛电子导读:网络变压器与不同芯片之间的匹配原则及POE通讯产品需要注意哪些方面网络变压器与不同芯片之间的匹配原则:一,电流型PHY芯片一般要配的网络变压器:1、变压器PHY侧3线共模电感 (更适合POE产品ÿ…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

破解路内监管盲区:免布线低位视频桩重塑停车管理新标准
城市路内停车管理常因行道树遮挡、高位设备盲区等问题,导致车牌识别率低、逃费率高,传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法,正成为破局关键。该设备安装于车位侧方0.5-0.7米高度,直接规避树枝遮…...