文章目录

  • 智能家居系统设想
  • 先来成果视频欣赏
  • Domoticz服务器搭建
  • MQTT服务器的搭建
  • 外网控制的实现方法
  • 在Domoticz管理页面新建设备
  • Arduino IDE程序的实现

智能家居系统设想

最近在研究一套开源的,又可以实现外网控制的物联网方案。

网上找了很多方案,也试了好几个平台,但始终不如意,不是服务器不稳定,就是设备数量有限制。

最终找到了Domoticz这个平台,自己钻研了一段时间,期间看到了下面这个帖子https://blog.csdn.net/weixin_41534481/article/details/104587842,
其中bibi博主https://www.bilibili.com/video/av67989389 的视频对我启发很大,感谢这两位作者

但是由于本人不是很擅长python代码,考虑到对于后期设备代码的修改,不得不放弃python固件的方案。
经过多方查阅资料,发现Arduino IDE自带的示例程序里面就可以用MQTT连接Domoticz服务器,于是就有了下文。

先来成果视频欣赏

domoticz物联手机外网控制

下面我们开始来搭建这个平台吧

Domoticz服务器搭建

首先,我们去Domoticz 中文站
官网https://www.domoticz.cn/downloads/
下载WIN10系统的安装文件


下载完成后,解压文件
双击DomoticzSetup_2020_2.11995.exe开始安装

其他的安装步骤我就不一一列举了
需要特别注意的是端口的设置
因为我的8080端口已经在用,所以我改为7788
如果默认的端口未被占用,可以不做修改

安装完成后
在浏览器输入http://127.0.0.1:7788/#/Dashboard
回车键就可以进入服务器管理界面


这里我已经设置好了中文
为了给大家演示,我重新设置一遍
点击右上角的setup里面的settings

按照如图提示设置好语言
设置经纬度,最后按Apply settings
经纬度查询https://www.domoticz.cn/location/

再次返回设置界面,把用户名跟密码设置好
以便下次登陆需要

到这里,Domoticz服务器就搭建好了

接下来要实现ESP8266的接入和控制,我们得借助MQTT协议,关于MQTT请朋友们自行百度

下面一步需要电脑安装JDK,请自行安装,步骤参照win10系统安装配置java环境-百度经验:https://jingyan.baidu.com/article/4b52d702db5982fc5c774bc3.html

MQTT服务器的搭建

这里用的是ActiveMQ
官网链接下载很慢
直接蓝奏云下载下载:https://wwa.lanzous.com/i9Nfqlh0qla 密码:czdh
下载完成后放到喜欢的目录解压
解压后双击activemq.bat运行

等待命令行出现端口等信息即可


MQTT的搭建告一段落,MQTT默认的IP是电脑的IP,端口是1883,接下来会用到

外网控制的实现方法

温馨提示:这里涉及电脑网络安全,有泄露个人隐私的风险,请做好安全措施,否则后果自负

要实现外网控制,我们必须将本地控制的IP和端口映射到外网端口
Domoticz的控制端口为127.0.0.1: 7788
MQTT的控制端口为127.0.0.1:1883

我们用到的映射软件是樱花映射
网址https://www.natfrp.com
注册好账号之后,可以获得5条免费的TCP映射隧道
这足以够我们智能家居服务器用了
我们新建两条映射,一条是Domoticz的手机APP用的
另外一条是为ESP8266模块搭建的模块跟服务器异地控制的
(MQTT通讯)

关于如何使用樱花映射,参照官方的文档
https://doc.natfrp.com/#/

配置好以后,下载樱花映射的WIN10客户端

安装完成后打开软件,输入启动密匙,打开新建的隧道即可

在Domoticz管理页面新建设备

点击右上角,设置,硬件,新建MQTT硬件
设置如下,其他默认,点击增加

再新建一个mqtt传感器硬件,设置如下

接下来点击,创建虚拟传感器


设置如下

接着点击,设置,设备
看到我们刚刚新建的设备,设备编号是1,等下会用到


最后点击工具栏的,开关
看到一个设备的预览界面,也是控制界面

烧脑的环节就要到来了,我们来看看程序如何实现控制

Arduino IDE程序的实现

关于Arduino IDE的配置可以参考
https://www.arduino.cn/thread-76029-1-1.html

配置好环境后,我们还需要一个MQTT的库文件
蓝奏云下载:https://wwa.lanzous.com/i5WATlh4f1i 密码:eka4
下载解压到如图的路径下即可

接着我们打开IDE软件,打开如图的例子


修改WIFI信息,以及MQTT的服务器地址,MQTT的服务地址填写樱花映射之后的外网地址

再修改一下MQTT的端口(映射后的端口),以及设备的编号


删掉一些不必要的程序段后下载到8266
打开我们的Domoticz手机APP,就可以愉快地玩啦

domoticz物联手机外网控制

本人修改好的代码domoticz外网控制代码

今天的分享就到这里了,欢迎爱好物联网的朋友一起来交流

