一,项目需求

:设计一款能通过手机APP控制家里电器的设备。

二,产品需求

硬件: USB供电,WIFI控制,继电器(输入电压5V,带负载100W以内)。

嵌入式: 响应WIFI模块的指令执行对应的动作,控制WIFI模块进入对应的状态。

手机APP: 不同用户可进行配网,可控制继电器状态,可读取继电器状态,可管理多个设备。

服务器: 可链接WIFI模块和手机,可维护用户信息,不容易崩(阿里云物联网生活平台)。

三,硬件规划

  1. 主控芯片选择51单片机,型号为 STC15W4K56S4-LQFP48 。
  2. 设计一个USB转TTL,用来给单片机烧录代码。型号为 CH340E 。
  3. 51单片机需要掉电才能完成复位。 使用带使能引脚的LDO配合一个按键达到目的,LDO型号为ME6215C33M5G。
  4. 继电器选择 HK4100F-DC5V-SHG ,注意继电器线圈的驱动电压,USB接口的输出为5V
  5. 继电器驱动需要专门设计,为了可靠性选择了专用芯片 NUD3124LT1G 。此驱动电路为高电平触发,51单片机的IO口在上电后默认为高电平,为了开机瞬间可靠关闭故加一路反相器 SN74LVC1G04DBVR (逻辑器件要注意:识别高低电平的电压阈值,不同厂商的器件,高低电平的阈值不同,需仔细查看数据手册)。
  6. WIFI模块选择 EMW3080 。经过阿里云官方认证的通信模组,安全可靠。AT指令直连阿里云平台简化开发量,商用模组供货可靠。(购买版本:阿里云飞燕固件)

四,物联网配套产业链-阿里云生活物联网平台

五,原理图设计

  1. USB转TTL。经典设计,照搬规格书。
    图中R1是为了防止芯片的TXD引脚给单片机供电从而导致单片机内核无法彻底掉电。VCC引脚附近加100uf钽电容是为了给芯片强劲的电流供应能力,防止继电器打开瞬间CH340芯片复位。

  2. LDO降压。WIFI和单片机分别单独供电(项目成本允许的前提下,控制部分与通信部分独立供电,"经验之谈" ),保证通信模块有稳定电源。选择了带有使能引脚的LDO,便于外部控制LDO的输出状态(设计按键接LDO使能端使单片机复位)
    ( 给通信模组供电推荐“DCDC的方案”)

  3. DS18B20外设:预留一个DS18B20接口便于接入温度传感器。
    按键外设:用于复位WIFI设备重新配网。
    四个LED:用于指示不同的设备状态。

  4. 继电器驱动电路。反相器确保MCU上电时可靠关闭继电器,NUD3124确保继电器可靠驱动。(加R9上拉的电阻是为了保证单片机复位瞬间或某一时刻提供可靠的上拉能力,高电平经过反相器为低电平,继电器为关闭状态)

  5. WIFI模块-EMW3080。一个高可靠的商用WIFI模组,接入阿里云经过了官方的严格测试。我们选择的固件是阿里云飞燕专用固件,也叫 ILOP固件。
    这个模组可以通过串口升级和修改固件。
    (电阻 R10 和 R11 在特殊情况下可以拆掉,焊盘当做测试点。)

  6. STC单片机。经典51内核单片机。外围简单,外设没用上几个。这里的单片机需要具备一个串口,一个定时器,若干普通IO口。

六,PCB设计以及3D模型



PCB设计注意要点:

  1. 强电部分不铺铜,强电与强电、强电与弱电之间注意安全距离(尽量3mm,低于2mm的考虑挖槽,但要考虑PCB强度问题)

  2. 继电器外接220V的建议使用端子,不建议使用排针孔,继电器到端子的线径要粗,强电走线线宽 (2.5mm以上、之间最好开槽)

  3. 强电区、继电器区、和WIFI天线下方(向外放置)要保留一定的净空区、开槽最好;

  4. 接线端子、microUSB放在板子边缘,否则不好接线,可以使用3D预览看;

  5. 电源要先过滤波电容再到单片机/WiFi模组;

  6. WIFI正常工作会发热,注意设计好散热;

  7. 电容器件下面不要走线;

  8. 如果有塑料模具,则应注意元器件选型时考虑模具空间尺寸;

