基于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.rhkb.cn/news/324106.html

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

相关文章

Linux - make与makefile

文章目录 什么是make和makefile如何使用依赖关系 和 依赖方法伪目标 写个程序-进度条换行和回车的区别 什么是make和makefile make是一个命令 makefile是一个文件 这就是make和makefile的本质 make和 ll , pwd ,su 一样都是命令 makefile和 test , test.c 一样都是…

GPT+Python近红外光谱数据分析

原文链接:GPTPython近红外光谱数据分析https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247603913&idx1&sn6eb8fd6f1abcdd8160815997a13eb03d&chksmfa82172ecdf59e389a860547a238bb86c7f38ae3baa14e97c7490a52ef2a2c206f88d503a5eb&token…

【WPF学习笔记(一)】WPF应用程序的组成及Window类介绍

WPF应用程序的组成及Window类介绍 WPF应用程序的组成及Window类介绍前言正文1、WPF介绍1.1 什么是WPF1.2 WPF的特点1.3 WPF的控件分类 2、XAML介绍2.1 XAML的定义2.2 XAML的特点2.3 XAML的命名空间 3、WPF应用程序组成3.1 App.config3.2 App.xaml3.3 App.xaml.cs3.4 MainWindow…

分布式存储CephFS最佳实践

文章来源于知乎文章: 分布式存储CephFS最佳实践 背景 近日,一朋友说他们企业内部想落地CephFS,让我帮忙写一份能落地的CephFS最佳实践。然后就顺便把文章整理到了这里。因能力水平以及认知有限,如有错漏烦请指正。 简介 CephF…

IP 地理定位神话与事实

ip地理定位是一项技术,用于通过访问设备的ip地址来获取地理位置信息,例如国家、城市、经纬度等。该技术广泛应用于网站内容自定义、广告定位、网络安全和用户分析等领域。它通过与包含ip地址和地理位置映射的大型数据库进行查询来工作,但在准…

聊聊测试团队管理

管理测试团队是一个复杂但至关重要的任务,它不仅关乎于保证软件产品的质量,还涉及到团队建设、流程优化、技能提升等多个方面。以下是一些关键策略,可以帮助您有效地管理测试团队,比如“持续培训和技术支持,明确目标&a…

99、技巧-下一个排列

这个问题要求生成一个数组的下一个排列。所谓“下一个排列”指的是,在所有数字相同但顺序不同的排列中,找出数字序列中刚好比当前序列大的下一个序列。如果当前序列已经是这些排列中的最大值,则下一个排列应该是最小的排列。 思路解释 要解…

QML 本地存储(Setting,sqlite)

Qt hello - 专注于Qt的技术分享平台 QML 原生的储存方有两种: 1,Settings 跟QWidget 中的QSettings 一样,可以简单的存储一些配置。 2,Sqlite sqlite数据库。可以存储一些复杂的数据。 一,Settings 我们以一个按钮的位…

【机器学习300问】81、什么是动量梯度下降算法?

动量梯度下降算法(Momentum)是利用指数加权移动平均的思想来实现梯度下降的算法。让我们先来回顾一下基础的梯度下降方法以及看看它有哪些不足之处。接着引出动量梯度下降算法,在理解了它的原理后看看它是如何规避之前方法的不足的。 如果不知…

Spring如何控制Bean的加载顺序

前言 正常情况下,Spring 容器加载 Bean 的顺序是不确定的,那么我们如果需要按顺序加载 Bean 时应如何操作?本文将详细讲述我们如何才能控制 Bean 的加载顺序。 场景 我创建了 4 个 Class 文件,分别命名为 FirstInitialization Se…

如何使用 ERNIE 千帆大模型基于 Flask 搭建智能英语能力评测对话网页机器人(详细教程)

ERNIE 千帆大模型 ERNIE-3.5是一款基于深度学习技术构建的高效语言模型,其强大的综合能力使其在中文应用方面表现出色。相较于其他模型,如微软的ChatGPT,ERNIE-3.5不仅综合能力更强,而且在训练与推理效率上也更高。这使得ERNIE-3…

第三节课,功能2:开发后端用户的管理接口-- postman--debug测试

一、如何使用postman 网址: https://www.postman.com/downloads/ 【Postman小白教程】五分钟学会如何使用Postman~_哔哩哔哩_bilibili postman安装使用_bowser agent在postman哪里-CSDN博客 二、下载后 登录,开始测试 2.1 关于postman 报错&#…

第十五届蓝桥杯python B组省赛

前言: 这是我第一次参加蓝桥杯,成绩并不理想,我反思了一下午,我的问题主要是知识点学不透,题目做的太少,而且学习的时候少数时间不专心,但是,我能感觉到我的学习能力并不弱&#xf…

分布式锁讲解

概括 分布式锁是一种用于在分布式系统中实现同步机制的锁。在单机系统中,我们可以使用如Java中的synchronized关键字或者 ReentrantLock来实现线程间的同步,但在分布式系统中,由于多个节点(服务器)之间的并发操作&am…

C语言实现扫雷游戏完整版

游戏介绍: 目录 游戏介绍: 游戏框架: 游戏具体功能实现: 棋盘的定义: 棋盘初始化: 棋盘打印: 棋盘布置雷: 棋盘扫雷: 爆炸展开一片: 获取周围八个…

WP Rocket插件下载:加速您的WordPress网站,提升用户体验

在互联网速度决定用户体验的今天,一个快速加载的网站对于吸引和保留访问者至关重要。WP Rocket插件,作为一款专为WordPress设计的高性能缓存插件,提供了一套完整的解决方案,帮助您优化网站性能,提升用户体验。 [WP Ro…

Linux随记(九)

一、在bclinux Euler 21.10 安装oracle19c客户端 (为了使用sqlplus 、expdp、impdp、sqlldr等指令) #环境和说明 系统:BigCloud Enterprise Linux For Euler 21.10 LTS 为了使用sqlplus 、expdp、impdp、sqlldr等指令。 下面是安装步骤 &…

力扣打卡第二天

206. 反转链表 class Solution { public:ListNode* reverseList(ListNode* head) {// //迭代法// ListNode *pre nullptr;// ListNode *curr head;// while(curr){// ListNode *next curr -> next;// curr -> next pre;// pre curr;// curr next;/…

hadoop启动后没有namenode,datanode等解决方法

之前用的是虚拟机,在虚拟机上安装的hadoop,但是后来,电脑恢复出厂设置了,什么都重新开始。就在本地安装 Linux 子系统。 但是,有时候start-dfs.sh后,jps出现错误。 像这种拒绝连接 解决办法就是如下&…

vivado新版本兼容老版本,vitis classic兼容sdk教程

new version: vivado版本2023.2 和vitisv classic 2023.2 old version: vivado 2018.3以及之前的版本 打开工程 自动升级到当前版本,选择OK 点击Yes,合并当前的目录架构 点击OK 点击Report IP status 勾选要升级的IP核,点击升级 在项目工程文件夹…