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.外…

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

目录 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中的子查询…

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

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

源码编译安装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…

【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;比如身…

Unity中的两种ScriptingBackend

一&#xff1a;前言 二&#xff1a;两种模式的介绍 ios&#xff1a;unity只有il2cpp模式的编译才支持64位系统&#xff0c;mono是不支持的&#xff0c;在快速开发阶段仍然支持Mono&#xff0c;但是不能再向Apple提交Mono(32位)的应用 苹果在2016年1月就要求所有新上架游戏必须支…

【独家工具】JMeterPerfReporter3.0正式版本,让你的JMeter更好用

Lemon-JMeterPerfReporter工具&#xff0c;是我们性能测试课程教研组根据JMeter性能测试报告的不足&#xff0c;定制开发的一个性能报告生成工具。有需要的同学&#xff0c;可以通过小编官方gitee账户下载&#xff0c;或咨询我免费获取哦&#xff01; 做过性能测试的人员都知道…

蓝桥杯 题库 简单 每日十题 day12

01 列名 问题描述 在Excel中&#xff0c;列的名称使用英文字母的组合。前26列用一个字母&#xff0c;依 次为A到Z&#xff0c;接下来2626列使用两个字母的组合&#xff0c;依次为AA到zz. 请问第2022列的名称是什么&#xff1f; 答案提交 这是一道结果填空的题&#xff0c;你只…

AI在材料科学中的应用

7 AI在材料科学中的应用 在这一部分&#xff0c;我们将讨论AI技术在材料科学中的应用。首先&#xff0c;我们将介绍晶体材料的概述&#xff0c;并详细定义晶体材料的物理对称性&#xff0c;具体在第7.1节中讨论。接下来&#xff0c;我们将在第7.2节和第7.3节中讨论两个常见且基…

数据结构之单链表

目录 前言&#xff1a; 链表的定义与结构 单链表的接口实现 显示单链表 创建新结点 单链表尾插 头插的实现简单示例图 尾插经典错误示例1 尾插经典错误示例2 尾插函数的最终实现 单链表头插 单链表尾删 单链表头删 单链表查找 单链表在pos位置之前插入数据x ​编…