-
微信小程序wifi softap配网 airkiss配网 SmartConfig配网 8266配网
2020-11-26 14:11:32以前是使用微信公众号 airkiss配网 现在微信小程序支持 wifi softap配网 airkiss配网 SmartConfig配网 8266配网扫码就能测试小程序airkiss配网
以前是使用微信公众号 airkiss配网
现在微信小程序支持 wifi softap配网 airkiss配网 SmartConfig配网 8266配网
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
…
.
.
…
.
.
.
.
. -
WIFI模块开发教程之W600网络篇7:微信小程序AP配网①
2020-08-13 07:43:27本文研究如何使用微信小程序对模块进行配网,采用业界公认配网率最高,几乎100%的配网方式:softAP配网。 一、理论基础 1.softAP配网原理 softAP方式,IoT设备工作与AP模式,手机直连IoT设备,将目标路由器的SSID/...前言
本文研究如何使用微信小程序对模块进行配网,采用业界公认配网率最高,几乎100%的配网方式:softAP配网。
一、理论基础
1.softAP配网原理
softAP方式,IoT设备工作与AP模式,手机直连IoT设备,将目标路由器的SSID/Password传过去。该方式是最传统的配网方式,不考虑终端兼容性问题,配网成功率100%。
缺点是用户操作复杂。用户需要连接IoT设备热点,然后手动输入SSID/Password。
softAP配网总体流程如下:
(1) 热点命名 softAP方式配网,模块起来一个热点LED-XXXX (XXXX为MAC地址后四位) (2) 热点配置: local_ip: 192.168.10.1 Net_mask: 255.255.255.0 Gateway: 192.168.10.1 udp_port: 20032 (3) 设备热点配网: APP--------->Device { "ssid":"xxxx", "passwd":"xxxx" } (4) 设备配网结果通知: Device--------->APP { "status":"xxxx", "mac":"xxxx", "type":"xxxx" //产品类型 }
2.微信小程序基本开发
· 微信小程序有四种类型的文件
js -------- JavaScrip文件 json ------- 项目配置文件,负责窗口颜色等等 wxml ------- 类似HTML文件 wxss ------- 类似CSS文件
在根目录下用app来命名的这四中类型的文件,就是程序入口文件。
a. app.json
必须要有这个文件,如果没有这个文件,IDE会报错,因为微信框架把这个作为配置文件入口,你只需创建这个文件,里面写个大括号就行,以后我们会在这里对整个小程序的全局配置。记录了页面组成,配置小程序的窗口 背景色,配置导航条样式,配置默认标题。
b. app.js
必须要有这个文件,没有也是会报错!但是这个文件创建一下就行 什么都不需要写,以后我们可以在这个文件中监听并处理小程序的生命周期函数、声明全局变量。
c. app.wxss
这个文件不是必须的。因为它只是个全局CSS样式文件
d. app.wxml
这个也不是必须的,而且这个并不是指主界面哦~因为小程序的主页面是靠在JSON文件中配置来决定的
· 微信小程序组件开发
组件开发请参考微信官方介绍:
https://developers.weixin.qq.com/miniprogram/dev/component/
二、使用实例
1.程序分析
1.1 配网界面
<view class="section"> <input class="config" bindinput="bindKeyInputSsid" placeholder="请输入ssid"/> <input class="config" bindinput="bindKeyInputPwd" password type="text" placeholder="请输入密码"/> <button class="section__title" type="primary" bindtap="startConfig"> 开始配网 </button> <textarea class="res_text" name="textarea">{{config_res}}</textarea> </view>
以上代码具体效果如下:
1.2 js配网函数
startConfig: function(e) { console.log("start config"); const udp = wx.createUDPSocket() const locationPort = udp.bind() var object = {}; var that = this; object['ssid'] = that.data.ssid; object['password'] = that.data.password; var json = JSON.stringify(object);//JSON.stringify() udp.send({ address: '192.168.1.255', port: 20032, message: json }) // receive udp.onListening(function(res){ console.log('监听中...') console.log(res) }) udp.onMessage(function(res){ console.log(res) let unit8Arr = new Uint8Array(res.message.data); let encodedString = String.fromCharCode.apply(null, unit8Arr), decodedString = decodeURIComponent(escape((encodedString)));//没有这一步中文会乱码 console.log('str===' + decodedString) that.setData({ config_res: decodedString }) }) }
小程序配网页面点击配网后,会调用微信提供的UDP Socket接口进行配网。
微信官网示例如下:
const udp = wx.createUDPSocket() udp.bind() udp.send({ address: '192.168.193.2', port: 8848, message: 'hello, how are you' })
· createUDPSocket()创建udp socket
· bind()绑定本地接口,这个接口是随机的,暂时不支持设置port
· send()发送数据到20032端口,本文使用网络调试助手代替实际设备
3.下载网络调试助手
下载地址:http://soft.onlinedown.net/soft/971066.htm
三、运行
1.设置网络调试助手
打开网络调试助手,绑定20032端口,具体设置如下所示:
2.小程序配网
设置路由器名字和密码
网络助手收到小程序下发的信息后,发送{“status”:“ok”,“type”:“led”}。四、结语
1.总结:
本节完,实际操作过程中需要注意的地方有如下几点:
(1) 电脑需要屏蔽其他网卡
2.资料获取
如您在使用过程中有任何问题,请加QQ群进一步交流。
QQ交流群:906015840 (备注:物联网项目交流)
公众号:物联网客栈,扫码关注,回复w600即可。
一叶孤沙出品:一沙一世界,一叶一菩提 -
ESP8266 web配网&微信小程序配网 全平台配网库 arduino 傻瓜式通用库
2020-06-07 14:52:03wifi_link_tool esp8266通用配网库 (arduino) ...微信小程序配网 使用微信扫描二维码 打开小程序 点击通用设备配网 输入WiFi密码 关于配网操作 默认情况下 下拉gpio0(nodemcu D3可以按flash按键)5wifi_link_tool esp8266通用配网库 (arduino)
库地址:点击进入GitHub
这是一个为esp8266设计的通用配网库
该库免费提供 使用请注明出处 允许毕业设计使用本库
配套视频:点击进入哔哩哔哩
普通配网流程 1.链接WiFi 2.自动弹出配网或打开浏览器访问6.6.6.6 3.输入WiFi密码
微信小程序配网 使用微信扫描二维码 打开小程序 点击通用设备配网 输入WiFi密码
关于配网操作
- 默认情况下 下拉gpio0(nodemcu D3可以按flash按键)5秒 重置已有配网 第一次使用该库请重置一次或用官方工具擦除flash
- 默认情况下 状态指示灯gpio02(nodemcu D4) 也就是12f的板载led
- 指示灯常亮 未链接网络 处于未配置 或 无法链接网络
- 指示灯闪烁 正在抹除配置
- 指示灯熄灭 联网正常
微信小程序配网
使用微信扫一扫进行加载小程序
小程页面
点击通用设备配网 即可弹出配网 如未弹出请检查文件系统是否上传成功!
点击设备列表可搜索局域网中可被搜索的设备普通配网
扫描二维码直接链接或手动链接 SSID:wifi_link_tool
该二维码支持国内大部分手机相机 (例如使用miui相机)
链接成功后 会弹出配网web 如为弹出 请检查设备支持性(安卓4.4.4以上大部分支持 ios 11+)和文件系统是否上传成功!安装库wif link tool 库
安装库本身
- 请保证已经安装了 arduino esp8266 sdk (已在V2.5.0测试)
- 在github上下载本库
- 打开arduino 项目—>加载库—>添加.zip库 —>选择刚才下载的zip导入 (手动库安装目录Arduino\libraries\WiFi_link_tool)
安装文件系统
- 下载文件系统上传工具 工具地址
- 导入工具参考目录 ******/tools/ESP8266FS/tool/esp8266fs.jar
- 重启arduino
测试库
- 打开测试demo 文件—>示例—>wifi_link_tool—>demo
- 选择串口及波特率
- 选择合适的flash size
- 点击验证 验证库是否能正常编译
- 检查文件系统上传工具 工具下会显示 ESP8266 sketch Data Upload 证明安装成功
- 上传文件系统 工具 —>ESP8266 sketch Data Upload
库基础配置及api
- 配置设备
在setup中配置设备io名称
rstb=D3; //重置io stateled=D4; //指示灯io Hostname = "ESP8266"; //设备名称 允许中文名称 不建议太长 wxscan=true; //是否被小程序发现设备 开启意味该设备具有后台 true开启 false关闭
启动加载函数 必须存在
load();//启动加载
pant函数维持系统正常运行 请保证在loop 函数的第一行 保证系统稳定性
pant();//维持函数
- link()函数 (有值发回)获取当前WiFi配置状态
注意请在load()函数之后或在loop区块中使用
返回类型 int 返回内容 0 当前未配置WiFi 1 以配置WiFi
作用 识别当前是否已经配网实现数码管或oled屏幕内容的显示与切换
示例:
if(link()){/设备以配置网络触发内容/}else{/设备未配置网络触发内容/}
-
局域网中获得设备名称API(用来配合网关或设备通信)
该api以集成进库中
作用 获得设备设备名称 方便设备联动
请求方法 http get 返回类型 String
地址 http://x.x.x.x/opera?opera=sb -
自定义http get请求
语法:
webServer.on("/<请求地址>", <处理函数>);
请写在setup函数中 load函数之后
处理函数请自定义一个新函数
请参考demo中get请求处理- 自定义添加web
默认情况 库自动添加 config.html(配网web) index.html(设备主页)
将自定义的html 放入Data目录下(将demo另存为 在另存目录就会出现data目录)
语法:
webServer.on("/<请求地址>", <加载函数>);
请写在setup函数中 load函数之后
加载函数 语法void <加载函数>() { File file = SPIFFS.open("/<自定义html文件名>", "r"); webServer.streamFile(file, "text/html"); file.close(); }
请参考demo中加载多个web
测试环境 sdk版本:2.5.0 arduino版本1.8.8
-
微信小程序与智能硬件终端蓝牙BLE通讯,实现WIFI配网这么简单都不会,周公都得踹醒你!
2020-07-06 13:39:13当下各种支持WIFI模块的硬件终端越来越普遍,但要想与之进行数据交互需要先给终端连接上周边WIFI,这样才可正常通过互联网接收与发送数据,这种终端一般分为 3 类,即:可视化操作配网(窗口) 、WIFI连接配网...当下各种支持WIFI模块的硬件终端越来越普遍,但要想与之进行数据交互需要先给终端连接上周边WIFI,这样才可正常通过互联网接收与发送数据,这种终端一般分为 3 类,即:
可视化操作配网(窗口)
、WIFI连接配网(Socket)
和蓝牙通讯配网(BLE)
可视化配网非常简单,终端提供触摸屏与系统手动即可完成配网(一般是基于Android系统的二次开发)。还有一种无触摸屏需要通过 WIFI 或蓝牙与终端连接,发送约定格式的十六进制数据,内含配网需要的相关数据,如:
WIFI名称
、密码
、服务器地址
、端口
,等等信息,终端解析数据后连接 WIFI,本文主要讲解第 3 种方式蓝牙通讯的完整流程整体流程分为3个步骤:
搜索并选择周边 WIFI
-搜索并连接目标设备蓝牙
-填写选中 WIFI 密码并通过蓝牙发送
完整源码,可私聊我获取。若您有遇到其它相关问题,非常欢迎在评论中留言,我和其他读者小伙伴们将帮助解决并持续更新至此文,达到帮助更多人的目的。若感本文对您有所帮助请点个赞吧!
搜索并选择周边 WIFI
/** * 初始化Wifi模块 */ onStartWifi:function(){ wx.startWifi({ success: (res) => { if(res.errCode == 0){ // 初始化成功 that.onUserLocationScope(); }else{ // 初始化失败 that.showModal(res.errMsg); } }, fail: (res) => { that.showModal(res.errMsg); } }) }, /** * 获取scope.userLocation授权 */ onUserLocationScope:function(){ // 获取当前已授权项列表 wx.getSetting({ success:(res) => { // 如果未获取 userLocation 授权则请求授权 if (!res.authSetting['scope.userLocation']) { wx.authorize({ scope: 'scope.userLocation', success: (res) => { // 同意授权 that.onGetWifiList(); }, fail: (res) => { // 拒绝授权 that.showModal("您已拒绝授权,蓝牙配网无法继续进行,点击设置可重新授权") wx.openSetting({}) } }) }else{ // 如果已获取则直接搜索 WIFI 列表 that.onGetWifiList(); } } }) }, /** * 获取Wifi列表 */ onGetWifiList:function(){ wx.getWifiList({ success: (res) => { // 获取 WIFI 列表成功 if(res.errCode == 0){ wx.onGetWifiList(function (CALLBACK) { // 原始的 WIFI 列表 let wifiList = CALLBACK.wifiList; // 处理后 WIFI 列表(去重并且只保留名称 => SSID) let wifiSSID = []; // 去重并且只保留名称 wifiList.forEach(wifi => { if(wifi.SSID == ''){ wifiSSID.unshift("未能获取到此 WIFI 的命名") return; } wifiSSID.indexOf(wifi.SSID) == -1 ? wifiSSID.unshift(wifi.SSID) : ''; }) // push 显示 that.setData({ mainData: wifiSSID }) }); }else{ // 获取 WIFI 列表失败 that.showModal(res.errMsg) } }, fail: (res) => { that.showModal(res.errMsg) } }) },
搜索并连接目标设备蓝牙
/** * 开始搜寻附近的蓝牙设备(此操作比较耗费系统资源,请在搜索并连接到设备后调用 wx.stopBluetoothDevicesDiscovery方法停止搜索) */ startBluetoothDevicesDiscovery: function () { if(_discoveryStarted) { return; } _discoveryStarted = true wx.startBluetoothDevicesDiscovery({ services: serviceUUID, //如果设置此参数,则只搜索广播包有对应 uuid 的主服务的蓝牙设备。 allowDuplicatesKey: false, success: (res) => { console.log('蓝牙搜索 success :', res) }, fail(res) { console.log('蓝牙搜索 fail :', res) } }) }, /** * 监听寻找新设备事件 * 搜索匹配设备后,自动连接设备(filterDeviceName为自动连接的蓝牙名,模糊判断) */ onBluetoothDeviceFound: function () { wx.onBluetoothDeviceFound((res) => { res.devices.forEach(device => { // 转换后, 得出相关数据 var hexStr = that.ab2hex(device.advertisData); // 通过蓝牙名称匹配设备 let deviceName = device.name.toUpperCase(); // 判断是否为指定连接名称的蓝牙 if ((deviceName.indexOf(filterDeviceName) != -1) && isnotExist) { // 默认匹配第一个 isnotExist = false; deviceId = device.deviceId; // 停止搜寻附近的蓝牙外围设备。 that.stopBluetoothDevicesDiscovery(); // 连接指定蓝牙 that.createBLEConnection(deviceName); } }) }) },
填写选中 WIFI 密码并通过蓝牙发送
/** * 蓝牙设备配网数据处理 */ bleConfigEvent: function () { // 蓝牙搜索的结果 if (util.isEmpty(deviceId)) { util.toastError("请先搜索蓝牙设备"); return; } // 即将传输的数据 var cell = { "time": "xxxxxxxxxxx", "data": { "cmd": 10, "ssid": "WIFI 名称", "password": "WIFI 密码", "server": "服务器IP", "portApi": "服务器端口", "portMqtt": "1883", "ip": "", "subnet": "", "router": "" } } // 发送验证字符串(根据终端通讯协议规则决定是否需要) var signet = "signet"; var signetBuffer = this.string2buffer(signet) that.sendBLEData(signetBuffer,0,false); // 发送正式配网数据 var buffer = this.string2buffer(JSON.stringify(cell)) setTimeout(function () { that.sendBLEData(buffer, 0, true); }, 1000) }, /** * 发送数据 * @param buffer 需要发送的数据体 * @param close 是否为最终数据 */ sendBLEData: function (buffer,close) { wx.writeBLECharacteristicValue({ deviceId: _deviceId, serviceId: _serviceId, characteristicId: _characteristicId, value: buffer, success: function (res) { if (close){ util.toastError('配网成功'); } }, fail: function (res) { console.log(res); } }) },
完整源码,可私聊我获取。若您有遇到其它相关问题,非常欢迎在评论中留言,我和其他读者小伙伴们将帮助解决并持续更新至此文,达到帮助更多人的目的。若感本文对您有所帮助请点个赞吧!
-
扫码进入微信小程序使用WIFI进行UDP通信发送消息
2020-10-22 18:39:38业务逻辑:手机扫码进入微信小程序,登录页面输入登录密码进入配置WIFI页面,配置WIFI页面输入当前手机连接的 WIFI密码,点击‘点击配网’按钮连接液晶屏热点,并通过UDP把刚才连接的WIFI的SSID和密码发送到指定端口... -
【微信小程序控制硬件14 】 微信小程序蓝牙+WiFi双控制ESP32-C3应用示范;(附带Demo)
2021-03-11 18:26:21微信物联网生态主要分在微信硬件开发平台与腾讯物联开发平台,前者已经停止维护,但依然有着很大的学习价值,而后者作为主推的平台,集成很多功能,包括从微信小程序实现配网到控制; 为了... -
微信小程序对接阿里飞燕平与智能配网方案
2020-06-30 10:24:07WeChat对接阿里飞燕平与智能配网方案 上期我们讨论了如何采用STM32+ESP-01s模组连接阿里飞燕平台的实现过程,那我们实现WIFI模组入网的主要目的就是要实现远程控制,所以自然也需要让移动端连接到阿里飞燕平台,这样... -
7-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案微信小程序篇(微信配网_申请微信公众号)
2019-06-26 00:59:34老是学习枯燥乏味的东西容易烦躁,所以呢,接着这几节咱实现下微信配网 为了让所有人都可以都可以使用,咱就用微信订阅号实现(里面提供测试版服务号),实质上只有服务号和微信企业号才具有此功能。 咱呢注册登录订阅... -
7-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案微信小程序篇(微信配网_申请微信公众号)...
2019-06-20 23:11:00老是学习枯燥乏味的东西容易烦躁,所以呢,接着这几节咱实现下微信配网 为了让所有人都可以都可以使用,咱就用微信订阅号实现(里面提供测试版服务号),实质上只有服务号和微信企业号才具有此功能。 咱呢注册登录订阅... -
9-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案微信小程序篇(微信配网配置_开发者基本配置_2)
2019-06-26 01:00:40这一节看怎么用PHP实现... 关掉上一节的 学了这么久,忘了告诉大家怎么关闭程序了..... 可以这样,建一个后缀名为.bat的文件 文件名字随意 里面写上 taskkill /IM python.exe /F 然后双击运行 ... -
10-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案微信小程序篇(微信配网配置_Airkiss步骤_1)
2019-06-26 01:01:13所有LUA开发的WIFI程序,配网的地方 以升级篇为例: (其它地方都是这样修改) 纯AT指令实现的不需要修改 我把这两篇的代码放在... -
11-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案微信小程序篇(微信配网配置_Airkiss步骤_2)
2019-06-26 01:01:43{ "button": [ { "type": "view", "name": "AirKiss配网", "url": "http://mnifdv.cn/airkiss" } ] } 咱现在去咱的微信公众号里面,,会有个按钮 ,不过点击... -
8-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案微信小程序篇(微信配网配置_开发者基本配置_1)
2019-06-26 01:00:12然后才有了基础篇,升级篇,数据篇,安全篇,最后才是微信小程序篇. 总是有人给我抱怨说,为什么没有一篇直接先安装整个用到的东西的,我总会说,你直接看视频教程一节一节的看就可以,每一节用到的所有东西都放在了每... -
9-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案微信小程序篇(微信配网配置_开发者基本配置_2)...
2019-06-21 17:55:00这一节看怎么用PHP实现... 关掉上一节的 学了这么久,忘了告诉大家怎么关闭程序了..... 可以这样,建一个后缀名为.bat的文件 文件名字随意 里面写上 taskkill /IM python.exe /F 然后双击运行 ... -
10-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案微信小程序篇(微信配网配置_Airkiss步骤_1)...
2019-06-21 19:38:00所有LUA开发的WIFI程序,配网的地方 以升级篇为例: (其它地方都是这样修改) 纯AT指令实现的不需要修改 我把这两篇的代码放在这里(LUA修改成... -
11-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案微信小程序篇(微信配网配置_Airkiss步骤_2)...
2019-06-22 02:19:00{ "button": [ { "type": "view", "name": "AirKiss配网", "url": "http://mnifdv.cn/airkiss" } ] } 咱现在去咱的微信公众号里面,,会有个按钮 ,不过点击这个按钮... -
smartconfig微信一键配网_官方标准蓝牙协议LLSync发布,BLE接入&WiFi配网更快人一步!...
2020-12-29 13:53:55点击上方【腾讯云IoT】,关注我们并设星标共建物联网产业生态在9月22日发布的腾讯连连微信小程序2.0版本中,为了给用户更好的蓝牙使用体验,腾讯连连在支持用户自定义蓝牙协议的基础上,全面支持官方标准蓝牙协议... -
8-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案微信小程序篇(微信配网配置_开发者基本配置_1)...
2019-06-21 06:03:00然后才有了基础篇,升级篇,数据篇,安全篇,最后才是微信小程序篇. 总是有人给我抱怨说,为什么没有一篇直接先安装整个用到的东西的,我总会说,你直接看视频教程一节一节的看就可以, 每一节用到的所有东西都放在了每... -
ESP32 小程序与蓝牙通信/蓝牙配网/低功率蓝牙通信/Bluetooth
2020-09-29 20:16:34很喜欢 ESP32,便宜的结果就是性能差了点,一旦你使用蓝牙服务你可怜的内存会被无情的占用,如果需要配网首选还是wifi的好。 准备 首先你需要ESP32开发板的库 https://github.com/espressif/arduino-esp32 这个库... -
STM32F103 MQTT智能配网ESP07S WIFI 手机app控制继电器EMQ温湿度
2021-04-03 13:00:40WIFI 保持活连接,不用担心断开。 MQTT 与 Socket 区别: 通俗来讲:mqtt是对socket进一步封装。稳定性更好,消耗流量更小,连接更加安全, 大公司物联网目前主流使用的传输协议是MQTT。 单片机型号:STM32F103C8T6... -
树莓派AP配网、无线配网(APP配网类似天猫精灵)(一)
2020-08-27 19:59:52树莓派AP配网、无线配网(APP配网类似天猫精灵)(一) 说明 当你买IOT设备回家的第一件事肯定是让它联网,比如天猫精灵,或者小朋友的学习机或者其它能联网的玩具,包括我喜欢的树莓派,统统需要连接WIFI。 你当然... -
ESP8266官方V3.1 SDK连云篇02-小程序监控esp8266
2020-09-10 15:17:48就只是配置下引导页面,如今配网引导页面可以选择不同配网方式,然后再进行引导页面设置,对此,腾讯云维护的qcloud-iot-esp-wifi SDK也进行了不小的更新,本文我们将同步腾讯云更新的SDK,并实现微信小程序控制设备... -
微信小程序配网 使用微信扫一扫进行加载小程序 小程序页面 点击通用设备配网 即可弹出配网 如未弹出请检查文件系统是否上传成功! 点击设备列表可搜索局域网中可被搜索的设备 普通配网 扫描二维码直接链接或...
-
micropython 一键配网_【Esp8266学习记录-8】基于Micro python对ESP8266一键配网
2020-12-09 09:47:18——Wicos介绍:这是一个运行在Esp8266设备(如:ESP12,NideMcu等,以下简称“设备”)上基于Micropython配合微信小程序的一键配网程序,旨在方便调试和开发。这个程序如何使用?仓库地址:... -
自动登录校园网代码加入wifi自动搜寻并主动连接部分
2021-03-31 20:26:22距离上次写完自动登录校园网的代码过去已经有一段时间了,在使用过程中,我搭配电脑的开机自启服务一块使用,感觉不错,但是也有一点小问题。 问题如下:有时候电脑开机之后并不会自动连接NJUPT-CMCC。 因为上述...