IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 物联网基础流程 -> 正文阅读

[嵌入式]物联网基础流程

mqtt

1.安装 centos系统 宝塔 数据库 emqx
2.测试mqtt连接emqx服务器
3.修改emqx 实现 身份 权限 功能
4.添加一个 mqtt超级用户 添加一个mqtt普通用户
5.测试2个用户的区别
6.给普通用户 添加 接收 发送 权限
7.把mqtt弄到esp32上面 控制电磁锁
8.写个简单的网页 控制电磁锁
9.整个流程就算ok了

宝塔登录
外网面板地址: http://121.4.107.241:8888/f0d748eb
内网面板地址: http://10.0.4.10:8888/f0d748eb
username: 6tyynvn9
password: b409f4e8

下载emqx v4.3

创建 mysql 数据库

用户名
mqtt
数据库密码
MxdTcsMXyd8RbSKc

数据库创建表



DROP TABLE IF EXISTS `mqtt_acl`;

CREATE TABLE `mqtt_acl` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `allow` int(1) DEFAULT NULL COMMENT '0: deny, 1: allow',
  `ipaddr` varchar(60) DEFAULT NULL COMMENT 'IpAddress',
  `username` varchar(100) DEFAULT NULL COMMENT 'Username',
  `clientid` varchar(100) DEFAULT NULL COMMENT 'ClientId',
  `access` int(2) NOT NULL COMMENT '1: subscribe, 2: publish, 3: pubsub',
  `topic` varchar(100) NOT NULL DEFAULT '' COMMENT 'Topic Filter',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

LOCK TABLES `mqtt_acl` WRITE;

INSERT INTO `mqtt_acl` (`id`, `allow`, `ipaddr`, `username`, `clientid`, `access`, `topic`)
VALUES
	(1,1,NULL,'$all',NULL,2,'#'),
	(2,0,NULL,'$all',NULL,1,'$SYS/#'),
	(3,0,NULL,'$all',NULL,1,'eq #'),
	(4,1,'127.0.0.1',NULL,NULL,2,'$SYS/#'),
	(5,1,'127.0.0.1',NULL,NULL,2,'#'),
	(6,1,NULL,'dashboard',NULL,1,'$SYS/#');

UNLOCK TABLES;


DROP TABLE IF EXISTS `mqtt_user`;

CREATE TABLE `mqtt_user` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `username` varchar(100) DEFAULT NULL,
  `password` varchar(100) DEFAULT NULL,
  `salt` varchar(35) DEFAULT NULL,
  `is_superuser` tinyint(1) DEFAULT 0,
  `created` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `mqtt_username` (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;


身份 权限

etc/acl.conf

全部注释

%%

匿名认证

etc/emqx.conf

Value: true | false

allow_anonymous = true
改为
allow_anonymous = false

当acl规则没有匹配到的时候就会找的这个参数,如果为allow,则会通过验证,为deny就会不通过验证

ACL nomatch. Enum: allow, deny

acl_nomatch = allow
改为
acl_nomatch = deny

加盐规则与哈希方法配置

etc/plugins/emqx_auth_mysql.conf

auth.mysql.password_hash = sha256

Value: plain | md5 | sha | sha256 | bcrypt 根据需要改

auth.mysql.password_hash = plain


权限控制
使用数据库mqtt_acl数据表
规则表字段说明:
allow:禁止(0),允许(1)
ipaddr:设置 IP 地址
username:连接客户端的用户名,此处的值如果设置为 $all 表示该规则适用于所有的用户
clientid:连接客户端的 Client ID
access:允许的操作:订阅(1),发布(2),订阅发布都可以(3)
topic:控制的主题,可以使用通配符,并且可以在主题中加入占位符来匹配客户端信息,例如 t/%c 则在匹配时主题将会替换为当前客户端的 Client ID
%u:用户名
%c:Client ID


emqx命令

重启
./bin/emqx console
cd emqx 运行
./bin/emqx start

cd emqx 停止
./bin/emqx stop

cd emqx 加载mysql插件
./bin/emqx_ctl plugins load emqx_auth_mysql

mqtt控制台
默认用户名 admin 与默认密码 public

mqtt管理员
拥有 mqtt服务器下 所有用户的功能

安装node

安装node环境
yum install -y nodejs

安装nodered

非常方便的nodejs开发工具
sudo npm install -g --unsafe-perm node-red

安装forever

为了后台运行
npm install forever -g

运行 node-red

前台运行
node-red
后台运行
forever start -l forever.log -o out.log -e err.log -a /usr/local/lib/node_modules/node-red/red.js
  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-05-08 08:17:54  更:2022-05-08 08:19:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/30 1:19:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码