加入交流群  

扫一扫,添加管理员微信
备注:参考设计,即可被拉入群
和也在搞设计小伙伴们碰一碰

收藏 

评论 

qoistoochee128 发布

【训练营_进阶班】物联网智能插座

 
设计简介

使用STM32F103C8T6作为主控,价格相对便宜,网上相关资料较多,之前使用过正点原子的战舰开发板,对STM32f1系列编程较熟悉。

通过物联网模块EM3080发送控制指令控制继电器开关,同时获取温湿度传感器值在app显示。

板载OLED显示屏,同步显示温湿度数据及操作过程中的相关提示信息。

温湿度传感器型号:DHT11,一个模块即可获取温度和湿度数据,减少元件使用量和CPU资源使用

其他部分和立创的源方案基本相同

调试过程:

**1.**焊接部分

首先焊接单片机最小系统,及板子的电源部分,以便测试程序是否可以正常下载。

遇到问题

(1)焊接完这部分后测量发现3.3V_MCU和GND之间短路,排查单片机电源和地相关的引脚并无短路现象,最终发现是使用的晶振问题,该晶振为5*7mm贴片封装32.768Mhz有源晶振如下图所示,在焊接时用锡较多导致3.3V引脚和GND引脚同时与晶振顶盖的金属部分相连接,出去多余的锡后再次测量,无短路现象

晶振.jpg


(2)确认无短路后上电测试,点源指示灯不亮,触摸单片机无发热现象,但32.768Mhz晶振严重发烫。已确认晶振的VCC和GND未短路,反复检查发现之前焊锡沿顶盖边缘进入晶振内部,可能造成晶振内部短路,晶振亡。拆除。由于STM32F1时钟来源可以是内部RC振荡电路或外部晶振。因此板子单独使用8Mhz晶振,32.768Mhz暂时未焊接。

(3)下载闪烁LED测试程序,由于最开始只焊接了一个LED,而且巧的是这颗LED接的是PB4引脚。程序下载后没反应,以为是板子问题,折腾半天。在百度时偶然看到,PB3,PB4,PA13,PA14,PA15是特殊的IO口,用作JTAG/SWD仿真器的调试接口。其中PA13,PA14分别作为SWD调试的SWIO和SWCLK;PB3,PB4,PA13,PA14,PA15共同用于JTAG。这五个IO引脚非常特殊,正常情况下作为SWJ仿真器的调试引脚,如果要作为普通IO口使用需要特别的配置。不同I/O使用需求配置也不同,如下:

GPIO_Remap_SWJ_JTAGDisable: /!< JTAG-DP Disabled and SW-DP Enabled /  即能用PB3,PB4,PA15做普通IO,PA13&14用于SWD调试

GPIO_Remap_SWJ_Disable:  /!< Full SWJ Disabled (JTAG-DP + SW-DP) /  5个引脚全为普通引脚,但不能再用JTAG&SWD仿真器调试,只能用st-link调试 

GPIO_Remap_SWJ_NoJTRST: /!< Full SWJ Enabled (JTAG-DP + SW-DP) but without JTRST /PB4可为普通IO口,JTAG&SWD正常使用,但JTAG没有复位

如果你用到所有的五个引脚当做普通IO口,那么上述步骤二中的重映射配置应写为GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE); 如果你用PB3,PB4,PA15做普通IO,PA13&14用于SWD调试,则重映射配置应写为GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); 同理可配置只用PB4可为普通IO口的情况。

工程中使用PA13&14用于SWD调试,其他作为普通I/O因此使用GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);

闪烁LED程序测试成功后将剩余元件全部焊接完成。

**2.**软件部分

(1)移植宋工的程序到STM32,测试程序时应分模块分别测试,否则无法判断是那部分程序有问题。

首先测试DHT11,将温湿度显示在OLED上。这部分按照上述重映射操作后正常显示。

测试串口2收发时发现,串口2发送和接收均无反应,一开始以为是字符串发送函数的问题,按照网上的方法进行更改

