
【物联网类】基于ESP8266的AIOT开发板
简介
该项目是一款基于ESP8266的物联网开发板,旨在实现智能开关、温湿度计,智能灯等功能。
简介:该项目是一款基于ESP8266的物联网开发板,旨在实现智能开关、温湿度计,智能灯等功能。开源协议
:GPL 3.0
描述
本项目硬件部分完全采用立创EDA设计,嘉立创打板,立创商城采购物料,非常感谢立创EDA团队的支持,为国产EDA点赞,加油!!!!!
写在前面
2020年8月18日 项目版本说明
- 本文档中的实物图和视频均使用V0.1版本的板子拍摄。
- 本项目的原理图和PCB已更新到了V0.2的版本,修复了V0.1中的一些小BUG,增加了版本号。
- 本文档的硬件电路部分的图片均采用V0.2版本的图纸。
- 本文档的实物图使用的是V0.1版本的实物图。
图片展示
先来看几张立创EDA渲染的图片,紫色挺漂亮,可惜嘉立创不能打紫色的板子
LCEDA 2D图片
LCEDA 3D图片
简介
- 本项目是一款物联网开发板,支持Arduino开发环境。
- 以ESP8266为主控,板载一路继电器、一路无源蜂鸣器、一路温湿度传感器,预留一路WS2812灯带接口、一路ADC采集接口和SPI接口。
- 板载CH340,用于ESP8266的程序烧录和串口调试。
- 开发板供电电源为5V,可使用MicroUSB 供电;预留DC接线柱,可独立供电。
- 可实现智能开关、智能温湿度计、智能灯等功能。
硬件电路&器件选型
主控模块电路
本项目使用ESP8266 WIFI模块作为主控,型号为 安信可ESP-12S(商品编号:C82898)或者ESP12-F(商品编号:C82891),高性价比的WIFI SoC模组,资料丰富,可使用Arduino平台进行开发。(PS :之前安信可搞活动,买了好多ESP-12F,正好趁着这个机会用上它。)
ESP8266最小系统电路
ESP8266上电期间各引脚状态(参考:esp8266上电引脚初始化状态问题)
GPIO引脚 | 初始化状态 | 初始化状态 |
GPIO0 |
上拉 | H |
GPIO2 | 上拉 | H |
GPIO4 | 下拉 | L |
GPIO5 | 下拉 | L |
GPIO12 | 上拉 | H |
GPIO13 | 上拉 | H |
GPIO14 | 上拉 | H |
GPIO15 | 上拉 | H |
GPIO16 | 输出置高 | H |
在做V0.1版本电路的时候没有发现这个初始化状态的问题,直到板子焊好测试测试之后才发现这个端口上拉下拉的问题。
下载电路
作为一款开发板,需要板载一个USB转TTL 用于固件下载及程序调试,型号为CH340C(商品编号:C84681),国民良芯,结实耐用,价格便宜。(PS:刚好在立创商城有一张WCH(南京沁恒)品牌券)。ESP8266下载固件时启动模式需要切换为下载模式,这里用三极管搭一个自动下载电路,型号为 M8050(商品编号:C541705),手头有料。
电源模块电路
ESP8266供电电压3V~ 3.6V,供电电流 > 500mA,这里选用AMS1117-3V3为WIFI模组供电,为确保WIFI模块的稳定性,单独用一个AMS1117-3.3(商品编号:C347222)给其余外设供电。为避免电路电流倒灌,因此在电源输入处加了用于保护的肖特基二极管1N5819(商品编号: C402219)和SMBJ40CA(商品编号: C340689),LDO的输入和输出部分均放置了跳线电阻,便于对系统进行调试和排故,自恢复保险丝用于过流保护。
温湿度传感器电路
本项目温湿度传感器选用的是广州奥松电子的DHT11(商品编号:C117051)数字温湿度传感器。DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电容式感湿元件和一个 NTC 测温元件,并与一个高性能 8 位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、超长的信号传输距离、数字信号输出、精确校准的优点。
WS2812接口电路
手头有一个WS2812的灯环,共24颗WS2812灯珠。买来放了好久了,这个项目正好可以用上,就是下图的这个,因此我这里就预留了一个排针的接口,便于用杜邦线进行连接。
有些灯珠只支持5V的电平信号控制,ESP8266的电平信号为3V3,需要一个电平转换电路,本项目用型号为WST3400S(商品编号:C105164)的NMOS管设计了一个双向电平转换电路。WS2812的控制可以用普通的GPIO口控制,也能使用SPI的MOSI口控制,因此这里留了两个控制端口,便于选择控制方式,用短路帽选择端口便可。
继电器电路
继电器这里选择 Y3U-SS-105LM(商品编号: C674571),这是一款线圈电压5V的常开型继电器(PS:刚好在立创商城有一张元则继电器15元的品牌券)刚好合适,就是个头有点大。继电器驱动需要专门设计,为了可靠性选择了专用芯片 NUD3105LT1G(商品编号:C14894) ,此驱动电路为高电平触发。下拉电阻R15保证初始状态为低电平,确保系统上电时继电器不会吸合,避免误操作。因ESP8266的GPIO4端口初始化为低电平,因此下图的连接方式较合适的。
注:我这里实际使用的继电器型号是常开继电器,没有常闭触点,图纸上常开和常闭都有,图纸上这样设计只是为了方便兼容常开常闭的继电器。
下图是NUD3124的参考设计电路,外围电路非常简单
控制端口初始化为高电平的时候,上面的这个电路就显得不是很合适了,用以下这个电路较为合适,这个电路中用到了反相器SN74LVC1G04DBVR(商品编号:C434067)。
当MCU的GPIO初始化为高电平时,由于经过了反相器,信号为低电平,NUD3105不导通,继电器不吸合;当GPIO输出为低电平,经过反相器后为高电平,NUD3105导通,继电器吸合。
蜂鸣器电路
这是个常规的蜂鸣器驱动电路,可以选择有源或无源的蜂鸣器,本项目选择的是一款电磁式无源蜂鸣器,型号为YS-MBZ9042C03R16(商品编号: C409836),无源蜂鸣器可以控制发音的频率。
ADC电路
这部分电路主要用于ADC的采集,选用1%的电阻用于采样。引出一个排针,用于外接阻性器件。
这部分也是安信可官方ESP8266系列模组用户手册V1.3中给出的参考电路
PCB Layout
USB部分
USB数据线要走差分线,尽量不要有太多的拐弯
电源部分
电源线必须先经过电容,然后才能给芯片和模块等器件供电
天线部分
在安信可官方ESP8266系列模组用户手册V1.3中有对天线摆放位置的说明。
天线的放置如下图所示,天线底部挖空,两边设置净空区,不铺铜
继电器部分
继电器部分不铺铜,走线要加粗,线路走BOT层,可以设置开窗,焊接时可堆锡,增加载流能力,避免强电部分爬电,在引脚之间设置开槽。
焊接调试
1、拍张照片留个纪念
2、先焊接电源部分,电源部分焊完后用万用表检查是否有短路,若无短路则上电测试,两颗电源指示灯都亮了说明电源部分正常
3、电源没问题,焊上CH340和电源部分的跳线电阻
4、焊好CH340后,连接电脑看看是否可以检测到CH340,电脑已识别CH340的设备,说明电路正常。
5、接下来焊接自动下载电路和ESP8266核心模块
6、连接电脑测试,程序可以正常烧录,ESP8266最小系统正常
7、焊接上其它器件,最终的板子如下图所示
8、开窗部分堆锡处理
注:此部分图片使用的是V0.1的版本,
开发环境
开发工具
开发环境:Arduino1.8.13 官网地址:https://www.arduino.cc/en/Main/Software
Arduino IDE安装完后,在安装根目录下 新建一个 名为 portable 的文件夹,如下图所示。
首次启动Arduino IDE 后,默认路径就会自动指向portable这个文件夹,否则就会在C盘建立一个Arduino15的文件夹用于保存板卡SDK文件。
首次自动Arduino IDE后,portable文件夹内就会自动加载一些配置文件,添加ESP8266的板卡支持
开发板管理器加载平台索引
配置文件夹内的文件如图所示
板卡支持包
SDK支持包:ESP8266 SDK 2.7.4 开源项目地址:https://github.com/esp8266/Arduino/releases/tag/2.7.4
推荐下载地址,这个是我这边整理好的文件,可直接使用 链接:https://pan.baidu.com/s/1plqgOPmJfFymJHCdbGuh7w 提取码:kf0e
在portable文件夹内新建一个 packages 文件夹,将下载的文件解压,如图所示
启动Aruino IDE 后,如下图所示,ESP8266 SDK就可以使用了.
软件包
DHT11软件包:DHT-sensor-library 项目地址:https://github.com/adafruit/DHT-sensor-library
推荐直接在库管理器进行安装,如下图所示
WS2812 软件包: Adafruit_NeoPixel 项目地址:https://github.com/adafruit/Adafruit_NeoPixel
推荐直接在库管理器进行安装,如下图所示
本项目使用点灯科技blinker物联网解决方案进行设备开发,需要使用Blinker Arduino SDK 下载地址:https://github.com/blinker-iot/blinker-library/archive/dev_3.0.zip
使用点灯APP进行控制
下载APP
下载地址:https://diandeng.tech/doc/app-download
界面设计
测试代码
代码见附件:AIOT_Test_demo.zip
项目进度
- 2020/8/5至8/9 白天没什么空,晚上开夜车做项目,用了几个晚上的时间完成了原理图的设计和元件选型以及V0.1的的初始Layout版本设计,选用的继电器官方原理图符号和封装,自己手绘了一个(8/12 PS:连续几个晚上开夜车,状态不太好,这里给自己挖了个坑)
- 2020/8/10日 调整V0.1的布局和Layout,采购了物料。
- 2020/8/11 17:39:58 V0.1的板子放到嘉立创打样了。
- 2020/8/11 21:00 绘制了继电器的3D模型,此时发现之前绘制的封装的引脚孔偏了点,孔小了写,导致3D模型不能完全适配该封装,只能用CAD工具重新绘制封装,导入封装库,并添加了常开常闭的丝印符号,故此有了V0.2版本的工程。
- 2020/8/12 今天收到了采购的物料,验货的时候发现继电器有点奇怪,特意查了下数据手册。发现手册上的图纸是底视图,也就是说要把继电器底面朝向自己看,画封装需要镜像的绘制,故此在V0.1中继电器接线柱的丝印注释常开和常闭错误的,需要交换位置才可以,所以在V0.2中进行的修修改
- 2020/8/12 发现原理图存在几处问题,修改原理图,同时修改PCB Layout。
- 2020/8/13 9:00 板子已经在路上了。
- 2020/8/13 20:00 开始搭环境。
- 2020/8/14 11:00 阿里云个人账户的安全信息添加了一个错误的登录掩码,导致阿里云网页版控制台无法登录,因此本项目准备换一个云平台。
- 2020/8/14 15:00 板子到了,还不错,就是丝印写得有问题
- 2020/8/14 21:00 开始焊接。
- 2020/8/14 00:00 板子焊好,稍微测试了下,板子可以正常使用。
- 2020/8/15 22:00 写了几个测试程序,测试了板子功能,功能完好。PS:困死了,睡觉。
- 2020/8/16 22:00 今天休息,在家调程序,。
- 2020/8/17 23:00 Demo程序调的差不多啦,基本功能都实现了。PS: 作业提交截止时间延长了一周。
- 2020/8/18 23:59 今天开始写文档,看来得写几个晚上了
温馨提示:自己绘制异形元件封装时,最好按照数据手册提供的元件外形尺寸和封装现在CAD软件中绘制好元件尺寸外形,保存DXF文件,然后导入到元件封装中进行焊盘的放置。这样不容易出错。
演示视频
设计图

BOM


评论