基于ESP32和ESP8266的物联网开发过程(二)

在做这个项目前,也做了一些调研。项目的初衷是想要用于智能家居。我比较了小米IoT、阿里云、ESPHOME、巴沙云、点灯科技和ONENET等几个平台。最终选择了Onenet,部分原因是之前用过它的多协议版本,但现在这个版本已经下线了。

小米IoT的公测名额去年就已经满了,但最近网上有消息称第二轮公测已经开启。尽管名额增加了,但我不清楚现在是否还有剩余名额。

最初考虑的是一个基于Wifi MESH的方案,但它功耗较大且无法通过外部控制。虽然现在用ONENET也无法实现外部控制,但其免费版仅支持数据接收。

以前我用的是其多协议版本,但现在改用了ONENET的物联网版本,这也是最新的协议版本。为了搞懂这个新协议,我花了不少时间。

现在用ONENET也没法通过外部来控制,ONENET的UI页面上的发送功能在前年我做这个项目时还是免费的,但后来就改为收费了。阿里云也是一样的情况,他们的可视化Web服务也开始收费了。

我试用了巴沙云和点灯科技,他们可以与米家进行联动,但只支持少数设备。虽然配置起来简单,但简单就意味着他们已经将协议和玩法框死了,用户只需点点点就可以使用。这也让我放弃了他们。

最后我选择了Onenet,因为它凑合着能用。它不支持数据的下发,但如果你想要下发数据,也有方法,就是通过它的调试页面,不过在手机上操作会非常麻烦。

Onenet的可视化页面只支持数据接收,不支持数据下发。而且,这个页面上的一些配置还挺复杂的,有点坑,不太人性化。但它最大的优点是支持场景联动,而且是免费的,设备也不少,协议也很多,包括MQTT和HTTP都支持。

我的场景联动初衷是,比如湿度过低了就打开加湿器,到了晚上亮度过低时自动打开灯光,或者检测到人员后自动打开灯光。这个联动功能还是挺好用的,还没有细弄,但试了一下是可以行的。我用一个ESP866作为检测端,把ESP32作为一个控制端。当ESP866检测到数据后发给Onenet,通过场景联动自动控制ESP32这个终端。

关于如何接入米家和其他设备的联动问题,目前还没搞清楚。Onenet他家的版本还是比较多的,分新版旧版mqtt,然后有物联网平台IoT Studio,他们的文档也有几个版本。传输协议中像onejson和自定义透传数据流三个协议不太兼容,彼此之间也不能混合使用。看了几个文档后发现区别还是挺大的。

硬件方面不用担心,大家可以直接买一块开发板来用。接下来说一下onenet平台怎么让设备连接到上面。创建好设备后,将看到设备的密钥、产品ID和设备名字。主要就是这三项。填到配置信息里就可以自动进行连接了。现在演示一下如何连接到ESP866的热点进行信息的配置。输入密码后进行Wifi的连接,然后产品ID、设备ID和设备名字会自动进行接入。不用选离线模式,直接保存。保存后它会尝试进行Wifi连接。

后台显示在线状态后就可以控制那个灯了。如果想通过Onenet控制灯的话,在设备调试的应用模拟器里进行属性设置就可以了。至于物模型的设置,可以自己看一下官方文档。

最后,感谢大家的观看。如果有兴趣,可以查看我之前的一些项目。有的没有开源,但大家可以去了解一下。后续还有一些项目也会更新到这个仓库里。再次感谢!

|

开源链接:https://gitee.com/yangfei_addoil/home-connection

视频链接:https://www.bilibili.com/video/BV14K421Y7C3/

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

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

相关文章

C++ 类和对象:面向对象编程基础

目录标题 1. 什么是类?2. 什么是对象?3. 如何定义一个类?4. 如何创建对象?5. 类的构造函数6. 类的析构函数7. 数据封装和访问修饰符8. 示例:一个简单的BankAccount类9. 使用g编译10. 再来一个简单的C程序11. 定义书籍类…

