TAIDONG - MQTT
type: channel
link: https://zhangtaidong.cn/tag/MQTT/
items: ESP32-16路远程智能开关(支持手动开关/MQTT远程控制/安卓APP控制/蓝牙控制)
items: ESP32-8路远程智能开关(支持手动开关/MQTT远程控制/安卓APP控制/蓝牙控制)
items: ESP32-4路远程智能开关(支持手动开关/MQTT远程控制/安卓APP控制/蓝牙控制)
items: ESP8266-4路远程开关(支持手动开关/MQTT远程控制/安卓APP控制)
items: MQTT域名服务器安装配置
items: MQTT_IP服务器安装配置
items: CentOS 7上安装和保护 MQTT 的 mosquito

ESP32-16路远程智能开关(支持手动开关/MQTT远程控制/安卓APP控制/蓝牙控制)
type: item
date: 2020-11-08T20:14:00+08:00
description: 通过ESP32-30脚-制作16路智能远程+手动同步开关所需组件ESP32(30脚)5V 2A电源适配器5V继电器x 161N4007 x 16330E电阻x 16BC547晶体管x 16两针接线端子连接器x 16蜂鸣器电子原理图手动控制开关蓝牙控制开关Code源码此处省略/待分享PCB设计图及分享下载在Easyeda.com上传PCB下单即可，该PCB设计文件对所有人开放。下载地址：整理中...!安卓APP控制下载地址：整理中...！

ESP32-8路远程智能开关(支持手动开关/MQTT远程控制/安卓APP控制/蓝牙控制)
type: item
date: 2020-11-08T20:08:00+08:00
description: 通过ESP32-38脚-制作8路智能远程+手动同步开关所需组件ESP-32开发板-(30脚)5V继电器Hi-Link 5V电源电阻(10kΩ和330Ω)两针端子连接器BC547晶体管 1N4007二极管蜂鸣器LED和按钮电子原理图手动控制开关蓝牙控制开关Code源码此处省略/待分享PCB设计图及分享下载在Easyeda.com上传PCB下单即可，该PCB设计文件对所有人开放。下载地址：整理中...!安卓APP控制下载地址：整理中...！

ESP32-4路远程智能开关(支持手动开关/MQTT远程控制/安卓APP控制/蓝牙控制)
type: item
date: 2020-11-08T19:58:00+08:00
description: 通过ESP32-30脚-制作4路智能远程+手动同步开关所需组件ESP-32开发板-(30脚)5V继电器Hi-Link 5V电源电阻(10kΩ和330Ω)两针端子连接器BC547晶体管 1N4007二极管蜂鸣器LED和按钮电子原理图手动控制开关蓝牙控制开关Code源码此处省略/待分享PCB设计图及分享下载在Easyeda.com上传PCB下单即可，该PCB设计文件对所有人开放。下载地址：整理中...!安卓APP控制下载地址：整理中...！

ESP8266-4路远程开关(支持手动开关/MQTT远程控制/安卓APP控制)
type: item
date: 2020-11-08T19:52:00+08:00
description: 通过ESP826-01制作4路智能开关所需组件ESP8266-01模块HiLink 5V电源AMS1117 IC5V继电器（4个）MCT2E IC（4个）1N4007二极管（4个）3pin端子连接器（4个）BC547晶体管（4个）10K电阻（8个）电路原理图手动开关原理图Code源码此处省略/待分享PCB设计图及分享下载对于这个项目，我设计了2层PCB使其非常紧凑。在Easyeda.com上传PCB下单即可，该PCB设计文件对所有人开放。下载地址：整理中...!安卓APP控制下载地址：整理中...！

