【训练营_进阶班】基于阿里云的物联网智能插座_By_RHJ - 嘉立创EDA开源硬件平台

编辑器版本 ×
标准版 Standard

1、简单易用,可快速上手

2、流畅支持300个器件或1000个焊盘以下的设计规模

3、支持简单的电路仿真

4、面向学生、老师、创客

专业版 professional

1、全新的交互和界面

2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计

3、更严谨的设计约束,更规范的流程

4、面向企业、更专业的用户

标准版 【训练营_进阶班】基于阿里云的物联网智能插座_By_RHJ

简介:基于51单片机结合EMW3080、阿里云服务器的智能插座,可以通过APP控制并接收继电器开关状态、LED的亮灭状态,温湿度可以在OLED显示并上报到APP,云端服务器也可以接收到相应的信息。

开源协议: GPL 3.0

(未经作者授权,禁止转载)

创建时间: 2020-08-05 20:40:57
更新时间: 2021-05-19 09:40:56
描述
# 基于EMW3080的阿里云物联网智能插座 # 目录 #### 一、实物展示 #### 二、APP展示 #### 三、服务器端展示 #### 四、项目需求 #### 五、产品需求 #### 六、元器件选型及模块功能说明 #### 七、功能描述 #### 八、布局布线设计 #### 九、大型翻车~~(调试)~~现场 #### 十、在阿里云生活物联网平台创建一个项目 #### 十一、有待改进之处 ####十二、小结 ####十三、视频演示(4个)


# 一、实物展示 ![image.png](//image.lceda.cn/pullimage/BMPD4MjAlxz20YSFZwDF3w6BhwoVzTyaotGn1oPy.png) ![image.png](//image.lceda.cn/pullimage/tYPN6bRQR17MlAtz0HbTxMajFiIogzj9svjLqJXI.png) # 二、APP展示 ![image.png](//image.lceda.cn/pullimage/oESH620v8uLgj8nMl0z2bCgxFEvmHnxmpIt1gSNQ.png) ![image.png](//image.lceda.cn/pullimage/Sfu5zMqJ08qmeDLfDwicyTJqlnaKq4EZqLquL6IR.png) ![image.png](//image.lceda.cn/pullimage/t0GZKY3zcwC0ftmZd8ehwIcywRW0mUhTGC4Po47t.png)![image.png](//image.lceda.cn/pullimage/jcSk2KzaloaIfvTY841YySKCZ6tlG6dICjGWJpzd.png)