Linux修炼之路之初识操作系统+基础指令(1)

目录 引言 一:对操作系统(OS)的简单了解 1.操作系统(OS) 是什么 2.操作系统好坏的衡量标准 3.操作系统存在的重要性 4.理解所有在计算机上的操作 二:Linux与windows操作的特点区别 三:基础指令 1.ls 指令 1.使用 2.常用选项 2.…

AI时代,为什么还要学习编程

在AI时代的浪潮之下,人工智能正逐渐渗透到我们生活的每一个角落,从自动化的客服系统到智能家居控制,再到先进的机器学习和数据分析技术。这一切进步无疑都在提问一个根本性问题:在AI如此先进的今天,为什么我们还需要学…

ICode国际青少年编程竞赛- Python-3级训练场-if else练习

ICode国际青少年编程竞赛- Python-3级训练场-if else练习 1、 for i in range(6):Dev.step(2)Dev.turnLeft()if i ! 1:Dev.step(2)Dev.step(-2)else:Dev.step(-3)Dev.step(3)Dev.turnRight()2、 Dev.step() for i in range(5):Dev.step(2)Dev.turnRight()if i < 1:Dev.s…

数电——集成计数器

分析 &#xff08;1&#xff09;74161 4位同步&#xff08;cp相同&#xff09;二进制&#xff0c;模16&#xff08;2的4次方&#xff09; 逻辑符号 端口 D0,D1,D2,D3为输入信号 Q0,Q1,Q2,Q3为输出信号 RCO输出进位标志&#xff1a;记满16个数后&#xff0c;输出1 P,T 控…

OpenHarmony 实战开发——编译4.0 bete2及master分支,添加参数--no-prebuilt-sdk跳过编译sdk

简介 用户应用程序泛指运行在设备的操作系统之上&#xff0c;为用户提供特定服务的程序&#xff0c;简称“应用”。一个应用所对应的软件包文件&#xff0c;称为“应用程序包”。 OpenHarmony 提供了应用程序包开发、安装、查询、更新、卸载的管理机制&#xff0c;方便开发者…

【SRC实战】合成类小游戏外挂漏洞

挖个洞先 https://mp.weixin.qq.com/s/ZnaRn222xJU0MQxWoRaiJg “以下漏洞均为实验靶场&#xff0c;如有雷同&#xff0c;纯属巧合” 合成类小游戏三个特点&#xff1a; 1、一关比一关难&#xff0c;可以参考“羊了个羊” 2、无限关卡无限奖励&#xff0c;可以参考“消灭星星…

java期末复习

java jdk jre jvm .java-------->.class----jvm---->机器语言 编写源文件 编译源文件生成字节码 加载运行字节码 java语句执行顺序 顺序 选择 循环 异常处理 基本语法 方法格式 权限修饰符 返回值声明 方法名称(参数列表){方法中封装的逻辑功能;return 返回值;}–权…

Python语言基础学习(上)

目录 一、常量和表达式 二、变量和类型 2.1 认识变量 2.2 定义变量 2.3 变量类型 1、整数 int 2、浮点数&#xff08;小数&#xff09;float 3、字符串 str 4、布尔类型 2.4 类型转换 三、注释 3.1 单行注释 3.2 文档注释&#xff08;或者多行注释&#xff09; …

QML配合VTK基本实现

采用 QT5.15 VTK9.2.0 建立QT QUICK项目 部分方法来源于 QML加载VTK main.cpp #include <QGuiApplication> #include <QQmlApplicationEngine>#include <QQuickVTKRenderWindow.h> #include <QQuickVTKRenderItem.h> #include <vtkPolyDataMapp…

[MRCTF2020]Ez_bypass1 and [网鼎杯 2020 青龙组]AreUSerialz1()php语言基础学习,以及序列化概念的基本了解