搭建Domoticz智能家居服务器实现外网控制ESP8266相关推荐

  1. 基于Domoticz智能家居系统(十三)Domoticz-3.8153在Tiny6410开发板上的移植

    Domoticz-3.8153在Tiny6410开发板上的移植 本文将在友善之臂Tiny6410开发板上移植Domoticz-3.8153,起因是去年在mini2440上移植的3.5877版本编译出来 ...

  2. 基于Domoticz智能家居系统(十四)用ESP8266做MQTT客户端实验

    基于Domoticz智能家居系统(十四)用ESP8266做MQTT客户端实验 用ESP8266做MQTT客户端 一些前期的准备 第一步 设置ESP8266开发板的BSP的搜索引擎链接 第二步 下载安装 ...

  3. 为什么用自己的电脑部署服务器之后外网访问不到呢?并且该如何解决这个问题呢?

    为什么用自己的电脑部署服务器之后外网访问不到呢?并且该如何解决这个问题呢? 参考文章: (1)为什么用自己的电脑部署服务器之后外网访问不到呢?并且该如何解决这个问题呢? (2)https://www. ...

  4. 远程登录服务器链接外网-启动Teamviewer

    应用场景: 有一台服务器和你在同一局域网下,但是和你不在同一间屋子里,你想可视化服务器上跑的程序,但你却懒得动弹,因此,你想使用teamviewer远程连接.但是你需要登录校园网才可以使服务器访问外网 ...

  5. RustDesk 自建服务器,局域网可以连接服务器,外网就不可以了。 求高手指点迷津。

    RustDesk 自建服务器,局域网可以连接服务器,外网就不可以了. 求高手指点迷津. 局域网连接是没有问题的,但是映射到公网ip就是连不上,端口映射没有问题.有那位大神可以指点迷津用云服务器吗? 就 ...

  6. rustdesk RustDesk 自建服务器,局域网可以连接服务器,外网就不可以了。 求高手指点迷津。

    rustdesk RustDesk 自建服务器,局域网可以连接服务器,外网就不可以了. 求高手 局域网连接是没有问题的,但是映射到公网ip就是连不上,端口映射没有问题.有那位大神可以指点迷津用云服务器 ...

  7. 智能家居之设备配网(理论篇)

    前言:记录杭州疫情,独自在杭州跨年了,不过也可以抽出点时间来写写博客分享一下,在这也要祝大家虎年大吉!! 本篇目标:介绍当前智能家居产品中,关于设备配网中用到的一些技术 配网的作用 现在家庭生活中,智 ...

  8. 服务器无外网环境安装软件

    服务器无外网环境安装软件 背景 yum源 rpm安装 背景 有过linux服务器内网环境安装各种软件经历的童靴或多或少体验过安装过程中各种依赖缺失,又找不到合适rpm包的痛苦,下面是一些我工作经历中总 ...

  9. Nginx代理内网服务器访问外网

    Nginx代理内网服务器访问外网 1.SpringBoot工程配置文件改写 2. SpringBoot静态工具类注入配置文件变量 3. SpringBoot 使用 4. 配置Nginx 问题描述: 有 ...

最新文章

  1. tensorflow笔记 :常用函数说明
  2. 【已更新内测入口】阿里云宣布开放开源 AliSQL 数据库 性能可提升 70%
  3. python怎么定义空矩阵_Python创建一个空的稀疏矩阵
  4. Python与风水 的‘’南北通透‘’住宅与‘’南北” 向住宅的均价数据分析
  5. 采购寄售业务的系统实现
  6. windows下buildbot 的搭建及config文件讲解
  7. 汇编语言(二十三)之求一个数的补数
  8. Rock8247 bsp-Tornado-VXWorks Build up
  9. jvisualvm.exe远程连接tomcat
  10. java enum转ini_JAVA中用XML实现INI文件格式的解决方
  11. 剑指Offer - 翻转单词顺序列
  12. JAVA基础之变量(数据类型及其转换)
  13. jar命令成功完成 java -jar 命令却提示“没有主清单属性”!
  14. java常见抛出异常
  15. 360浏览器显示没有网络连接到服务器地址,Win10 360浏览器提示网络连接错误错误代码102如何解决...
  16. html逐字显示并停止,Pr字幕如何让他逐字出现逐字消失?
  17. vht160什么意思_802.11n 中HT20 HT40是什么意思
  18. 计算机网络没有接收什么情况,电脑网络连接失败 网卡只有发送没有接收该怎么办?...
  19. 常见传感器和芯片的介绍
  20. java爬虫爬取B站弹幕

热门文章

  1. 20 个短小精悍的 pandas 骚操作
  2. 办公用PC机的CPU是基于冯诺伊曼结构,然而单片机是哈佛结构的
  3. iOS 15提示“此App的开发者需要更新APP以在此IOS版本上正常工作”
  4. 组件分享之后端组件——基于Golang语言的游戏服务器框架leaf
  5. python好学吗一般要学多久-Python好学吗?精通Python需要多长时间?
  6. 计算两个数据的百分比
  7. AD7606调试笔记
  8. oracle求两个字段的日期差
  9. 分散性与变异性的度量——全距、四分位距、标准差、标准分
  10. css margin为什么重叠,CSS 外边距(margin)重叠及防止方法