MQTT域名服务器安装配置
type: item
date: 2020-10-02T13:47:00+08:00
description: 源码安装Nginx的 配置文件默认在 /usr/local/nginx/conf 里面的 nginx.conf文件！./nginx - t : 表示检测 nginx.conf文件的语法是否有问题！ ./nginx - s reload : 表示重新加载 nginx.conf文件！ ./nginx - s quit : 表示强制或正常退出 Nginx 服务！ ./nginx : 表示开启 Nginx 服务！服务器配置；yum update //更新我们的 yum 源 yum -y install gcc automake autoconf libtool make //安装 make工具 yum install gcc gcc-c++ //安装g++ yum install pcre pcre-devel //安装pcre正则表达式，因为nginx的rewrite模块和http核心模块都是使用它 wget http://nginx.org/download/nginx-1.9.9.tar.gz //获取 nginx tar -vzxf nginx-1.9.9.tar.gz //解压 nginx cd nginx-1.9.9 ./configure //先使配置文件nginx生效 yum install zlib zlib-devel //zlib提供压缩算法，nginx很多地方都会用到 yum install openssl openssl-devel //用到安全页面，所以需要 OpenSSL库 wget https://codeload.github.com/openresty/headers-more-nginx-module/tar.gz/v0.33 //这个可以适配某些JS的webSocket协议头的库。解压tar -vzxf headers-more-nginx-module-0.33.tar.gz 可能需要直接访问域名下载，WinSCP工具上传 ./configure --prefix=/usr/local/nginx --add-module=/root/nginx-1.9.9/headers-more-nginx-module-0.33 --with-http_stub_status_module --with-http_ssl_module //添加模块openSSL和headers-more-nginx-module-0.33 make && make install //开始编译nginx代码 cd /usr/local/nginx/sbin && ./nginx -V //****emqttd在这个是目录****编译nginx代码后会有/usr/local/nginx目录，我们查看当前编译后有哪些模块生效了 wget https://www.emqx.io/downloads/broker/v2.3.11/emqttd-centos7-v2.3.11.zip //获取emq压缩包 yum install unzip -y //新增zip的解压工具，用来解压emq的压缩包 unzip emqttd-centos7-v2.3.11.zip //解压压缩包emq cd emqttd/bin ./emqttd start 执行服务器emq cd /usr/local/nginx/conf && vim nginx.conf -------------------------复制粘贴以下代码在http {}中---------------------------server { listen 443; server_name mqtt.123456.cn; #你的域名 ssl on; ssl_certificate /root/myCert/cert/mqtt.123456.cn_chain.crt; #这里是证书 ssl_certificate_key /root/myCert/cert/mqtt.123456.cn_key.key; #这里是秘钥 ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; } location = /mqtt { # 8083就是我们的emq的websocket的端口号 proxy_pass http://mqtt.12…

MQTT_IP服务器安装配置
type: item
date: 2020-10-01T13:43:00+08:00
description: 第 1 步：添加 EPEL 软件库yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 查看结果：yum repolist all | grep enabled第 2 步：安装 mosquitto查找 mosquitto 软件包：yum list all | grep mosquitto 查看 mosquitto 信息： yum info mosquitto 安装 mosquitto 软件包： yum install mosquitto 查看安装结果：yum list installed | grep mosquitto第 3 步：测试 mosquitto启动 mosquitto 主程序：mosquitto 第二个窗口：执行命令：mosquitto_sub -t rimelink 第三个窗口：执行命令：mosquitto_pub -t rimelink -h localhost -m "hello, mosquitto"*第二个窗口：可以看到订阅程序收到：hello, mosquitto开机自动启动命令systemctl enable mosquitto---------------------------常用命令-------------------------------------------1.设置用户名和密码cd /etc/mosquittovi mosquitto.conf修改以下2点--------------------------------------allow_anonymous修改前：#allow_anonymous修改后：allow_anonymous falsepassword_file修改前：#password_file修改后：password_file /etc/mosquitto/pwfile.example （这里的地址根据自己文件实际位置填写）2.创建用户名和密码、打开命令窗口 键入如下命令：mosquitto_passwd -c /etc/mosquitto/pwfile.example admin*提示连续两次输入密码、创建成功。命令解释： -c 创建一个用户、/etc/mosquitto/pwfile.example 是将用户创建到 pwfile.example 文件中、admin 是用户名。mosquitto_passwd /etc/mosquitto/pwfile.example admin*同样连续会提示连续输入两次密码。注意第二次创建用户时不用加 -c 如果加 -c 会把第一次创建的用户覆盖。开启1883端口：firewall-cmd --add-port=1883/tcp --permanent删除端口：firewall-cmd --zone=public --remove-port=1883/tcp --permanent刷新：firewall-cmd --reload查询端口list：firewall-cmd --list-ports