1.[MRCTF2020]Ez_bypass1 &#xff08;1&#xff09;打开环境后它是一串很长并且看起来非常混乱的代码&#xff0c;看不懂那咱就先不管&#xff0c;直接查看源码 &#xff08;2&#xff09;看了之后可以发现它涉及到很多东西 首先就是要进行一个仔细的代码审计&#xff0c;分…

Windows11 同时安装jdk8和jdk17 可切换

Windows11 同时安装jdk8和jdk17 可切换 死忠于JDK8的码农们&#xff0c;可能不得不做出一些改变的 因为在springboot3最低也是只能用17 并且最近如果创建springboot项目的时候&#xff0c;你会发现&#xff0c;最低也是17的 并且&#xff0c;如果使用springcloud开发&#x…

LeetCode 每日一题 ---- 【2105. 给植物浇水 II】

LeetCode 每日一题 ---- 【2105. 给植物浇水 II】 2105.给植物浇水II方法&#xff1a;模拟双指针 2105.给植物浇水II 方法&#xff1a;模拟双指针 今天是给植物浇水II&#xff0c;昨天是I&#xff0c;本质上和昨天的没有区别&#xff0c;都是模拟&#xff0c;今天额外需要注意…

网络相关指令linux指令该怎么使用 - telnet

Telnet 指令使用方法 Telnet 是一种用于远程登录服务器的协议。以下是一些常见的 Telnet 指令及其用途。 基本指令 telnet [主机名或IP地址] [端口] 功能&#xff1a;连接到指定的远程主机和端口。示例&#xff1a;telnet example.com 23 Telnet 内部指令 c - close 功能&…

Linux vscode push报错fatal: Authentication failed

注意啊&#xff0c;Git基于密码的身份验证已经被删除了&#xff0c;所以这个报错发生时无论密码正确与否&#xff0c;以及参考比较旧的改bug教程&#xff0c;都没法提交。进入提示的网址&#xff0c;生成个人访问令牌就好了

Vue中引入Element组件、路由router、Nginx打包部署

目录 1、Element-ui(饿了么ui) 演示&#xff1a; 怎么打开NPM脚本&#xff1f; Vue路由router Nginx打包部署Vue-Cli项目 1、Element-ui(饿了么ui) element-ui(饿了么ui)是一个非常好用且美观的组件库(插件库)&#xff0c;主要用于网站快速成型&#xff0c;由国产团队饿了么…

设置多用户远程登录windows server2016服务器

1、远程登录windows server 2016 运行—>mstsc—>远程IP地址—>用户和密码 2、远程windows服务器设置多用户策略 运行—>gpedit.msc->计算机配置—管理模板—windows组件—远程桌面服务—远程桌面会话主机----连接,如下图所示: 1、《限制连接的数量》设置为…

2024-AIDD-人工智能药物设计-基于深度学习的胶质母细胞瘤靶点蛋白的识别与药物设计

UniProt搜索胶质母细胞瘤相关蛋白&#xff1a;从UniProt数据库查找胶质母细胞瘤相关的蛋白质数据是一个很好的开始&#xff0c;这可以帮助你识别与疾病相关的关键蛋白。 疾病与中药交集分析&#xff1a;研究中药&#xff08;如益气解毒方&#xff09;与胶质母细胞瘤的关系&…

Mybatis高效批量插入实战:五种策略全面解析

在现代应用开发中&#xff0c;数据处理常常涉及大量数据的插入操作&#xff0c;特别是在数据迁移、日志记录、统计分析等场景中。Mybatis作为Java领域广泛使用的持久层框架&#xff0c;其批量插入功能对于提升数据插入效率至关重要。本文将深入探讨Mybatis实现批量插入的五种策…

网络安全基础

目录 概述 1. 需求 2. 密码学 3. 保密 4. 数字签名 5. 身份认证 6. 对称密钥分配及管理 7. 公钥认证及PKI 8. 网络安全协议标准 结语 概述 在当今数字化时代&#xff0c;网络安全是任何组织和个人都必须重视的重要问题。从个人隐私到商业机密&#xff0c;网络安全的基…