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产品ÿ…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

接口自动化测试:HttpRunner基础
相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…...

Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)
引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...
Spring Boot + MyBatis 集成支付宝支付流程
Spring Boot MyBatis 集成支付宝支付流程 核心流程 商户系统生成订单调用支付宝创建预支付订单用户跳转支付宝完成支付支付宝异步通知支付结果商户处理支付结果更新订单状态支付宝同步跳转回商户页面 代码实现示例(电脑网站支付) 1. 添加依赖 <!…...

热门Chrome扩展程序存在明文传输风险,用户隐私安全受威胁
赛门铁克威胁猎手团队最新报告披露,数款拥有数百万活跃用户的Chrome扩展程序正在通过未加密的HTTP连接静默泄露用户敏感数据,严重威胁用户隐私安全。 知名扩展程序存在明文传输风险 尽管宣称提供安全浏览、数据分析或便捷界面等功能,但SEMR…...

Java后端检查空条件查询
通过抛出运行异常:throw new RuntimeException("请输入查询条件!");BranchWarehouseServiceImpl.java // 查询试剂交易(入库/出库)记录Overridepublic List<BranchWarehouseTransactions> queryForReagent(Branch…...

【版本控制】GitHub Desktop 入门教程与开源协作全流程解析
目录 0 引言1 GitHub Desktop 入门教程1.1 安装与基础配置1.2 核心功能使用指南仓库管理日常开发流程分支管理 2 GitHub 开源协作流程详解2.1 Fork & Pull Request 模型2.2 完整协作流程步骤步骤 1: Fork(创建个人副本)步骤 2: Clone(克隆…...

HTML版英语学习系统
HTML版英语学习系统 这是一个完全免费、无需安装、功能完整的英语学习工具,使用HTML CSS JavaScript实现。 功能 文本朗读练习 - 输入英文文章,系统朗读帮助练习听力和发音,适合跟读练习,模仿学习;实时词典查询 - 双…...