CentOS 7上安装和保护 MQTT 的 mosquito
type: item
date: 2020-06-18T17:09:00+08:00
description: 引言Mqtt 是一种机对机的消息传递协议，旨在为物联网设备提供轻量级的发布/订阅通信。 它通常用于车辆的地理跟踪车队，家庭自动化，环境传感器网络，和公用事业规模的数据收集。Mosquito 是一个流行的 MQTT 服务器(或者用 MQTT 的说法是代理) ，它有很好的社区支持，并且易于安装和配置。在本教程中，我们将安装 mosquito，从 Let’s Encrypt 检索 SSL 证书，并将代理设置为使用 SSL 来保护受密码保护的 MQTT 通信。先决条件在开始本教程之前，你需要:设置了一个 CentOS 7服务器，该服务器具有一个非 root、支持 sudo 的用户和一个基本的防火墙。 新 CentOS 7服务器检查列表中包含了所有这些(以及更多)。一个域名指向你的服务器，就像如何用 DigitalOcean 设置主机名一样。 本教程将在整个过程中使用 mqtt.example.com。还可以选择使用纳米文本编辑器。 本教程将使用 nano 贯穿始终，你可以在任何时候用 sudo yum-y 安装 nano 安装它，或者替换你喜欢的文本编辑器。第一步ー安装蚊子缺省情况下 CentOS 7没有一个需要打包的蚊子。 为了安装它，我们将首先安装一个额外的 Linux 软件资源库，称为企业 Linux 的额外软件包，或者称为 EPEL。 这个存储库充满了可以很好地安装在 CentOS、 Red Hat 和其他面向企业的 Linux 发行版上的附加软件。使用非 root 用户登录并使用 yum 包管理器安装 epel-release 包。sudo yum -y install epel-release这将向我们的系统添加 EPEL 存储库信息。 Y 选项会自动对整个过程中的几个提示回答 yes。 现在我们可以安装蚊子包。sudo yum -y install mosquitto这个包有一个简单的默认配置，所以让我们运行它来测试我们的安装。sudo systemctl start mosquitto我们还需要启用该服务，以确保在重新启动系统时启动:sudo systemctl enable mosquitto现在让我们测试默认配置。 Mosquito 包附带了一些命令行 MQTT 客户机。 我们将使用其中一个订阅我们代理的主题。主题是发布邮件到并订阅的标签。 它们被安排成一个层次结构，例如，你可以有传感器 / 外部 / 温度和传感器 / 外部 / 湿度。 如何安排话题取决于你自己和你的需要。 在本教程中，我们将使用一个简单的测试主题来测试我们的配置更改。第二次登录到您的服务器，这样您就有两个并排的终端。 在新的终端，使用蚊子子订阅测试主题:mosquitto_sub -h localhost -t testH 用于指定 MQTT 服务器的主机名,-t 是主题名。 你会看到没有输出后，按下 ENTER，因为蚊子子正在等待消息到达。 切换回你的另一个终端并发布一条消息:mosquitto_pub -h localhost -t test -m "hello world"蚊子到酒吧的选项是相同的蚊子到次，虽然这一次我们使用额外的-m 选项，以指定我们的信息。 点击回车，你应该会看到 hello world 在另一个终端弹出。 您已经发送了您的第一条 MQTT 消息！在第二个终端输入 ctrl + c 以退出 mosquito 子，但保持到服务器的连接打开。 我们将在第5步中再次使用它进行另一个测试。接下来，我们将使用 Certbot (新的 Let’s Encrypt 客户机)使用 SSL 保护我们的安装。步骤2ー为 Let’s Encrypt 证书安装和运行 CertbotLet’s Encrypt 是一个通过自动化 API 提供免费 SSL 证书的新服务。 官方的 Let’s Encrypt 客户机名为 Certbot，它包含在我们在前面步骤中安装的 EPEL 存储库中。用 yum 安装 Certbot。sudo yum -y install certbotCertbot 需要回答 Let’s Encrypt API 发出的加密挑战，以证明我们控制了域。 它使用端口80(HTTP)和 / 或443(HTTPS)来实现这一点。 我们将只使用端口80，所以现在让我们允许在该端口上传入通信量。使用 firewall-cmd 添加 HTTP 服务。sudo firewall-cmd --permanent --add-service=http重新装载防火墙，使更改生效。sudo firewall-cmd --reload我们现在可以运行 Certbot 来获得我们的证书。 我们将使用 -- standalone 选项告诉 Certbot 自己…