七,软件规划——(通信部分)

  1. 单片机和WIFI模组
    物理媒介: PCB板间连线,TTL电平
    通信方式: UART
    通信协议: AT指令
    分析: 单片机通过AT指令控制WIFI模组动作,完成指定通信任务。难点在于串口数据的接收缓存,AT指令的解析。
  2. WIFI模组和服务器
    物理媒介: 2.4GHZ的无线电连接到路由器,运营商组建的广域网连接到服务器
    通信方式: TCP通信
    通信协议: MQTT
    分析: 模块进行MQTT相关的数据发送和解析,断线重连,发送消息的可靠性等问题由模块完成,作为开发者只需要关注如何通过AT指令控制相关数据流即可。
  3. 服务器和手机APP
    物理媒介: 手机4G无线电或者WIFI无线电
    通信方式: TCP通信
    通信协议: HTTPS
    分析: 数据到达服务器后,服务器进行数据的重构,业务端访问数据可以通过HTTP的方式进行。设计手机APP有用户管理系统,业务逻辑系统,UI界面等,类似能力阿里云已经帮我们打包好, 开箱即用,作为开发者不用关心。

软件规划——(控制部分)

  1. 单片机——AT指令的发送、接收与解析
    发送: AT指令本质上是ASCII字符串,发送AT指令就是单片机的串口发送字符串。只需要在程序需要的地方发送字符串即可,比如入网,连接服务器,发送指定的数据等。
    接收: 开辟一个数据接收缓冲区防止漏掉个别信息,使用环形队列来管理此接收缓冲区。只需要在程序需要的地方读取缓冲区里面的内容即可。
    解析: 本质上是解析ASCII字符串。写一个可以搜索字符串中指定字符的子程序,用来帮助判断收到的字符串是什么内容。
    服务器传过来的数据先由模组解析,模组通过串口线发送给单片机。
  2. 单片机——循环执行一个任务
    开一个1ms定时器作为时间基准,写一个简单的循环程序调度器,将不同的子程序循环调用。
    AT指令接收缓冲区需要定时处理(比如10ms处理一次,便于及时更新服务器回传的数据)
    按键扫描: 需要定时处理,便于判断是否有按键按下。
    网络状态指示灯: 需要定时处理,用于控制LED等的闪烁频率。
  3. 单片机——三元组数据的更新、存储
    将Flash的一个扇区开辟为自定义数据存储区。(保存每个设备唯一的三元组信息,三元组信息从阿里云物联网平台获得)
    写一个简单的串口接收程序,接收三元组信息,并保存到Flash。

软件规划——(控制逻辑)

  1. 单片机上电开机,读取Flash中的三元组信息。
  2. 通过AT指令发送接口,将三元组信息发给WIF模组。
  3. 通过AT指令发送接口,打开WIFI模组的ILOP服务(准备连接路由器、服务器)。
  4. 进入循环任务,开始定时执行所有相关子程序。
    A: 若AT指令接收到“打开继电器”字符串,则控制IO口。
    B: 若AT指令接收到“关闭继电器”字符串,则控制IO口。
    C: 若按键扫描到长按,则通过AT指令发送接口令WIFI模组进入配网模式,同时LED开始同时闪烁
    D: 若AT指令收到“连接服务器成功”字符串,则控制LED单个闪烁。
    E: 若AT指令手到“断开服务器”字符串,则控制LED灭。
    F: 看门狗定时喂狗(防止程序跑飞)

项目总结:

站在大牛的肩膀上学习,站的更高看的更远~