# 三、服务器端展示 ![image.png](//image.lceda.cn/pullimage/pguZJ6pflssgs3t48wxRyuH8sJpGEVj5sr02goDT.png)
![image.png](//image.lceda.cn/pullimage/laCBcit1XAfSgiOULsggWr102Lo9h8DwHvwfL6RJ.png) ![image.png](//image.lceda.cn/pullimage/XoZvmzY9VLgF4YRkvJPJw6ukX51zVZXh75sqUd1f.png) ![image.png](//image.lceda.cn/pullimage/P0e5NEeGK5wigQ1Pnigd6QYx40TCLPvrQfW2uULg.png)
# 四、项目需求 ####   设计一个能通过手机APP和天猫精灵控制家电及板载LED灯的电路板。 # 五、产品需求 ####   5.1 5V给整个系统供电,并利用稳压芯片产生3.3V稳定电压给特定芯片供电; ####   5.2  硬件部分包含电源稳压、WIFI模块、OLED、USB转TTL模块、继电器、驱动芯片、单片机、按键、LED等; ####   5.3  嵌入式软件编程、手机APP、服务器等。

# 六、元器件选型及模块功能说明 ## 6.1 主控芯片 ####   选择型号为**STC15W4K56S4**,该芯片有56Kb用来存储程序的ROM,4Kb的数据存储器RAM,拥有丰富资源,足以解决本项目的主控问题。 ![image.png](//image.lceda.cn/pullimage/vmwluo0NUC4Ep2IBGXzM7exkqLssinG5PXAJIOep.png) ## 6.2 WIFI模块 ####   选择庆科生产的**EMW3080**模组,板载天线,免去外接天线的麻烦,并且它支持阿里云飞燕(ILOP)固件,有官方技术手册可以参考,性能基本能满足本工程,而且价格比较便宜。[EMW3080购买地址](https://item.taobao.com/item.htm?id=552081365687&ali_trackid=2:mm_97664253_1257300488_109961400475:1597982480_249_1445502719&pvid=null&scm=null&bxsign=tbk159798248000995298db04be036a4ca9881b8010d52b9),固件选择**阿里飞燕**,型号选择EMW3080V2P(板载天线) ![image.png](//image.lceda.cn/pullimage/khDbcowTOuP3atikU7w4DDUGlaHBS1HCfjJY6n2H.png) ## 6.3 USB转TTL芯片 ####   选择**CH340E**,并在VCC引脚加100uf的去耦合的钽电容,以提供芯片强劲的电流,防止继电器打开瞬间CH340E复位。在TXD端330Ω电阻是防止TXD的电流倒灌到单片机的RXD,使单片机可以正常复位。 ![image.png](//image.lceda.cn/pullimage/87Wxu6U4ERKIsbfy19joBEUIJ1e9Q8OSlQewYd1s.png) ## 6.4 LDO低压差线性稳压器 ####   选择**ME6215C33M5G**和**AMS1117-3.3**分别给单片机和EMW3080模组供电,保证各通信模块正常工作。ME6215C33M5G带有使能引脚,加上一个按键即可实现系统复位。AMS1117-3.3最大可输出电流1A,足以给正常通信时的WIFI模组供电。【AMS1117-3.3的2脚和4脚内部是连在一起的】 ![image.png](//image.lceda.cn/pullimage/yScVpoeQrGCJXtgAGkVF4858ETtN852f580o1zHu.png) ## 6.5 继电器及其驱动电路 ####   继电器选择**汇科**的DC5V,由于单片机的普通IO口默认上电输出高电平,但我们希望开始上电时,继电器是关闭的,故给IO口接入一个**反相器**,并加入一个专用于驱动继电器的**NUD3124LT1G**芯片,确保继电器可靠驱动。 ####  继电器的工作说明:2脚和5脚是常闭端,1脚和5脚是常开端。继电器被打开后,磁力将铁片吸合到1脚,变成1、5导通(即接线端子P2导通),2、5断开: ![image.png](https://image.lceda.cn/pullimage/NFbeyrKwTUX5UMol3NPqlMyc9CBNZGpXMjZWQWG0.png)
## 6.6 OLED显示屏 ####   选择中景园4脚IIC驱动的OLED,配有详细Demo,便于移植不同的平台。 ![image.png](//image.lceda.cn/pullimage/di5SXwZrsa7B7acGWFWcMV4xIPUIMimv5jhKcfJR.png) ## 6.7 温湿度模块 ####   采用**DHT11**模块,自带上拉电阻,无需外加。该模块传输距离长,低功耗,体积小,精度足够,价格低廉,发送和读取数据仅占用单片机的一个IO口,占用资源少。 ![image.png](//image.lceda.cn/pullimage/BL6q7mO9T5yoixL38slkHWnBq1xuMt6KJUv14pgO.png) ## 6.8  独立按键 ####   使用立创商城的3\*6\*5贴片轻触开关。 ####   SW2点动用于控制继电器开关状态,长按进入配网模式。另外额外添加2个按键,用于点动控制2个LED的亮灭,需要在程序中将按键的数量改为3,并且增加SW3、SW4点动的业务。 ![image.png](//image.lceda.cn/pullimage/S5gWjASKzMfx7qid1a4RnPqdFjDMVDodfihYAYwm.png) ## 6.9 LED ####   使用贴片式的LED,封装为0805,较为好焊。 ####   LED用途很多,可以在调试过程中与串口printf一起debug。本项目中,4个OLED的作用分别为: ####   LED1:慢闪表示程序正常运行;快闪表示正在配网; ####   LED2、LED3:用来被按键或APP控制亮灭; ####   LED4:快闪表示配网成功。 ![image.png](//image.lceda.cn/pullimage/36Y19Nbg4QViSjUKiMU3sHDtoRhome10Dco1rxYP.png) # 七、功能描述 ## 7.1 板载4颗轻触按键,对电路进行控制: ####   SW1控制系统复位; ####   SW2短按控制继电器的开关,并上报继电器的开关状态和DHT11读取到的温湿度给服务器和APP,长按则进行配网; ####   SW3控制LED2的亮灭,并把亮灭状态上传到服务器和APP; ####   SW4控制LED3的亮灭,并把亮灭状态上传到服务器和APP。 ## 7.2 一键配网 ####   板子第一次上电前,在阿里云物联网官网产品配网引导**设置为一键配网**,上电后,板载LED1慢闪表明程序正常执行,长按SW2,LED1快闪,进入配网模式,使用手机APP进行扫码配网即可,成功配网后,LED4快闪,LED1恢复慢闪,此后重新上电时会自动配网,无需长按SW2。

## 7.3 数据互动 ####   板子联网成功后,APP、服务器云端、真实设备可实时互动,在服务器网页设置好APP配置面板后,单片机通过DHT11读取到的温湿度可以显示在OLED上,并按时上报温湿度数据、继电器开关状态、2颗LED的亮灭的状态,也可以通过按键触发即时上报。APP和云端会接收到对应的数据进行显示,并且用户可以查看数据表格、图表等进行结果分析。APP也可以控制继电器、LED灯的开关。

## 7.4 接入天猫精灵控制 ####   首先从云智能APP删除已绑定设备(长按SW2进入配网模式时,会自动解绑,然后配网),并将EMW3080配置为一键配网模式,天猫精灵也与连接上与前者一样的WIFI。之后通过语音“天猫精灵,找队友”,此时板子同步长按SW2进入配网模式,大概几秒后天猫开始配网,十几秒后配网成功。 ####  通过语音“天猫精灵,打开插座”,即可打开小风扇; ####  通过语音“天猫精灵,关闭插座”,即可关闭小风扇。
# 八、布局布线设计 ## 8.1 强电部分 ####   **强电部分不铺铜**,这部分往往是有高的电压,和强的电流,有强的电磁场,容易带来干扰,也容易造成电压击穿,或电流烧毁,是PCB板上的危险部位,高压走线要处理好绝缘及隔离,为防止击穿,有的地方PCB板上可以挖空,挖槽,加长路径,还要考虑爬电等,在电流较大的布线要粗: ![image.png](//image.lceda.cn/pullimage/2bB6uNLNB4Rw3gFBgDicvtJ95umTkeuEv20r9w0u.png)                 图8-1-1 强电部分注意事项
## 8.2 USB-Micro接口及CH340E芯片 ####   采用挖槽型USB口,尽量贴近板子边缘,便于进行插接;USB口和CH340E的D+、D-数据线,须采用**差分走线**,并走线距离尽量短。在立创EDA中采用差分走线,相邻差分线的命名的后缀需要添加**“+”和“-”**或者是**xx\_N和xx\_P\*\*,系统才能识别: ![image.png](//image.lceda.cn/pullimage/xafPP3LNEPIggmLAx7L5OaIeXTKDzikCYjQjd1SQ.png)             图8-2-1 差分走线
## 8.3  滤波电容 ####   电源VCC要先经过滤波电容再到达需要用到电的模组,否则可能会导致供电不稳定,模组不能正常工作。如下图,从USB口过来的VCC不能直接连绿色的线到达3.3V稳压芯片,要根据橙色的路线连线,电容才可以起到作用,其他部分同理:

![image.png](//image.lceda.cn/pullimage/abDZrQfJjRcE57PQW2X4Pdl1AvOShFHn3DqbypHJ.png)                 图8-3-1 滤波电容的正确利用
## 8.4 WIFI模块 ####   EMW3080附近需要**净空区**,尽量不要铺铜和放置元器件,并且把板载天线部分伸出板子外面,尽可能降低外部因素对WIFI通信的干扰:

![image.png](//image.lceda.cn/pullimage/tBl8YlUaqk7du6XzgMoMosxdjSphv4CxaQlFbiT0.png)             图8-4-1 WIFI模块在布线时的注意事项
## 8.5 线宽、铜厚与电流的关系 ####   设计中需要注意那个部分通过的电流比较大,需要参考下表进行线宽的修改: ![image.png](//image.lceda.cn/pullimage/3FIpM1DBSdYFNdpsQlPrcT2yE8ZHRHvV9rnxZIWa.png)                 图8-5-1 合理参考电流与线宽、铜厚关系表格

## 8.6 合理放置丝印,便于后期焊接调试 ![image.png](//image.lceda.cn/pullimage/ED30FJ5cYyBIE4loTZzzcaCDD3k4gtQX9jVGvOtz.png)          图8-6-1 用丝印标注参数
## 8.7 焊接时,注意芯片的方向的标志,避免焊反 ![image.png](//image.lceda.cn/pullimage/eZ2MTf6063eV2NEftO0BvJjZOY6fjyqxyieDz4mA.png)                                 图8-7-1 注意防焊反 ## 8.8 PCB的DRC检查 ![image.png](//image.lceda.cn/pullimage/HZARQ0oI6wcoyYuJ5fPYYyIMglEO7V6rO5BrUdcv.png)                   图8-8-1 无DRC错误
# 九、大型翻车~~(调试)~~现场 ## 9.1  测试电源 ####   画完PCB、嘉立创打样、立创商城BOM表下单后,板子、元器件都到了,第一步先把USB接口、LED灯和它的限流电阻、两个3.3V稳压芯片给焊上,并测试电压值,基本稳在3.3V左右,核心电源部分OK:

![image.png](https://image.lceda.cn/pullimage/PgpLyqcYZX6hKAGHKuGQX9trF3EsCX4VA597ZhlA.png)                 图9-1-1 ME6215C33M5G成功输出3.28V
![image.png](https://image.lceda.cn/pullimage/EsxeepTccKI2SYoMPfFffKNMOM5kcN6rTzONO8X4.png)                 图9-1-2 AMS1117-3.3成功输出3.29V
## 9.2  测试LED及单片机 ####   把剩余部分焊好,用万用表蜂鸣档测试电路有无**短路、虚焊**,然后想测试下载进去的程序是否正常运行: #### \`\`\` ####     LED1 = 0 ;   LED2 = 0 ; ####     LED3 = 0 ;   LED4 = 0 ; //函数主体部分 #### \`\`\` ####   正常来说,四个灯都会亮,因为LED的正极连到了3.3V,负极连到IO口,IO口给低电平,LED导通,但程序烧录完成后,发现只有LED3和LED4亮, LED1和LED2是熄灭的状态。用万用表检测完LED并没有焊坏后,查看原理图和手册后,**发现连在LED1和LED2的两个引脚都是单片机的PWM输出引脚,上电复位后是高阻输入状态,要对外能输出,要软件将其改为强推挽输出或准双向口/弱上拉。**

![QQ图片20200819221954.png](https://image.lceda.cn/pullimage/u4md5Qi8Yd0gIOQYP64LIIb0H9JclQtNBIRvop8u.png)                 图9-2-1 LED1、LED2对应的引脚
![image.png](https://image.lceda.cn/pullimage/SgYJH68WiGXYOiewGLpwTpajg8jI6uSlZWrAEFqk.png)                 图9-2-2 PWM输出引脚默认为高阻输入状态

![image.png](https://image.lceda.cn/pullimage/dPwvZYYJWTNRocwSDtLpGj07QRDlAfVhVdh3Kwzo.png)                 图9-2-3 STC15W4K56S4 IO口模式设置

####   这里,我将**全部IO口初始化为普通IO口(准双向口)**,重新烧录程序,成功点亮所有LED灯: #### \`\`\` ####     P0M1=0;P0M0=0;P1M1=0;P1M0=0; ####     P2M1=0;P2M0=0;P3M1=0;P3M0=0; ####     P4M1=0;P4M0=0;P5M1=0;P5M0=0;   //上电初始化所有IO口为普通IO ####     LED1 = 0 ;   LED2 = 0 ; ####     LED3 = 0 ;   LED4 = 0 ; #### \`\`\` ![image.png](https://image.lceda.cn/pullimage/YXreUXEy4hPQHCOTpAlLfOty3ImzvsNpquHZpvDW.png)         图9-2-4 成功点灯 ## 9.3 调试串口1 ####   单片机读取DHT11温湿度数据(测试时将返回值均设为0),并使用串口1发送数据,调试效果如下: ####   PS:一定要注意选择**IRC频率为22.1184MHz**,每次打开软件默认为11.0592MHz,另外**串口波特率为115200**,若使用默认频率,串口助手会收到乱码!!翻了好几次车!!所以这个频率要根据具体芯片的手册来选择。 ![image.png](https://image.lceda.cn/pullimage/5MSAkDa1a4zgq2w6NSXzOQAOeo2Kq6fp9ExNWETr.png)                 图9-3-1 串口1成功接收数据(注意切换IRC频率)


## 9.4 调试WIFI串口 ####   **用烧录器直连EMW3080**,RX1->TX2 ,TX1->RX2 ,之后利用格西烽火串口调试助手,**波特率选择115200**,给EMW3080发送模块AT指令,WIFI模组可以返回正确的数据: #### ![image.png](https://image.lceda.cn/pullimage/itH1BJxcnbRreI7Nic19bQNRgDYCTq9sa7E4P9dk.png) ![image.png](https://image.lceda.cn/pullimage/9kyPnjUsq5pWiZsuriA5G1Z4ouyhBmLjiUo9dQB6.png)                 图9-4-1 利用格西烽火执行AT指令,并返回连接成功的数据

## 9.5 调试OLED ####   店家给的4脚IIC的OLED是STM32的例程,故有些地方要稍作修改,比如**SDA(P34)和SCL(P35)脚要设为推挽输出模式**,按照上面的IO口模式设置表格,即有:P3M1的对应脚设为0,P3M0的对应脚设为1, 即: ####     P3M1 = 0000 0000   -> **P3M1 = 0** ####     P3M0 = 0011 0000   -> **P3M0 = 0x30** ####  但是在编译程序时提示如下错误: ![image.png](//image.lceda.cn/pullimage/GkC6TJjbb4a412whAlL1nQLuqz2ZHesBY0R0LPPf.png)                 图9-5-1 编译错误 ####  然后去百度,发现128字节的data数据空间已经用完,需要使用**xdata**数据空间: ![image.png](//image.lceda.cn/pullimage/gk04NT5jiZPMfY44GBOMIBRLlW2z6Quf3a8wfJAW.png)                 图9-5-2 选择XDATA ####   之后成功编译,执行程序,OLED可以正常工作,显示正确的数据,但是将OLED的驱动程序整合到整个工程时,只有OLED屏幕在闪烁,并且之前正常慢闪的LED1熄灭了,后来发现生成的Hex文件已经超过了56Kb,而 STC15W4K56S4的存储程序用的ROM(FLASH)只有56Kb(查阅手册或观察名字可得),注释掉一些用不到的函数后,Hex文件成功降到56Kb以下,重新烧录测试,测试效果如下,成功在指定位置显示指定的字符串:

![image.png](https://image.lceda.cn/pullimage/FgDy5NTKfJnlC7eutTl3nesYThZeY0XAxjNB3teq.png)         图9-5-1 OLED成功显示数据

## 9.6 调试DHT11模块 ####   移植对应Demo后,将读到的温度、湿度分别转化为字符串输出给OLED,这里要注意湿**度只有整数部分,温度有小数部分**并且DHT11的数据引脚**Dat必须接上拉电阻**(可选为5.1KΩ),增强驱动能力,并在空闲状态下保持高电平,另外VCC和GND之间可以 加一个100nF的电容,用于去耦滤波,使接收到的数据更精确: ####   PS:购买的DHT11已自带上拉电阻,故本次不用外加 ![image.png](https://image.lceda.cn/pullimage/aQL9WA6jJFVZP0rEG1Jp4jbxCzAK7TWlp7TC2bQV.png)         图9-6-1 DHT模块原理图
![image.png](https://image.lceda.cn/pullimage/Z9TCXnK2VgyULRwTTKQj1HBSEsFCxQgtDn5Qs9En.png)         图9-6-2 成功读取温湿度数据

## 9.7 调试继电器模块 ####   为了使继电器更稳定的工作,给它加上了专门的驱动芯片,并希望它在上电时为关闭的状态,故在IO口(P26上电默认为高电平),加上一个反相器,下面写一个简单的程序测试继电器能否正常工作: \`\`\` #### ...... ####     #define Relay P26 ####     void main() ####     { ####         P2M1=0;P2M0=0; ####         while(1) ####         { ####           delay_ms(3000); ####           Relay = ~Relay;    //约3秒翻转一次继电器开关状态 ####         } ####     } \`\`\` ####   烧录程序后,成功实现3秒翻转一次继电器开关状态。 ## 9.8 调试配网 ####  调试配网之前,需要在IAP_EPPROM.c文件中,将自己设备的四元组信息更改。 ![image.png](//image.lceda.cn/pullimage/JXBpMA8LeHJNpIDKat9yd88EexN6GrtXCpIgsPdn.png)                 图9-8-1 更改四元组信息 ####   所有模块已调试完毕,目前均可正常工作。利用USB线供电,LED1慢闪,表示程序正在执行,然后长按SW2,进入配网模式,打开云智能APP扫码配网,跟着步骤走后,出现以下情况: ![image.png](https://image.lceda.cn/pullimage/UtxDPToOfK5MCCtYNuveGEvEhW7AQwGzxn20SR1K.png)         图9\-8\-2 无法发现 adh\_xxx\_xxx WIFI
####   然后并没有在WIFI列表找到\*\*\_adh\_xxx\_xxx\*\*,经在群里讨论,发现了不对劲的地方:

![image.png](https://image.lceda.cn/pullimage/xFFEAs8ul0l6o1f85yw6tvMqHQrjQa2GKA9hBT3A.png)                 图9-8-3 配网方式默认为设备热点配网

![image.png](https://image.lceda.cn/pullimage/qowIPBjTC6fjnRpSH00YSALxCXbqwO5GuTQd8l0z.png)                 图9-8-4 程序默认为一键配网模式
####   也就是说,**两种不同的配网方式混用了**,导致无法配网,于是我修改后采用两种方式配网,一种是修改为一键配网,不需要修改程序,设置如下: ![image.png](https://image.lceda.cn/pullimage/n9MI3eQjhtc3gJMWRW3LvWHmFzE7wGH0xQIEeSr6.png)             图9-8-5 修改配网方式 ####   另一种方法是,配网方式仍为设备热点配网,配网的代码改为将设备设置为**AP模式**的AT指令:**"AT+ILOPWASAP\r"**,EMW3080如果配网成功,服务器会向EMW3080发送回应,表示配网成功,到此处配网成功。 ![image.png](//image.lceda.cn/pullimage/UB2wwmaIDIVPK9xTPYDStfHhyJRkhEtPPMSmXARG.png)             图9-8-6 WIFI模块成功收到连接成功的信息
####   配网成功后,可以使用APP控制板子继电器开关、LED亮灭;并且操作板子的状态,也会实时传给APP和服务器网页端。只要板子位于原来配网连接的WIFI范围内,我们就可以通过手机APP全球任意范围内,只要有网络,就可以远程控制板子,并获取其状态信息。若要换一台手机控制,因为我设置的分享方式是授权式,故要先解绑,长按SW2即可先解绑后等待重新配网,使用新手机扫码配网即可。

## 9.9  调试WIFI模组上报继电器状态和温湿度数据到APP和网页端 ####   首先标识符要对应,即在**网页选的功能定义的标识符要与程序里的一致**,位置如下图 ![image.png](https://image.lceda.cn/pullimage/vDg2lhbXXDF7EFijsQUYvSqmKZm4kYn9Pbh1XkHT.png)
![image.png](https://image.lceda.cn/pullimage/6WR7NDczEEG62V13ydoNT6koz5O6IqRFMZWoPogs.png)
![image.png](https://image.lceda.cn/pullimage/WZTZ1xFDb2Cazj98LfiemXAxigTiTAmONcFWyQ4j.png)                 图9-9-1 两者的标识符要一一对应

####   做完这一步后,发现按动SW2,继电器的开关状态可以正确的上报到APP和网页,但是**APP不能控制继电器的状态**,就是说**WIFI模组没有收到正确的信息,使单片机执行对应的功能**,于是我去检查WIFI接收数据的函数,发现**有处标识符没有改动**,修正后,成功通过APP控制继电器的开关: ![image.png](https://image.lceda.cn/pullimage/ze4wd8uzfEaCgXvjijYWMMobulSoy5WwXHV8jH3K.png)                 图9-9-2 接收数据用的标识符均要改成对应的标识符

## 9.10 增加APP控制LED2、LED3的亮灭功能 ####   修改按键点动函数,成功使得按下SW3可以翻转LED2的亮灭,按下SW4可以翻转LED3的亮灭(LED初始状态均为熄灭),板子上可以实现该功能,但是**不能上传数据到APP和网站**;如果用APP执行对应操作,板子会响应,这说明设备数据上传出了问题,设备接收数据正常,当时上报的数据如下: ![image.png](https://image.lceda.cn/pullimage/nv8kPJXelapd5jSQkpuoDkES2Iplobw0ZkPvJKDk.png)                 图9-10-1 一次性上报5个数据失败 #### ####   于是我在想是不是一次不能上报那么多数据,服务器承受不住?本来上报3个数据(继电器状态、温度、湿度)是正常可以互动的,现在5个不行,那4个呢?于是乎我注释掉1个(保留任意4个),重新烧录程序,发现又可以互动了!!经群里老铁点明,可以上报5个数据,但是**上报数据用的数组SendBuf和JsonStr要增大才行**,我尝试这增大这两个数组,于是乎本来就55KbHex文件,FLASH遭不了重,增大后又超56Kb了。后来我**尝试分两次上报**,于是再复制一个上报函数,用来上报2个LED灯的状态,继续烧程序,发现5个数据均可上报,互动成功!!! ![image.png](https://image.lceda.cn/pullimage/jN57s0v0tEnl4fHavuPTSQNfJWAb3mkGl3zIMgQ3.png)                 图9-10-1 2个函数分开上报【**注意在.c文件增加函数时,要在对应的.h文件声明**】
![image.png](https://image.lceda.cn/pullimage/fZvHOoThfuX5ocgcwkspfsW1C7CayXkGOQghWQew.png)                                                                          图9-10-2 服务器网页端接收到的实时数据,经比对,数据正常
![image.png](https://image.lceda.cn/pullimage/FtslkhQupRRc57J1wvPobLTOMwH9NS0nrM363qDN.png)         图9-10-3 APP接收到的数据,与服务器网页端一致

## 9.11 二度调试串口2 ####   诡异的事情终究还是发生了......前一天板子还能正常上电就自动配网,第二天早上上电后就毫无反应,无法配网,检查完不是路由器网络的问题后,再反复切换一键配网模式和设备热点配网模式后,发现LED4(配网成功的指示灯)始终不闪,于是我用烧录器直连EMW3080进行串口调试,使用AT指令启动一键配网模式,发现**WIFI模块能收到服务器发送回来的成功连接信息**,并且操控APP的按键,可以上报到服务器日志里,**但是APP和板子毫无互动:** ![image.png](https://image.lceda.cn/pullimage/OpOwFBuS4WtK2gOkvpiGLixpjskUSfmOtQz3l9AF.png)                                                                             图9-11-1 WIFI模块可以连上服务器
![image.png](https://image.lceda.cn/pullimage/B9HR7Us3da8IbGtWCzDUHQqxVGW9WvHtEwiGo1qi.png)                                                                            图9-11-2 网页端日志显示成功收到数据


####   **这说明WIFI是接收到服务器给它发送的连接成功的信息,但是单片机没有收到,因为如果单片机收到,LED4灯的闪烁标志位会被置1,置完1后就会快速,表示配网成功:** ![image.png](https://image.lceda.cn/pullimage/ALKirJibcPdaeLdNJJe6ycCgTLWCEgVWlKdws0gl.png)                                                                             图9-11-3 单片机收到成功配网信息后会将配置闪烁标志位 ####   所以,我推测,**WIFI接收到的表示连接成功的字符串"ILOP,CONNECTED",单片机并没有通过串口2成功读取**,而这两者的RX和TX各通过一个330Ω的限流电阻交叉互连,我了解到这2个电阻是起到防电流倒灌到单片机,从而使单片机可以正常复位的作用,我隐约记得零妖说可以把这两个330Ω电阻给拆掉,于是乎我把这两个电阻换成0Ω电阻,重新上电,一切恢复正常...orz...经群里的老铁反映,**有可能是单片机发出去的信号太弱了,电流过小。** ## 9.12 调试小风扇 ####   由于宿舍没有什么可以改造的电器,搜刮一顿后 ,发现舍友的散热用小风扇,是**DC12V/0.09A**,由于板子最大能供电5V,尝试用USB口供电,发现电压可以,但是电流不够,小风扇无法转动,故使用烧录器接上充电宝给小风扇供电。 ![image.png](//image.lceda.cn/pullimage/FLkmzy3hpJObS3Fjw4DruuRagxxBuLuWoYAQNH0m.png) ## 9.13 调试天猫精灵 ####  在产品管理中的人机交互设置页面中,发现天猫精灵中的插座品类的状态映射属性只有一个,为开关状态,其标识符为\*\*“powerstate”\*\*,正好对应继电器开关的标识符。 ![image.png](//image.lceda.cn/pullimage/NdJqoWX1HANLt5avEPtrB1PACCq0IcigWZNYGAI7.png) ####  长按SW2解绑并进入配网模式,板子会先和云智能APP解绑。天猫精灵接入与前者一样的WIFI,并通过语音**“天猫精灵,找队友”**,即可自动配网。后续通过**“天猫精灵,打开插座”**来打开小风扇,**“天猫精灵,关闭插座”**来关闭小风扇。 # 十、在阿里云平台创建一个项目 ## 10.1 注册阿里云账号,并进行实名认证,登录阿里云生活物联网平台 #### 网址:[阿里云官网](https://www.aliyun.com/) 、[阿里云生活物联网平台](https://www.aliyun.com/) ## 10.2 创建一个新项目 ![image.png](//image.lceda.cn/pullimage/QAhTuwee10G5sqdlGCStImn8RFgEzleQd98gX7Lw.png)
![image.png](//image.lceda.cn/pullimage/BxbXkVtfjNHItwauDhnzrKqMlaMpu2zcik7h13Cv.png) ![image.png](//image.lceda.cn/pullimage/q7GS8GDAbRHegPB1QyWUPILnGFGdxrcY7BrSdkEk.png) ![image.png](//image.lceda.cn/pullimage/ysbYNmnf4f4DbTLpbPrW9nm6HiPVEu6tpRBUXKmA.png) ![image.png](//image.lceda.cn/pullimage/kMeKVcDmCBq0uckj4rgqcXrusw6BgPkUJX7BKrR1.png)
## 10.3 设置产品的功能定义 ![image.png](//image.lceda.cn/pullimage/NvrY9GrXqYNQSMWUX7UxHwHC7IEzLCfJWTeBlwKn.png)

## 10.4 配置人机交互界面 ![image.png](//image.lceda.cn/pullimage/Afw78zsMoErcI0UJ3HfGWXzS4FLvDBeDSLM6MNll.png)
#### 需要注意的是配网模式,要和程序中的配网模式一样,说明如下: ![image.png](//image.lceda.cn/pullimage/djwuXmqkzCBY3DcNYKHxLnITC2pXXAp3lyrV9gOR.png) ![image.png](//image.lceda.cn/pullimage/QamS3AOKBUkhW1508Q1dtj7Kt6U4oGRdNE3SeR9C.png)
## 10.5 添加测试设备 ![image.png](//image.lceda.cn/pullimage/R6hXfo7dlmpnSxSXQ6XFhEWk4Cht1KMtnHOHAX1O.png) ![image.png](//image.lceda.cn/pullimage/hHafPf8pykPZpFk2QoIzgP67FRYNsb7lgTzwuf7i.png)
![image.png](//image.lceda.cn/pullimage/hjSFGcVjuLJtOw0UpN4VGGhijn1DG6cDqYZgw3GX.png) ![image.png](//image.lceda.cn/pullimage/iHRPh8GjwBJIqDHy5vCbpNkqTnZw8MI5oXoeJY86.png) ![image.png](//image.lceda.cn/pullimage/DCO6sLeam6G1CZHWTG6nMohAu4GqCAu1nsJQEkFf.png)
####   至此,设备添加成功,EMW3080可以在后续操作中连上阿里云生活物联网平台。

# 十一、有待改进之处 ## 11.1 串口调试方面 ####   由于本次使用到多个串口,但没有考虑到通过跳线帽来选择串口,导致后期调试困难,需要另外焊接跳线。 ####  3-1、4-2 用于下载程序、调试串口1 ####   3-5、4-6 用于调试WIFI串口 ![image.png](//image.lceda.cn/pullimage/0ztqhLUDlsCrbhgGbUWI7UwLlvYZj8McPCYHuPgD.png) ## 11.2 WIFI模组散热情况 ####  当WIFI模组正常工作时,发现模组附近摸上去温度有点高,或许会影响到WIFI模组正常工作,参考其他同学的散热方法,发现可以在其**底部挖槽**,增大散热面积,能起到一定的作用: ![image.png](//image.lceda.cn/pullimage/lXUlWdNXHNHJcxhZ99Tso2LO1QikbwR30Fa2KvGB.png) ## 11.3 一路继电器改进为多路继电器 ####  弄懂如何控制一路继电器,可以举一反三地设计出多路继电器控制家用电器,实现智能生活。 ## 11.4 电源部分 ####  调试中发现USB供电提供的电流不够大,当连接多个用电器时,某些模块无法正常工作。可用220Vac-5Vdc模块给整个板子供电,注意添加保险丝和安规电容。 ![image.png](//image.lceda.cn/pullimage/6lYlESwfGSi2Fz9Zmva6xkoblES5IYJV94Q01EaS.png) ![image.png](//image.lceda.cn/pullimage/YtTkhj8sTh8kDjPZUnim0CJaiKawH2X1jxoko44f.png)
# 十二、小结 ####   说起立创EDA,之前都是用来找给AD封装,那时候还没有发现自己错过了一件大宝贝(手动狗头)。这学期遇上立创EDA是因为立创在线上为我们学校做校赛培训,后续有个基础训练营,但是由于期末考试都堆一起,还有个校赛,所以就很遗憾没有报名。不过后来发现公众号推送进阶班训练营,于是我就报名了~ ####   之前是没有接触过物联网这方面的,只接触过单片机、嵌入式这些,对自己也是一个全新的挑战,项目实战方面的经验几乎为没有,是一个小白从零开始的过程。然后自己一步一步跟着宋工、周工他们走,第一次真正在立创EDA画板子、第一次在立创商城根据BOM表下单、第一次体验SMT、第N次嘉立创打板,直接一条龙服务,非常方便。板子到了之后,就分模块来焊,焊完一个模块就调试一个,先用万用表检查有没有虚焊、短路之类的,再上电逐一测试。硬件部分头疼完就到软件部分了,指针在大一学完后就忘的七七八八了,读起来还是有点吃力的,听完宋工讲完一遍不懂,自己再看回放,读程序,并修改相关参数,下载到板子来测试,逐渐有点头绪。有很多问题可以在群里提问得到指点,但最终还是得靠自己慢慢调试,硬件和软件一起调,不过主要是硬件的问题,软件要改的地方不多,标识符是其中一点,后面读懂程序后,就自己额外添加业务,成功上报湿度、按键点动控制LED亮灭的信息,并且可以使用APP控制LED的亮灭。天猫精灵到手后,也成功利用天猫配网成功,并控制小风扇开关。 ####   通过这次训练营实战,自己调代码、调硬件的能力也有一定的提升,通过项目实战,我也一定程度上了解到了物联网的联网、通信、控制过程,以一个商业化的案例,从需求分析开始,再到方案设计、硬件设计、软件设计,一步一步学习解决问题的方法。还有自己不太懂,之前不太想深入了解的指针、结构体,让我重新有了想拾起它们的学习冲动,加油! ####  在此感谢立创EDA举办本次活动,感谢宋工、周工、莫工、叶工等工作人员,为我们提供资金和技术支持。小伙伴们寒假班有缘再见~ # 十三、视频演示(4个) ####  1、板子与网页端互动 ####  2、APP与板子互动 ####  3、可视化界面 ####  4、天猫精灵控制
设计图
原理图
1 /
PCB
1 /
未生成预览图,请在编辑器重新保存一次
工程成员
侵权投诉
相关工程
换一批
加载中...
添加到专辑 ×

加载中...

温馨提示 ×

是否需要添加此工程到专辑?

温馨提示
动态内容涉嫌违规
内容:
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 技术支持

support
  • 开源平台公众号

MP