- 博客(13)
- 收藏
- 关注
原创 七、云端下发命令控制单片机LED灯的亮灭
在上图中可以看到我设置的指令超时时间是66s,所以在这66s发送一条指令到云端重新建立连接,就可以看到发送指令的返回值了。判断条件是根据数据收到的返回值来确定的,在上面用串口调试助手接收下发指令的返回值我们可以知道,下发1指令有“0101”这子串;下发0指令的时候有“0100”这个字串,但是因为上传数据的时候也会有返回值,而且也会返回“0100”这个字串,从而不能判断是否下发了0指令,所以又增加了一个判断条件“061F52”,这样才能唯一判断是否下发了指令0。同样在云端上要定义一个服务来实现这个功能。
2023-07-19 20:52:00 751
原创 六、MCU实时上报温度湿度到云平台
首先我们要在云平台上定义上报温度和上报湿度的服务,之前的文章也说过了怎么定义服务,这里就不再讲述。可以发现,在之前的测试数据中,采用的是16进制的形式,上报的是整型数据,这里sht30采集的温湿度是浮点数类型的,由于我现在没有实现将浮点数转16进制如何再通过AT命令上报到云端,所以我采用的是以字符串的形式上报,那么在云平台上定义服务的时候也要将服务的数据类型设置为字符串形式,我设置的是定长字符串,5字节。在采集温湿度的函数里增加将采集到的数据转化成字符串,同时完成上报云端,修改后的函数代码如下。
2023-07-19 18:30:09 346
原创 五、I2C协议之温湿度采样,JSON格式上报数据
下面来进行I2C引脚的配置:我的板子上sht30模块是PB13、PB14为I2C模式,所以首先先配置这两个引脚为I2C2_SCL和I2C2_SCL的模式,由于此时还没有使能I2C2功能,所以引脚为黄色状态,接下来使能I2C2,引脚就变为绿色状态,到此配置就完成了,ctrl+s生成代码。接下来就是代码部分,首先先编写sht30.h文件的代码,由于生成的项目中没有该文件,所以这个文件要我们自己创建,Inc--->New--->Header File,如何添加名字即可(由于我已经创建了,所以显示该文件已存在)
2023-07-19 17:32:48 288
原创 三、云平台的使用
IMEI号和IMSI号的获取如下:因为我用的是小熊座的单片机,单片机上自带BC28模块,首先用USB把单片机与电脑连接起来,通过串口调试助手发送AT命令,开启单片机电源开关,把BC28模块的拨码开关拨到“To BC28”,这样串口调试助手就可以和BC28模块进行通信了。如果想要接入自己的NB-IOT设备,首先要开通“天翼物联网云平台(AIoT)通用组件服务”,首页进入“控制台”, “开发导向”,“服务开通”,“立即开通”。(进行到这里,“状态”应该是“已注册”,因为我进行了其他操作,所以是“已激活”)
2023-07-19 00:20:46 426
原创 四、通过MCU连接云平台
在板子的内部,串口3是直接与BC28模块通信的,所以MCU可以通过串口3给BC28模块发送数据,从而与云平台进行通信。首先就是配置,RCC、SYS、时钟树正常配置,其次使能串口1和串口3,串口1是用来与串口调试助手通信,方便调试打印代码,串口3是MCU用来发送数据给BC28模块,与云平台进行通信的,其中串口3使能中断,采用中断的方式收发数据,调节串口3的波特率为9600。然后添加nbiot.h文件和nbiot.c文件,在下面两个文件夹下分别建立.h和.c文件。usart.h添加stdio.h。
2023-07-19 00:03:47 443
原创 二、AT命令
不同设备支持的AT命令可能会有所差异,但是大部分设备都支持一些通用的AT命令,如"AT+CSQ"用于查询信号强度,"AT+CPIN"用于查询SIM卡状态等。以上只是BC28模块的一部分AT命令,具体的命令集和功能可以参考BC28模块的AT命令手册,该手册通常由模块的制造商提供,可以在官方网站或者技术支持渠道获取。AT命令的作用非常广泛,可以用于调制解调器的连接、拨号、断开连接等操作,还可以用于设置和查询设备的参数,如网络设置、信号强度、SIM卡状态等。15、AT+CGPADDR:查询模块的IP地址。
2023-07-18 17:50:30 2325 1
原创 一、物联网通信技术:NBIOT
顾名思义,NB-IoT所占用的带宽很窄,只需约180KHz,而且其使用License频段,可采取带内、保护带或独立载波三种部署方式,与现有网络共存,并且能够直接部署在GSM、UMTS或LTE网络,即2/3/4G的网络上,实现现有网络的复用,降低部署成本,实现平滑升级。移动网络作为全球覆盖范围最大的网络,其接入能力可谓得天独厚,因此相较WiFi、蓝牙、ZigBee等无线连接方式,基于蜂窝网络的NB-IoT连接技术的前景更加被看好,已经逐渐作为开启万物互联时代的钥匙,而被商用到物联网行业中。
2023-07-18 17:34:38 932 1
原创 DAC与ADC的转换
不同的单片机分辨率略有不同,我所用的单片机的DAC的分辨率为12位,所以就是2的12次方等于4096。我们可以看到,i,j的值近似相等,i值为我们手动输入的值,j值为单片机实际采到的值,存在一定的误差是正常的,i,j均为数字量的值。同样也是在单片机上找到拓展GPIO,选择其中一个作为DAC的引脚,这里我选择的是PA5,进行如下配置。在单片机上找到拓展的GPIO,在这里我选用的是PA7作为ADC的引脚,进行如下配置。本文章将基于单片机来理解DAC与ADC,用到的是小熊派L433系列的单片机。
2023-06-24 17:01:27 668 1
原创 STM32单片机实现简易声控灯控制
首先,先分析一下声控灯实现的原理,即当外界发出声音的时候,灯就会被点亮。从现时生活中我们可以知道,楼道声控灯并不是只要有声音就会把灯点亮的,当白天光线充足的时候,无论外界有多大的声音,灯都不会被点亮。但是我们知道声音是无处不在的,就算是到晚上,也并不是都会亮灯的。所以到这里我们可以知道,点亮声控灯的条件是:光强的值小于某个值且声音的值大于某个值。打开串口调试助手开看到当前的采样值,在单片机上观察当光强和声音改变时LED灯的状态,验证是否达到我们的预期值。7、在main函数中添加声控灯实现代码。
2023-04-20 20:40:42 2666
原创 STM32实现ADC采样
和Cubeprogrammer两个软件,串口调试助手APP,以及STM32L431RCT6单片机。可以在main.c文件中添加printf输出语句,验证串口是否可以输出相应的语句。功能:在单片机上对声音和光强进行采样,通过串口输出其采样值。10.编译烧录代码,在串口调试助手上查看是否得到采样值。4. 在usart.c中实现printf。3.在usart.h中添加头文件。8. 在adc.h中声明函数。9. 在main.c添加代码。6. ctrl+s生成代码。7.在adc.c中添加代码。
2023-04-17 00:01:28 3084 3
原创 STM32定时器控制LED灯
由于TIM6挂在APB1总线上,在时钟树的图上我们可以知道APB1是80MHZ,对定时器做预分频得到1MHZ,修改arr的值,arr=1us。7、编译、烧录代码。可以在单片机上观察到三色LED依次进行亮灭的过程,完成一次亮灭的时间周期大概在1s左右。功能:实现定时器的微秒级的延时,通过观察LED灯的亮灭来验证。4、ctrl+s生成代码,在tim.c文件中添加代码。6、在main.c文件中添加验证代码。5、在tim.h中声明函数。2、配置LED灯的引脚。
2023-04-13 16:21:26 2017 1
原创 按键控制LED灯
在System Core找到GPIO,点击其中一个引脚,如3所示,在原理图中可以知道按键接了一个上拉电阻,在4的位置我们把上拉电阻打开,另外两个引脚同理。中断模式较轮询模式不同的是我对引脚重命名了,方便记忆书写代码,重命名方式参考中断模式下对按键P12的配置。烧录代码成功后,在单片机上按下按键,当按下第一个按键是红灯亮,按下第二个按键时绿灯亮,其次蓝灯亮。3、配置LED灯引脚,即PB2,PC9,PC6。总结:轮询模式会打断CPU的工作,而中断模式不会,所以我们一般采用中断来完成此类工作。
2023-04-12 15:27:04 1039 1
原创 STM32单片机简单点灯实验(Delay延时函数)
然后进行3的操作,我们可以看到4的界面,随便点击其中一个,由于从原理图中可以知道三色灯已经连接了一个高电平,所以在5的位置我们选择高电平状态,这样灯的初始状态就是熄灭的,进行6的操作后(另外两个引脚操作同上),按ctrl+s生成代码。4、接下来我们进行芯片的配置,首先配置RCC。依次进行1、2、3的选择,然后我们可以看到4的两个引脚变绿了,说明我们进行了RCC的配置。2、依次输入项目的名称,禁止以中文命名,然后在2的位置选择合适的项目路径,在3的位置选择编译语言,在这里我们选择C语言,点击4生成项目。
2023-04-10 20:52:17 1310 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人