基于阿里云的智能插座——(立创EDA项目)相关推荐

  1. 基于阿里云服务器环境搭建到项目上线系列文章之三——安装git

    基于阿里云服务器环境搭建到项目上线系列 前言:最近购买了域名和一台阿里云服务器准备做点东西放上去,所以准备把环境搭建到项目上线的过程记录下来,计划一个系列6篇文章 基于阿里云服务器环境搭建到项目上线系 ...

  2. 基于阿里云服务器环境搭建到项目上线系列文章之六——项目部署

    基于阿里云服务器环境搭建到项目上线系列 前言:最近购买了域名和一台阿里云服务器准备做点东西放上去,所以准备把环境搭建到项目上线的过程记录下来,计划一个系列6篇文章 基于阿里云服务器环境搭建到项目上线系 ...

  3. 基于阿里云服务器环境搭建到项目上线系列文章之四——安装composer

    基于阿里云服务器环境搭建到项目上线系列 前言:最近购买了域名和一台阿里云服务器准备做点东西放上去,所以准备把环境搭建到项目上线的过程记录下来,计划一个系列6篇文章 基于阿里云服务器环境搭建到项目上线系 ...

  4. 基于阿里云服务器环境搭建到项目上线系列文章之一——putty使用秘钥登录远程服务器

    基于阿里云服务器环境搭建到项目上线系列 前言:最近购买了域名和一台阿里云服务器准备做点东西放上去,所以准备把环境搭建到项目上线的过程记录下来,计划一个系列6篇文章 基于阿里云服务器环境搭建到项目上线系 ...

  5. 如何将项目发布到阿里云_尚硅谷基于阿里云搭建数据仓库(实时)项目视频发布...

    11月,尚大发布了基于阿里云搭建数据仓库离线项目视频,不少爱学习的小伙伴表示,对实时项目视频翘首以盼,听了大海哥的课,腰不酸了,腿不疼了,一口气从头听到尾还不过瘾,沉迷于学习无法自拔-- 说曹操,大海 ...

  6. 基于阿里云的OSS上传从简单实现 到项目业务应用(一)入门了解篇

    使用阿里云OSS 功能的准备工作 环境准备 环境要求 使用Java 1.8及以上版本. 查看版本 执行命令java -version查看Java版本. 安装方法一: 如果使用Maven 安装阿里云OS ...

  7. 基于阿里云实现3D模型显示(WebAR项目)

    基于阿里云实现webar中3D模型的展示 WebAR介绍 demo 网页端html 阿里云服务器配置 WebAR介绍 这个项目是帮朋友做的毕设-原本是四月份就打算写这篇文章的,但是由于各种原因推到了六 ...

  8. 基于阿里云搭建的适合初创企业的轻量级架构--架构总结

    ----基于阿里云搭建的适合初创企业的轻量级架构 前言 在项目的初期往往存在很多变数,业务逻辑时刻在变,而且还要保证快速及时,所以,一个灵活多变.快速部署.持续集成并可以适应多种情况的架构便显得尤为重 ...

  9. 基于阿里云 MaxCompute 构建企业云数据仓库CDW

    在本文中阿里云资深产品专家云郎分享了基于阿里云 MaxCompute 构建企业云数据仓库CDW的最佳实践建议. 本文内容根据演讲视频以及PPT整理而成. 大家下午好,我是云郎,之前在甲骨文做企业架构师 ...

最新文章

  1. 2019半年总结:Teams are powerful
  2. BZOJ1051 [HAOI2006]受欢迎的牛 Tarjan 强连通缩点
  3. RabbitMQ三种Exchange模式(fanout,direct,topic)的性能比较
  4. NET下,你采用的是哪种方式进行数据操作?
  5. SpringMVC的请求-获得请求参数-静态资源访问的开启
  6. 用户关联角色操作-流程分析
  7. c语言指着与数组,C语言指针与数组
  8. (一)flask-sqlalchemy的安装和配置
  9. 如何使用 kubeadm 安装 Kubernetes?
  10. Swift iOS : 代码分析DrawController
  11. NSData与UIImage之间的转换
  12. Typecho插件之飘雪插件
  13. 桌面ie图标删不掉的解决技巧
  14. HTML 下拉式菜单
  15. C# .NET实现扫描识别图片中的文字
  16. 猜数字小游戏(随机生成’三剑客‘)
  17. 【腾讯开发者大会】天刀手游开发历程(笔记)
  18. OPPO手机计算机怎么打符号,OPPO手机怎么开启输入的九键快捷符号调频功能
  19. Moyqv 唐纳.卡兰 cnsl
  20. Vue Echarts英文版地图——强大的高德地图

热门文章

  1. SpringBoot 实现Excel文件解析
  2. VSCode配置 for Mac(一)C++
  3. YOLOv3 ubuntu 配置及训练自己的VOC格式数据集
  4. websocket 服务器外网访问
  5. 天数智芯亮相2019世界人工智能大会 软硬协同深耕AI极致算力
  6. 如何使用微信小程序制作banner轮播图?
  7. Vue突然报错 doesn‘t work properly without JavaScript enabled
  8. NVIDIA TX2 使能CAN模块
  9. 教师计算机西沃培训心得,学习使用希沃电子白板的心得体会
  10. Java-进阶:多线程1,2个月面试腾讯、B站、网易等11家公司的面经总结