方法1:

const u8 TEXT_Buffer[]={"AT"};

for(i=0;i<sizeof(TEXT_Buffer);i++)

{

USART2->DR =TEXT_Buffer[i];

delay_ms(10);

}

方法2:

void Send_Str1(char *s)

{

while(*s)

{

USART_SendData(USART1,*s++);//串口1发送数据函数,库函数已提供}

while(*s)

{

while(!USART_GetITStatus(USART1, USART_FLAG_TXE)); //判断是否可以发送

USART_SendData(USART1,*s);

while(USART_GetITStatus(USART1, USART_IT_TC)); //判断是否发送完成,此句必须有,否则会造//成只发送最后一个字符(覆盖)

s++;

}

}

更改之后测试仍然无反应,仔细查看程序分析发现USART2是挂载在APB1总线下的,程序时钟使能部分写错。

(2)3080模块测试,使用USB转串口模块直接连接3080模块,使用格西烽火串口助手测试AT指令,测试结果如下: 串口测试AT指令.jpg


进入路由器配网模式成功后,使用云智能APP扫描配网二维码,但配网失败。后面更改阿里云设备配网方式为一键配网,再次调试正常,成功配网。 (3)云端命令下发与设备数据上报问题,注意:数据上报命令格式:AT+ILOPSENDJSON=property,{“temputure:”,28} .在使用串口2给3080模块发命令时采用操作DR寄存器的方式,提前将要发送的数据缓存在数组中,通过一个循环逐位发送数据,这里要注意缓存数据是否全部发送,可以先用串口助手调试,确认发送数据无误后再修改程序发送给3080模块。 云端命令下发控制继电器,这里偷个懒,直接对接收到的字符串进行判断,看其是否包含powerstate:0子串,是则打开继电器。这个地方后面待优化。

参考设计图片
×

!注意:请使用浏览器自带下载,迅雷等下载软件可能无法下载到有效资源。

 
相关器件
器件 类型 描述 数据手册
DHT11 温湿度传感器 湿度范围:- 温度范围:- 精度:- 传感器类型:Humidity, Temperature 输出类型:- 新款电容式数字温湿度传感器,老款已停产 点击下载
EMK1VM470E83D00T 贴片型铝电解电容 点击下载
CZ-514 USB连接器 点击下载
HL-PSC-2012H233W(9000-16000K) 发光二极管 点击下载
AECR0805F330RK9 贴片电阻 功率:1/8W 精度:±1% 阻值(欧姆):330 0.125W 车规电阻 点击下载
HK4100F-DC5V-SHG 继电器 触点形式:SPDT 触点的额定电流:3A 线圈类型:Non Latching 线圈电压:5VDC 继电器类型:General Purpose 引脚是上窄下宽,最大处为0.62mm 点击下载
DG500-5.08-03P-14-00A(H) 螺钉式接线端子 间距:5.08mm 排数:1 每排PIN数:3 安装方式:直针 额定电流:20A 额定电压:300V 线规 - AWG:12~30 线规 - mm?:1~2.5 工作温度范围:-40℃~+105℃ 颜色:绿色 点击下载
RTT05512JTP 贴片电阻 阻值(欧姆):5.1K 精度:±5% 功率:1/8W 温度系数:±100ppm/°C 点击下载
GRM21BR61H105KA12L 贴片电容 精度:±10% 容值:1uF 额定电压:50V 温漂系数(介质材料):X5R 材质:X5R 点击下载
NUD3105LT1G 电机驱动芯片 点击下载
OCETDLJANF-32.768MHZ 贴片晶体振荡器(有源) 工作电压:3.3V 工作电源电流(最大值):20mA 主频:32.768MHz 频率稳定度:±25ppm 点击下载
TC7SU04F,LF 门极和反相器 电源电压:2V ~ 6V 逻辑电路的归属系列:TC7SU 逻辑类型:反相器 电路/元件数:1 输入数/每元件位数:1 静态电流(最大值):1uA 单反相器逻辑芯片 点击下载
CA45-C010M107T 钽电容 精度:±20% 容值:100uF 额定电压:10V ESR串联电阻:1.2 Ω @ 100kHz 工作温度:-55℃ ~ +125℃ 点击下载
AC0805FR-0710KL 贴片电阻 阻值(欧姆):10K 精度:±1% 功率:1/8W 温度系数:±100ppm/°C 点击下载
RS-05K472JT 贴片电阻 阻值(欧姆):4.7K 精度:±5% 功率:1/8W 温度系数:±100ppm/°C 4.7K(472)/0805/±5% 点击下载
STM32F103C8T6 ST(意法半导体) 工作电压:2V ~ 3.6V CPU位数:32-Bit CPU内核:ARM® Cortex®-M3 主频(MAX):72MHz ROM类型:FLASH 1500/包 STM32 Series 32-bit 64 kB Flash 20 kB RAM ARM Based Microcontroller - LQFP-48 点击下载
MTP125-1104S1 排针排母 针脚数:4 连接器类型:排针 排数:1 触头类型:公形引脚 间距:0.100"(2.54mm) 点击下载
0805B104J500NT 贴片电容 精度:±5% 容值:100nF 额定电压:50V 温漂系数(介质材料):X7R 材质:X7R 点击下载
AMS1117-3.3 低压差线性稳压(LDO) 输出类型:固定 最大输入电压:18V 输出电流:1A 输出电压(最小值/固定值):3.3V 点击下载
B-2200S04P-A120 排母 点击下载
0805N200J500CT 贴片电容 精度:±5% 容值:20pF 额定电压:50V 温漂系数(介质材料):NP0 材质:NP0(C0G) 点击下载
TAXD8M2GLFBET2T 无源晶振 点击下载
1210W2J0105T5E 贴片电阻 点击下载
826629-2 排针排母 针脚数:2 连接器类型:排针 排数:1 触头类型:公形引脚 间距:0.100"(2.54mm) 排针 2P 2.54mm 点击下载
K2-6639SP-F4SC-04 轻触开关 电路结构:SPST-NO 触点额定电流:50mA @ 12VDC 按钮头类型:Standard 按钮作用方向:Top Actuated 6*6*6.5mm 轻触按键. 点击下载
QR0805J100KP05Z 贴片电阻 阻值(欧姆):100K 精度:±5% 功率:1/8W 温度系数:±100ppm/°C 点击下载
PZ200V-12-06P 排针 间距:2.00mm 总PIN位数:6 排数:2 行距:2.00mm 安装类型:直插 触头材质:黄铜 颜色:黑色 点击下载
CH340E USB芯片 驱动器/接收器数:- 协议类别:USB 2.0 类型:Transceiver 数据速率:2Mbps 超小体积,USB转UART串口,内置晶振,含485使能脚,外围简洁(两个电容),比CH340G、CH340C、CH341T更省体积 点击下载
DTSM-31S-V-T/R 轻触开关 按钮作用方向:顶部致动 触点额定电流:50mA @ 12VDC 按钮头类型:矩形按钮 作用力:320gf 电路结构:SPST 点击下载
CL21A226MQQNNNE 贴片电容 精度:±20% 容值:22uF 额定电压:6.3V 温漂系数(介质材料):X5R 材质:X5R 点击下载
群聊设计,与管理员及时沟通

欢迎加入EEWorld参考设计群,也许能碰到搞同一个设计的小伙伴,群聊设计经验和难点。 入群方式:微信搜索“helloeeworld”或者扫描二维码,备注:参考设计,即可被拉入群。 另外,如您在下载此设计遇到问题,也可以微信添加“helloeeworld”及时沟通。

 
查找数据手册?

EEWorld Datasheet 技术支持

论坛推荐 更多
更新时间2024-11-12 22:03:31

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版 版权声明

EEWORLD参考设计中心

站点相关: TI培训 德州仪器(TI)官方视频课程培训

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved