5.wifi开发【智能家居:上】,开发准备:智能开关灯,智能采集温湿,智能调彩灯

一。wifi智能家居项目开发

【开发准备1】:继电器控制开发

1.智能开关

器件准备:wifi(esp8266,使用CP2102)继电器

结果:

2.继电器工作原理

(1)继电器是一种自动电气开关

    (1) 输入输出电路隔离

    (2)信号转换(从断开到接通)

    (3)增加输出能力

(2)继电器工作原理

利用电磁铁控制工作电路通断的开关

(3)继电器模块介绍

        高电平触发指的是信号触发端(IN)与电源负极之间有一个正向电压,.通常是用电源的正极与触发端连接的一种触发方式,当触发端有正极电压或达到触发的电压时,继电器则吸合。低电平触发指的是信号触发端与电源负极之间的电压为Ov时,或者说触发端的电压比电源正极的电压更低,低到可以触发的电压时,使继电器吸合,通常是将电源的负极与触发端连接的一种触发方式使继电器吸合。

        产品参数:

电压版本:5v静态电流:4mAs工作电压:65mA蚀发电压:2-5V触发电流:2mA

(4)继电器模块使用

3.开发要求:

1.ComBox模拟TCP客户端连接ESP8266

    (1)发送“relayon”打开继电器

    (2)发送“relayoff”关闭继电器

4.硬件连接

1.采用GPIO5直接驱动继电器

2.继电器电源VCC连接到VIN  继电器GND连接到GND

5.开发流程

1.在SDK目录下新建relay文件

2.拷贝tcpserver下所有文件到relay下

3.在relay/user目录下新建relay.c

4.在relay/include目录下新建relay.h

5.在tcpserver下完成relayon/relayoff解析

6.控制命令解析

【开发准备2】:环境采集模块

1.智能环境采集

器件使用

wifi模块+温湿度

结果:温湿度采集模块

2.空气温湿度传感器原理

数字式空气温湿度传感器

        16Bit温度测量 16Bit湿度测量

3.驱动设计

1.启动采集

2.配置IO为输出模式

3.拉低18ms后拉高

4.配置IO为输入模式

5.延时40us等待DHT11相应

6.DHT11拉低

7.等待拉低80us后拉高

8.等待拉高80us后拉低

4.

5.需求分析

1.ComBox模拟TCP客户端连接ESP8266

2.定时5秒采集一次温湿度数据

3.客户端发送readdata,服务器当前温湿度数据

6.功能开发

(1)新建dht11工程目录

1.在SDK目录下新建dht11目录

2.拷贝tcpserver目录下所有文件到dht11目录下

(2)新建dht11源码文件

1.在user目录下新建tdht11.c

2.在include目录下新建dht11.h

(3)Sourceinsight配置

1.在之前的工程中,移除relay文件夹

2.添加dht11文件夹

7.代码实现

1.在dht11.c下

    (1)创建Dht11_init(),用于任务创建

    (2)创建void ATaskDht11( void *pvParameters ),用于任务实现

    (3)创建DHT11_TEST(void) ,用于温湿度数据采集

【正式实现1】:wifi智能灯开发

1.智能灯泡

wifi+WS2812RGB

结果:智能灯

2.WS2812RGB介绍

WS2812RGB原理:

        控制电路与RGB芯片集成在一个5050封装的元器件中, 构成一个完整的外控像素点。         每个像素点的三基色颜色可实现256级亮度显示,完成16777216种颜色的全真色彩显示, 扫描频率不低于400Hz/s。

        串行级联接口, 能通过一根信号线完成数据的接收与解码。 当刷新速率30帧/秒时, 低速模式级联数不小于512点, 高速模式不小于1024点。

        数据发送速度可达800

WS2812RGB硬件连接:

WS2812驱动时序图

输入码型

输入码型(高位先发,按照GRB的顺序发送数据)

数据传输方法

硬件连接

1.采用GPIO5直接驱动WS2812 VIN

2.VCC连接到3.3V GND连接到GND

3.驱动设计

1.发送0码

2.发送1码

3.ns级延时

4.发送复位码

5.写入RGB数据

4.代码实现

1.进入临界段

2.发送复位码

3.循环写入7组RGB数据

4.退出临界段

【正式实现2】:wifi智能灯开发2

1.功能需求

1.ComBox模拟TCP客户端连接ESP8266

2.客户端发送setcolour,服务器接收解析,改变一次灯泡颜色

2.功能开发

新建ws2812工程目录

1.在SDK目录下新建ws2812目录

2.拷贝tcpserver目录下所有文件到ws2812目录下

新建ws2812源码文件

1.在user目录下新建ws2812.c

2.在include目录下新建ws2812.h

Sourceinsight配置

1.在之前的工程中,移除dht11文件夹

2.添加ws2812文件夹

代码实现

1.在ws2812.c下

    (1)创建delay100Ns(),用于精准延时

    (2)创建SEND_WS_0(),用于写入0码

    (3)创建SEND_WS_1(),用于写入1码

    (4)创建Ws2812REST (),用于帧复位

    (5)创建Ws2812Write(colours colour),用于颜色写入

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/91031.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

排序:外部排序算法分析

1.外存与内存之间的数据交换 1.外存(磁盘) 操作系统以“块”为单位对磁盘存储空间进行管理,如:每块大小1KB 各个磁盘块内存放着各种各样的数据。 2.内存 磁盘的读/写以“块”为单位数据读入内存后才能被修改修改完了还要写回磁盘。 2.外…

【Netty】ByteToMessageDecoder源码解析

目录 1.协议说明 2.类的实现 3.Decoder工作流程 4.源码解析 4.1 ByteToMessageDecoder#channelRead 4.2 累加器Cumulator 4.3 解码过程 4.4 Decoder实现举例 5. 如何开发自己的Decoder 1.协议说明 Netty框架是基于Java NIO框架,性能彪悍,支持的协…

MySQL系统与内建函数

在游戏开发、特别是像《三国志》这样的大型策略游戏中,数据分析是不可或缺的。从玩家行为到游戏内的战役结果,都需要通过高效的数据分析来优化游戏体验。MySQL的系统和内建函数为这样的分析提供了强大的工具。 本文将详细介绍MySQL中常用的系统与内建函数,并通过《三国志》…

【数据结构】归并排序、基数排序算法的学习知识点总结

目录 1、归并排序 1.1 算法思想 1.2 代码实现 1.3 例题分析 2、基数排序 2.1 算法思想 2.2 代码实现 2.3 例题分析 1、归并排序 1.1 算法思想 归并排序是一种采用分治思想的经典排序算法,通过将待排序数组分成若干个子序列,将每个子序列排序&#xff…

C++中实现一些特殊的类|设计模式

1.设计一个类 不能被拷贝 拷贝只会发生在两个场景中:拷贝构造以及赋值运算符重载。想要让一个类禁止拷贝,只需要该类不能调用拷贝构造和赋值运算符重载 c98中 将拷贝构造与赋值运算符重载只声明不定义,不定义是因为该函数根本不会调用&#x…

【Java 进阶篇】MySQL多表查询之子查询详解

在数据库查询中,多表查询是一项非常常见且重要的任务。它允许我们从多个相关联的表中检索和组合数据,以满足各种复杂的查询需求。在多表查询中,子查询是一种强大的工具,用于在查询中嵌套另一个查询。本文将深入探讨MySQL中的子查询…

什么是好的UI设计?优漫动游

UI(UserInterface),即界面设计,它是网站、App给用户在感觉(视觉、触觉、听觉等)和情感上带来的第一体验,包括人机交互、界面逻辑、界面美观设计三个方面。简单来讲,UI不仅是一种表现…

【Java】建筑工地智慧管理系统源码

智慧工地系统运用物联网信息技术,致力于推动建筑工程行业的建设发展,做到全自动、信息化,智能化的全方位智慧工地,实现工程施工可视化智能管理以提高工程管理信息化水平。 智慧工地平台拥有一整套完善的智慧工地解决方案&#xff…

linkedlist和arraylist的区别

LinkedList和ArrayList都是常见的数据结构,用于存储和操作集合元素,如果需要频繁进行插入和删除操作,LinkedList可能更适合。如果需要快速随机访问和较小的内存占用,ArrayList可能更合适。 以下是它们之间存在一些关键的区别&…

源码编译安装zstd

目录 1 下载源码https://github.com/facebook/zstd 2 解压 3 在解压后的目录里输入make 4 sudo make install 安装完毕 5 输入whereis zstd 检查安装结果 1 下载源码https://github.com/facebook/zstd 2 解压 3 在解压后的目录里输入make 4 sudo make install 安装完毕…

图扑软件受邀亮相 IOTE 2023 国际物联网展

IOTE 2023 国际物联网展,作为全球物联网领域的盛会,于 9 月 20 日 - 22 日在中国深圳拉开帷幕。本届展会以“IoT构建数字经济底座”为主题,由深圳市物联网产业协会主办,打造当前物联网最新科技大秀。促进物联网与各行业深度融合&a…

安卓玩机-----给app加注册码 app加弹窗 云注入弹窗

在对接很多工作室业务中有些客户需要在他们自带的有些app中加注册码或者验证码的需求。其实操作起来也很简单。很多反编译软件有自带的注入功能。例如注入弹窗。这个是需要对应的注册码来启动应用。而且是随机id。重新安装app后需要重新注册才可以继续使用,原则上可…

mysql面试题5:索引、主键、唯一索引、联合索引的区别?什么情况下设置了索引但无法使用?并且举例说明

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:说一说索引、主键、唯一索引、联合索引的区别? 索引、主键、唯一索引和联合索引是数据库中常用的索引类型,它们有以下区别: 索引:索引是一种数…

ShowDoc部署与应用:文档管理的最佳实践

在项目开发和协作中,文档管理扮演着至关重要的角色。ShowDoc作为一款卓越的开源文档管理工具,不仅提供强大的文档管理功能,还具备简单易用的协作和部署特性。我们的项目团队最初选择了ShowDoc作为文档管理工具,用以促进前后端协作…

UE4/5数字人MetaHuman通过已有动画进行修改

目录 通过已有动画修改动画 开始制作 创建一个关卡序列 将动画序列烘焙到控制绑定 打开我们自己创建的动画序列 之后便是烘焙出来 通过已有动画修改动画 首先架设我们已经有相关的MetaHuman的动画,但是这个动画因为是外部导入进来的,所以可能会出…

MySQL报错:this is incompatible with sql_mode=only_full_group_by 解决方法

文章目录 项目场景:原因分析及解决方案:总结: 项目场景: 提示:这里简述项目相关背景: which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_modeonly_f…

Vue中自定义实现类似el-table的表格效果实现行颜色根据数据去变化展示

主要使用div布局实现表格效果&#xff0c;并使用渐变实现行背景渐变的效果 页面布局 <div class"table-wrap"><div class"table-title"><divv-for"(item, index) in tableColumn":key"index":prop"item.prop&qu…

怎样选择第三方检测机构获取功能测试报告?

数字化时代&#xff0c;软件给人们的生活带来了越来越多的便利&#xff0c;产品功能测试也成为了软件开发方在研发时的重要环节&#xff0c;这关系到用户使用产品的体验感。所以做好软件功能测试对把控产品质量有着很大影响&#xff0c;通过有效的功能测试能够发现系统潜在的问…

【Linux学习】05-1Linux上安装部署各类软件

Linux&#xff08;B站黑马&#xff09;学习笔记 01Linux初识与安装 02Linux基础命令 03Linux用户和权限 04Linux实用操作 05-1Linux上安装部署各类软件 文章目录 Linux&#xff08;B站黑马&#xff09;学习笔记前言05-1Linux上安装部署各类软件JDK安装部署Tomcat安装部署maven…

Springcloud实战之自研分布式id生成器

一&#xff0c;背景 日常开发中&#xff0c;我们需要对系统中的各种数据使用 ID 唯一表示&#xff0c;比如用户 ID 对应且仅对应一个人&#xff0c;商品 ID 对应且仅对应一件商品&#xff0c;订单 ID 对应且仅对应 一个订单。我们现实生活中也有各种 ID &#xff0c;比如身…