【开发者案例】基于机智云IoT云平台和51内核智能晾衣杆
摘要:本次设计主要是以51单片机为基础并且使用了机智云、雨滴传感器和光敏传感器,并且使用了电机来操控晾衣杆。机智云IoT云平台是可以帮助自动生成代码并通过手机APP来发送信号从而控制电机来控制晾衣杆的;雨滴传感器是通过检测是否有雨水,进而产生信号调节电机操纵晾衣杆的;光敏传感器则是检测光照程度来改变电机运行状态从而控制晾衣杆的收缩的,这几部分都是通过调节电动机的转动状态来控制晾衣杆在天气适合晾晒衣物时伸出窗外并且在天气不适合晾晒衣物时及时收回晾衣杆以避免衣物被雨水再次淋湿或者在无日照的情况下还持续在屋外而造成一些不必要的损失。
引言
随着经济的发展,人民生活会水平的提高,人民可支配的收入逐渐增多,对家居环境的要求也越来越高,因此智能家居的发展就显得尤为重要。20世纪80年代出现智能家居开始,有许多智能化的居家电器慢慢地出现并且变得常见起来,其中就包括智能晾衣杆。
由于无法受到阳光的正常照射的阳台在45%左右,因此可以设计一种智能晾衣杆根据天气自动控制晾衣杆收回,防止衣物淋湿的晾衣杆,解决了雨天不能及时收衣物的困扰;在阴天的时候收回晾衣杆,晴天的时候将衣物晾出去,使得晾晒衣物更加方便简洁,提高晾衣杆操作的可靠性、稳定性。多功能环保智能晾衣系统设计成功,不仅解决人们日常生活的难题,而且极大的方便居民的生活,具有良好的社会效益和经济效益。
本次设计使用了机智云自助开发平台,经过多年行业内的耕耘及对物联网行业的深刻理解,推出一站式智能硬件开发及云服务平台。平台遵循开放设计原则,采用微服务架构,提供从定义产品、设备端开发调试、应用开发、产测、云端开发、运营管理、数据服务、AI应用等覆盖智能设备接入到运营管理全生命周期服务的能力。相对于市场上同类的管理系统,其具有独一无二的优点:一是借助机智云IoT云平台,可以根据服务的场景布置不同的传感器,在云平台经过处理后反馈给用户;二是系统基于机智云IoT云平台,方便二次开发,可以根据功能需求属性等关联查询和上传图片检测对应目标。
1系统的组成及硬件
本次设计的智能晾衣杆系统使用了机智云智能硬件自助开发平台、雨滴传感器、光敏传感器和电机等部分。用到了L298N电机驱动模块、ATK_esp8266的超高性价比的串口-无线模块和稳压芯片等。
系统的电源模块是为了给整个系统提供一个电源使得系统可以正常稳定地运行所以电源在整个设计中也是非常重要的一部分。电源电路一般采用LDO电源芯片为系统供电,可以供3.3V、5V等电源。本次设计中电源有两个,3.3V的电源接单片机,12V的电源就接L298N。电源模块的VCC接口接电源,GND接口接地,3.3V输出接单片机,12V输出接L298N驱动模块。接线需要将VCC接口接电源,GND接口接地,3.3V输出电压接单片机,12V电压输出接L298N驱动模块。
https://club.gizwits.com/data/attachment/forum/202208/24/150439lg6jj6u6z288go61.jpg.thumb.jpg
图1智能晾衣杆系统框图
芯片的选择:STC89C51芯片可以使用其他开发者已经编写好的程序代码,不需要自己编写,非常的方便,但是直接引用可能会导致自己不理解程序的编写规则,没有亲自体验设计的详细过程,最终结果可能达不到预期的效果。而STC8A8K64S4A12芯片需要自己编写程序代码,虽然有些复杂,但是我们也可以在编写过程中学习到很多,发现一些自己平时不太注意的问题,及时的进行改进,从而让自己得到提升。由于STC8A8K64S4A12芯片的代码与STC15F2K60S2芯片一致,所以在设计的过程中使用STC15F2K60S2芯片。
https://club.gizwits.com/data/attachment/forum/202208/24/150459nzdm5yzbhy9umnhv.jpg.thumb.jpg
图2L98N原理图
通过比较STC8A8K64S4A12和STC89C5两种芯片的优点以及缺点,选择STC8A8K64S4A12芯片。STC8A8K64S4A12芯片的内部是自带晶振的,所以不需要再外接晶振,只需要电源和复位电路即可。其原理图如图3所示。
雨滴传感器的主要功能是检测,它检测是否下雨及雨量的多少,广泛运用在智能灯光系统、汽车的自动刮水系统及智能天窗系统中。雨滴传感器的工作原理是当传感器检测到有雨水时,可以自动发生电平的转换,从而操控电机运行,带动晾衣杆及时将晾晒的衣物收回屋内,这样就可以避免衣物被雨水淋湿而给人们带来的二次清洗的麻烦。
光敏传感器的工作原理是当光敏传感器检测到日照充足时,其阻值就会相应地变换。经过测试,在室外光照强的照射下和光照弱的照射下,光敏电阻分别为小于320Ω和大于15.6kΩ,知道光敏电阻在两种情况下的电阻值,就可以判断光照的强弱。当光敏传感器检测到日照充足的时候,控制电动机操控晾衣杆伸出窗外,对衣物进行晾晒,而当光敏传感器检测到日照不足的时候,其阻值也会相应的做出改变,来控制电动机操控晾衣杆收回屋内,这样就可以在人们忘记收回衣物时帮助人们自动收回所晾晒衣物。
在本次设计中使用了直流电机,各个部分都通过不同的方式来最终目的是操控电机运作的,结果就是改变电机正反转从而带动晾衣杆动作,而不需要人为的提拉晾衣杆,可以说电机在本次研究中是十分重要的部件。其参数为电压12V,电流2A,额定功率24W。
使用ATK_ESP8266模块,采用串口与MCU进行通信,内置TCP/IP协议线,可以实现串口与无线的直接转换,其兼容3.3V和5V单片机系统,可以很方便地与产品连接。该模块支持STA/AP/STA+AP三种工作模式,可以实现远程控制和局域网络无线控制,方便设备操作。
https://club.gizwits.com/data/attachment/forum/202208/24/150513stq1q4zauu6a4mbl.jpg.thumb.jpg
图3STC8A8K64S4A12芯片原理图
https://club.gizwits.com/data/attachment/forum/202208/24/150527ukxucfcc4ff8b4cj.jpg.thumb.jpg
图4雨滴传感器电路图
https://club.gizwits.com/data/attachment/forum/202208/24/150540le732rc3ka9reees.jpg.thumb.jpg
图5光敏传感器电路图
USB转ESP8266模块的作用是把ESP8266无线模块通过串口连接PC机的一种设备,它可以让调试ESP8266无线模块变得更加方便。
稳压模块使用了AMS1117芯片进行稳压,设计用于提供1A输出电流且工作压差可低至1V。该稳压器是一个正向低压降稳压器,内部具有过热保护和限流电路,可以在过度受热时切断操作。
驱动模块使用L298N电机驱动模块。L298N驱动板可以驱动两路直流电机,但本次设计只需要控制一个电机即可,所以只使能一个通道即可,使能端ENA高电平有效,需要设置IN1和IN2,确定电机的转动方向。
稳压模块接12V输入电压,3.3V输出电压接单片机,12V电压输出接L298N驱动模块。
2 机智云自助开发平台的运用
本次设计使用了独立MCU的方式,创建了四个数据点,分别为两个只读数据点和两个可写数据点,分别代表着电机的正反转和光敏传感器和雨滴传感器的信息。
机智云自助开发平台主要目的是为了给开发者们提供物联网设备的自助开发工具、后台技术支持服务、设备远程操控管理、数据存储分析、第三方数据整合、硬件社交化等技术服务,它不仅面向企业开发者,同时也面向个人开发者。
本次设计使用了手机APP来调试,对于机智云的调试,需要在有无线路由器有信号并能连接到网络时,将USB转ESP8266模块和ESP8266连接,也就是电源和串口的四根线相连接,ESP8266通过调试工具供给稳定电源,再进行APP的设置。在手机APP上需要单独再注册和登陆,并将设备进行配置,然后就可以和电脑上的数据点配合使用完成相应的功能。
我们需要进入机智云官网进行数据点修改。本次设计使用了四个数据点,其中,两个可写的数据点分别代表着电机的正转和电机的反转,两个只读的数据点分别代表光敏传感器和雨滴传感器接受的数据,数据点fout01代表电机的正转,数据点fout02代表电机的反转,数据点fin01是读取光敏传感器的数据,数据点fin02是读取雨滴传感器的数据的。
创建数据点时,需要填写数据的标识名,并选择数据的读写类型和数据类型。需要注意的是在MCU硬件方案选择处需要填写一个产品密码,这个密码我们可以在“基本信息”选项中查看完整密码,填写产品密码之后点击“生成代码包”,这样就完成了机智云的创建。
对于机智云的调试,需要在有无线路由器有信号并能连接到网络时,将USB转ESP8266模块和ESP8266连接,也就是电源和串口的四根线相连接,ESP8266通过调试工具供给稳定电源,再进行APP的设置。
3 软件的设计
本设计的程序流程是首先对单片机进行初始化,这里用电脑模拟代替单片机;其次读取雨滴传感器的状态;再次读取光敏传感器的状态;然后读取云消息状态并设置反馈状态;接下来由两个传感器状态和云消息状态决定电机运行状态,最后由串口中断函数完成云消息的接收和反馈。
3.1程序设计
由于使用了机智云IoT云平台,我们不需要自己编写程序,只需要在机智云平台下载然后在Keil中打开,并修改头文件即可。
https://club.gizwits.com/data/attachment/forum/202208/24/150739c6kk6uz2urz1z10u.jpg.thumb.jpg
图6程序流程图
可以知道,如果需要修改内容则需要在串口驱动程序中修改底层串口,串口通信在工作时一般需要设置数据格式,波特率和工作方式。但是对STC15芯片和STC8A8K64S4A12串口相关寄存器进行比较可发现,这两款芯片的寄存器设置都是相同的,STC8A8K64S4A12完全可以应用STC15的程序,两者的功能与地址一致,所以在这里不需要修改底层串口。
头文件的更改也是很简单的,只需要在工具栏的搜索那里填写“STC15F2K60S2”并搜索,然后将其改为“STC8.h”就可以了。
同时,我们需要更改程序的对象,在左边工程列表中找到文件夹“MCU_STC15F2K60S2_source”并点击右键,然后在“Device”中选择需要的“STC8A8K64S4A12”即可。
3.2I/O口的配置
设计的IO口的配置需要用到P4口,所以需要对P4口进行设置。将P4.2和P4.3设置为输入,输入的是传感器状态;P4.0和P4.1为输出,输出高3.3V电平和低电平;外接传感器作为电源的输出。
还需要进行两处修改。第一处的修改是打开Keil软件,找到gizwits_prodct.c程序,搜索“userhandle”,并对这几处进行修改,第一个“userhandle”处改为P20=0,第二个“userhandle”处改为P20=1,第三个“userhandle”处改为P21=0,第四个“userhandle”处改为P21=1。
第二处修改是搜索“userHandle”程序并对P4口和P2口进行相关的设置。添加如下程序:“P4M0=0x33;P4M1=0x00;P2M0=0x33;P2M1=0x00;P4=0xfe;”这些程序设置了P4的输入输出状态。还需添加“currentDataPoint.valuefin01=P42;currentDataPoint.valuefin02=P43;”这两句程序是为了将P4高6位设置为准双向输入I/O口。
4总结
针对智能晾衣杆的设计主要是以51单片机为基础,使用了机智云IoT云平台、雨滴传感器和光敏传感器,并使用了电机来操控晾衣杆。智能晾衣系统最大的特点就是操作简单、价格低、占地面积小、省时省力,达到了节约时间、便捷的目的。
该设计中用到了遥控系统,可以远程操控晾衣杆,同时也实用了传感器,可以在天气不适合晾晒衣物时自动检测并使晾衣杆回到屋内,防止衣物被雨淋湿,通过遥控的方式或者通过传感器来控制,不需要人们亲自在现场操控,极大地节省了人们的时间和精力,使得晾衣杆的实用性增强,并且变得更加的方便简洁。
页:
[1]