微信物联网生态主要分在微信硬件开发平台与腾讯物联开发平台,前者已经中止维护,但依然有着很大的学习价值,然后者做为主推的平台,集成不少功能,包括从微信小程序实现配网到控制;css
为了兼顾更多的朋友和本身的学习笔记,我将会一直更新此专题笔记,欢迎关注本人CSDN半颗心脏,带你走进前沿领域,学习前沿技术!html
自搭微信服务器&&微信硬件开发平台前端
【微信小程序控制硬件第1篇 】 全网首发,借助 emq 消息服务器带你如何搭建微信小程序的mqtt服务器,轻松控制智能硬件!
【微信小程序控制硬件第2篇 】 开始微信小程序之旅,导入小程序Mqtt客户端源码,实现简单的验证和通信于服务器!
【微信小程序控制硬件第3篇 】 从软件到硬件搭建一个微信小程序控制esp8266的项目,自定义通信协议,为面试职位和比赛项目加分!
【微信小程序控制硬件第4篇 】 深度剖析微信公众号配网 Airkiss 原理与过程,esp8266如何自定义回调参数给微信,实现绑定设备第一步!
【微信小程序控制硬件第5篇 】理清接下来必须走的架构思想,学习下 JavaScript 的观察者模式,在微信小程序多页面同时接收到设备推送事件!
【微信小程序控制硬件第6篇 】服务器如何集成七牛云存储SDK,把用户自定义设备图片存储在第三方服务器!
【微信小程序控制硬件第7篇 】动起来作一个微信小程序Mqtt协议控制智能硬件的框架,为本身内心全栈工程师梦想浇水!!
【微信小程序控制硬件第8篇 】微信小程序以 websocket 链接阿里云IOT物联网平台mqtt服务器,封装起来使用就是这么简单!
【微信小程序控制硬件第9篇 】巧借阿里云物联网平台的免费链接,从微信小程序颜色采集控制 esp8266 输出七彩灯效果,中秋节来个直播如何?!
【微信公众号控制硬件 第10篇 】如何在微信公众号网页实现链接mqtt服务器教程!!
【微信小程序控制硬件 第11篇 】全网首发,微信小程序ble蓝牙控制esp32,实现无需网络也能够控制亮度开关。
【微信小程序控制硬件 第12篇 】微信小程序蓝牙控制硬件应如何开发?为您全面解析微信小程序蓝牙API的使用。
【微信小程序控制硬件 第13篇 】安信可B站直播学习总结,微信小程序MQTT远程控制ESP8266 NodeMCU,谈谈微信生态那些事。nginx
腾讯物联开发平台c++
【腾讯连连 - 腾讯物联开发平台 第1篇 】腾讯官方静鸡鸡发布的“腾讯连连”终于来了,按照官方教程教你在微信小程序实现配网、控制 ESP8266啦!
【腾讯连连 - 腾讯物联开发平台 第2篇 】深度解析微信小程序smartconfig配网原理,安信可ESP-12S直连腾讯物联开发平台!!git
从去年开始自学前端,到今年的服务器的学习,也算是本身的一大进步了!这几天开始搭建小程序的服务器,琢磨了三天的Nginx
中间消息插件,期间也是不睡午觉!也许入门Nginx
,和你们同样期间踩了不少坑!微信小程序也仅仅只有websocket
协议的说明,可是已经不维护了!github
但愿你能够静心看看本篇文章,能够帮助你跳过搭建微信小程序的mqtt服务器的坑,无论你是用emq
做为服务器,仍是其余的服务器程序代码!web
本文搭建好了以后,就能够在微信小程序上实现控制智能硬件,即为链接mqtt
服務器。像如今最为流行的esp8266
,esp32
!废话很少说,Let us go !
面试
本博文才有的 emq 版本是 2.3 !!正则表达式
【必要具有】一个备案成功的域名 + 配置的 SSL
证书! 证书能够是免费的,或者您是老板能够买个收费的!
【必要具有】一个服務器,能够是腾讯服务器,或者是阿里云服务器,而本文用的是阿里云服务器!由于双十一刚刚搞活动,一百多块买了一年服务器!呵呵!
【必要具有】关于微信小程序的源码,下篇就会开源免费赠送给你们!!
【其余】 SecureCRT
远程命令链接工具!固然还有微信小程序开发工具,这些本身去下载吧!
wxml+wcss+js+json
,而咱们的在js
上面实现Mqtt
协议通信,那么就离不开webSocket
,微信对于webSocket
的链接定义,我总结了一下:① 链接的端口号必须是
443
,也就是https
的访问端口;
② 链接时候,不能携带端口号,就是不能在URL
中注明443
端口!好比正确的写法是wss://www.xuhong.com
,而不能是wss://www.xuhong.com:443
!!切记!
Nginx
的知识,我也是刚刚入门,若是你们想深刻学,能够去慕课网有一门实战专门讲解Nginx
这个强大的消息中间件!下面列下常见的命令和知识!
/usr/local/nginx/conf
里面的 nginx.conf
文件!./nginx - t
: 表示检测 nginx.conf
文件的语法是否有问题!./nginx - s reload
: 表示从新加载 nginx.conf
文件!./nginx - s quit
: 表示强制或正常退出 Nginx 服务!./nginx
: 表示开启 Nginx 服务!4.1
yum update
yum
源!4.2
yum -y install gcc automake autoconf libtool make
make
工具 ,成功以下;4.3
yum install gcc gcc-c++
4.4
yum install pcre pcre-devel
4.5
wget http://nginx.org/download/nginx-1.9.9.tar.gz
nginx
,成功以下;4.6
tar -vzxf nginx-1.9.9.tar.gz
nginx
;4.7
cd nginx-1.9.9.tar.gz && ./configure
nginx
生效;4.8
yum install zlib zlib-devel
zlib
提供压缩算法,nginx
不少地方都会用到;4.9
yum install openssl openssl-devel
OpenSSL
库;4.10
wget https://codeload.github.com/openresty/headers-more-nginx-module/tar.gz/v0.33
webSocket
协议头的库,这里也下载吧;本博文不会用到,可是你们可能会用到!以后注意解压:tar -vzxf headers-more-nginx-module-0.33.tar.gz
4.11
./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
;4.12
make && make install
nginx
代码;4.13
cd /usr/local/nginx/sbin && ./nginx -V
nginx
代码后会有/usr/local/nginx
目录,咱们查看当前编译后有哪些模块生效了;看到下面有2个模块执行成功了!4.14
wget https://www.emqx.io/static/brokers/emqttd-centos7-v2.3.11.zip --no-check-certificate
emq
压缩包,若是不加--no-check-certificate
多是失败!4.15
yum install unzip -y
zip
的解压工具,用来解压emq
的压缩包!4.16
unzip emqttd-centos7-v2.3.11.zip
emq
!4.17
cd /root/emq/emqttd/bin && ./emqttd console
emq
!4.18
cd /root/emq/emqttd/bin && ./emqttd start
emq
!4.19
cd /usr/local/nginx/conf && vim nginx.conf
nginx
的配置文件!根据你的实际状况来定,添加以下代码!www.domain.com
是您的备案后域名, ssl_certificate
和ssl_certificate_key
对应的文件位置根据你的实际而定,注意这个是你配置域名的证书的信息!这个向证书生产方索取!!!server { listen 443; server_name www.domain.com; ssl on; ssl_certificate /root/myCert/cert/cert.crt; ssl_certificate_key /root/myCert/cert/cert.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://www.domain.com:8083; proxy_redirect off; proxy_set_header Host www.domain.com:8083; proxy_set_header Sec-WebSocket-Protocol mqtt; # 这个是与你的 js客户端的库有关系,本博文的不须要,为了兼顾之后小伙伴,我这里注释了下! #more_clear_headers Sec-WebSocket-Protocol; # 这些都是 websocket必需要配置的 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }
4.20
cd /usr/local/nginx/sbin&& ./nginx -t
4.20
cd /usr/local/nginx/sbin&& ./nginx -s reload
esp8266
带你飞、加群QQ
群,不喜的朋友勿喷勿加:434878850