简介
WIAnode是一款专为交互艺术设计的无线控制节点。它采用MQTT协议,内置服务器,兼容主流新媒体软件,可快速接入各类传感器。用户只需在开发软件中输入模块IP,即可同步获取数据,无需额外编程,让您更专注于创意逻辑的实现。
产品特点
-
I2C 接口*2个:4pin ph2.0
-
I/O接口*4个:3pin ph2.0
-
舵机接口*2个:3pin 2.54间距排针
-
状态指示灯:黄色-等待配置WIFI信息,红色-等待网络连接,绿色-网络已连接
-
屏幕显示:IP地址、接口配置信息
-
wkup按钮:唤醒屏幕
-
reset按钮:重启设备
-
Type-C接口:供电及信息配置
技术规格
-
TypeC供电接口:5v
-
工作电压:3.3v / 5v
-
最大供电电流:500mA
-
0.91寸OLED屏幕
-
尺寸:66.5x46.5mmx19.5mm
-
重量:145 g
功能说明
屏幕显示
-查看屏幕信息,需按下'WKUP'按钮唤醒屏幕,即显示第一页 IP地址信息。
-屏幕点亮情况下再次按下'WKUP'翻页,查看第二页接口信息。
-屏幕唤醒后,1min内无操作会再次熄屏。
使用流程
配置阶段
-
供电:使用type-c数据线将WIAnode与电脑连接,此时未配置wifi信息,状态指示灯为黄色。
-
快速配置网络:
-电脑弹出u盘,打开config.txt文件。(u盘名称不一致不影响,可通过更新固件保持一致)
-为其配置wifi、密码及接口信息。(仅可使用5G与2.4G频段混合模式或单独2.4G频段的wifi)
#WIFI SETTING
WiFi_Name:yourwifiname
WiFi_Password:yourwifipassword
-配置完成后保存文件,状态指示灯变为红色,意味着wifi配置保存但网络处于未连接状态。
-
配置生效:重新为WIAnode供电,会自动更新配置并连接wifi。
成功连接wifi后IP地址会显示在屏幕上,状态指示灯变为绿色。
注意:
如黄灯持续呼吸:
-请及时为设备配置wifi及密码。
如红灯持续呼吸:
-请检查wifi及密码是否正确输入。
-是否选择的是2.4G频段的wifi。
-如输入无误,可尝试重新供电。
使用阶段
一、详细配置文件功能
- 自定义IP设置:
#IP SETTING(Leave it blank for the default automatic address asignment)
Static_IP:192.168.xxx.xxx
Gateway:192.168.1.1
Subnet_Mask:255.255.255.0
Static_IP:自定义的IP地址
Gateway:路由器地址
Subnet_Mask:子网掩码
- 接口设置:
#I/O SETTING
P1: ws2812
P2: ws2812
P3: ws2812
P4: input
P5: servo180
P6: servo360
接口分为三类
(1)P1-P4:IO接口(三根线)
使用方法:共计四种配置标签,Input / dht11 / ds18b20 / ws2812。
参考下方传感器支持清单中的传感器对应的标签。
在对应接口配置处填入对应标签。
(2)P5-P6:5v舵机接口(三根线)
使用方法:共计三种配置标签,servo180 / servo300 / servo360。
参考下方传感器支持清单中的传感器对应的标签。
在对应接口配置处填入对应标签。
(3)I2C*2: I2C传感器接口(四根线)
使用方法:无需填入配置标签,接入传感器即可自动配置。如正确识别,传感器地址将会显示在屏幕上。
(4)状态指示灯设置:
Sending_Interval(0.02-10s): 0.02s
WIAnode侧面有当前状态指示灯,如实际使用或部署场景下不需要状态指示灯光,可通过该配置项进行关闭。
(5)发送间隔设置:
LED_State: on
LED_State:该配置项可控制板载状态指示灯的打开或关闭,填入on为打开,off为关闭。
二、屏幕功能:
1. 按下侧面wkup按钮,唤醒屏幕显示当前设备ip地址。
2. 屏幕唤醒情况下,再按一次按钮翻页,显示当前各接口配置状态。
三、mqtt客户端配置:
IP地址:填入WIAnode屏幕上显示的IP地址
mqtt配置:固定的用户名和密码直接填入
User Name:wianode
Password:dfrobot
固件更新
将新固件拖入配置的U盘内
重新为WIAnode供电
等待约30秒刷新固件(指示灯正常呼吸为更新完成)
ps: 固件更新时、频繁重新接入为正常现象,请勿断电,等待屏幕重新显示dfrobot dfr1234为固件更新完毕。
数据包格式说明
1.订阅数据的topic名称:topic_input
获取到的json数据包格式为:{''名字_数据1':值,'名字_数据2':值,...}
例:P1接按钮,P2接dht11
订阅的数据包内容为:{'p1_input_val':1, ‘p2_dht11_temp':23, 'p2_dht11_humi':88}
2.发布数据的topic名称:topic_output
发布数据进行接口控制的格式为:{"名字_数据":值}
例:io1接了灯带,数据发送为rgb1,rgb2,rgb3...
控制的数据内容为:{'p1': '0 29 29 255 4 12 27 255 11'}
传感器支持清单
I/O类型传感器:(其他未写入的但不需要库的传感器仍可使用,配置标签使用Input)
| SKU | 传感器 | 配置标签 | 设备类型 |
|---|---|---|---|
| DFR0029 | 按钮模块 | Input | P |
| SEN0616 | 压力传感器 | Input | P |
| DFR0067 | 温湿度传感器 | dht11 | P |
| DFR0024 | 温度传感器 | ds18b20 | P |
| FIT0656 | rgb灯 | ws2812 | P |
| SER0006 | 180度舵机 | servo180 | P |
| SER0043 | 360度舵机 | servo360 | P |
| DFR0034 | 声音传感器 | Input | P |
| DFR0026 | 光敏 | Input | P |
| SEN0508 | 柔性非接触式液位传感器 | Input | P |
| DFR0054 | 模拟旋转角度传感器 | Input | P |
| SEN0030 | 数字触摸开关 | Input | P |
| SEN0185 | 磁性霍尔传感器 | Input | P |
| SEN0019 | 10-80红外数字避障传感器 | Input | P |
| SEN0171 | 人体存在传感器 | Input | P |
| SER0053 | 9g 300°离合舵机 | servo300 | P |
| SEN0307 | 模拟量超声波测距传感器 | Input | P |
| DFR0028 | 数字钢球倾角传感器 | Input | P |
| DFR1132 | 线性模拟霍尔传感器 | Input | P |
| DFR0061 | JoyStick摇杆 | Input | P |
I2C类型的传感器:
| SKU | 传感器 | 数据类别 | 数据标签 | 设备类型 | 地址 |
|---|---|---|---|---|---|
| SEN0626 | AI视觉手势人脸跟踪传感器 | 面部坐标,手势识别 | FaceX, FaceY, GestureType | I2C | 0x72 |
| SEN0561 | 手势传感器 | 手势 | Gesture | I2C | 0x73 |
| SEN0304 | 超声波传感器 | 距离 | Distance | I2C | 0x11 |
| SEN0236 | 环境传感器 | 温度、压力、海拔、湿度 | Temperature, Pressure, Altitude, Humidity | I2C | 0x77 |
| SEN0212 | 颜色传感器 | RGB | R, G, B | I2C | 0x29 |
| SEN0228 | 环境光传感器 | 流明 | Lux | I2C | 0x10 |
| SEN0224 | 加速度传感器 | 加速度 | x, y, z | I2C | 0x18 |
| SEN0610 | 毫米波传感器 | 毫米级移动 | motion | I2C | 0x2A |
| SEN0636 | 紫外线传感器 | 紫外线 | UV | I2C | 0x23 |
| SEN0514 | 空气质量传感器 | TVOC、eCO2、AQI | TVOC、eCO2、AQI | I2C | 0x52、0x53 |
| SEN0518 | 心率血氧传感器 | 心率、血氧 | Heartbeat, SPO2 | I2C | 0x57 |
| SEN0536 | CO2传感器 | CO2 | CO2 | I2C | 0x62 |
| SEN0250 | 6轴惯性运动传感器 | Acceleration、Gyroscope | Accelx, Accely, Accelz, GyroX, GyroY, GyroZ | I2C | 0x69 |
WIAnode传感器套件列表
| SKU | 传感器名称 | 配置标签 | 接口 | 数据类型 | I2C地址 |
|---|---|---|---|---|---|
| DFR0029 | Gravity: 数字大按钮模块 | Input | P | / | / |
| DFR0054 | Gravity: 模拟旋转角度传感器 | Input | P | / | / |
| DFR0034 | Gravity: 模拟声音传感器 | Input | P | / | / |
| SEN0228 | Gravity: I2C VEML7700 环境光传感器 | / | I2C | Lux | 0x10 |
| SEN0304 | Gravity: URM09-I2C超声波测距传感器 | / | I2C | Distance | 0x11 |
| SEN0610 | Gravity:C4001 24GHz毫米波存在传感器 | / | I2C | motion | 0x2A |
| SEN0224 | Gravity: I2C LIS2DH 三轴加速度计 | / | I2C | x, y, z | 0x18 |
| SEN0561 | Gravity: GR10-30 手势传感器 | / | I2C | Gesture | 0x73 |
| SER0053 | 9g 300°离合舵机 | servo300 | P | / | / |
| FIT0656 | WS2812 RGB 全彩灯带(7灯珠) | ws2812 | P | / | / |
使用教程
Touchdesigner使用介绍
插件:https://github.com/DFRobot/WIAnode-examples/tree/master/WIAnode-Touchdesigner-plugin
插件介绍:
准备:
-
将WIAnode成功连接网络(如上文-配置阶段)
-
点击touchdesigner的数媒板插件节点,点击配置页“Connect”,输入设备IP地址、名称、密码。
名称默认为mqtt,密码默认为dfrobot
- 按下wkup按钮查看ip地址,将数媒盒的ip地址填入编辑面板的”ip“中。(确保电脑与数媒盒连接至同一wifi网络下)
- 数据订阅成功后,插件将显示绿色的“connected“,表示连接成功。
如连接失败可点击'Reconnect'重新连接。
使用期间确保‘Active’处于打开状态,关闭则代表该插件关闭通讯。
使用传感器数据:
- 使用‘select’节点将插件数据引出
控制执行器:
- 将设置好的数据接入对应的P接口,确保与设备接入的执行器端口一致。
例:
Step1: 设置P5接口为servo180模式
Step2: 舵机插入P5接口
Step3: 数据控制连接至touchdesigner插件P5位置
Touchdesigner 示例:
1. 按钮传感器控制示例
传感器特点:通过按下按钮实现交互
输出数据:0或1
快速示例:按下按钮实现数据0-1的切换
程序地址:https://github.com/DFRobot/WIAnode-examples/tree/master/WIAnode_Touchdesigner_samples/01.WIAnode-TD-button
2. 旋钮传感器控制示例
传感器特点:通过调动旋钮交互
输出数据:0-1的区间值
快速示例:转动旋钮调整方块或圆的切换,以及圆的颜色和体积大小
程序地址:https://github.com/DFRobot/WIAnode-examples/tree/master/WIAnode_Touchdesigner_samples/02.WIAnode-TD-knob
3. 麦克风传感器控制示例
传感器特点:通过改变灯光亮度实现交互
输出数据:0-1的区间值
快速示例:麦克风将风量大小映射到粒子向左飘散的速度
程序下载:https://github.com/DFRobot/WIAnode-examples/tree/master/WIAnode_Touchdesigner_samples/03.WIAnode-TD-microphone
4. 光敏传感器控制示例
传感器特点:通过改变环境亮度实现交互
输出数据:0-1的区间值
快速示例:通过改变环境的亮度、同步映射到虚拟环境的灯光亮度。
程序下载:https://github.com/DFRobot/WIAnode-examples/tree/master/WIAnode_Touchdesigner_samples/04.WIAnode-TD-light
5. 超声波传感器控制示例
传感器特点:检测一个轴向的距离
输出数据:距离
快速示例:检测到距离越近,圆的直径越小
程序下载:https://github.com/DFRobot/WIAnode-examples/tree/master/WIAnode_Touchdesigner_samples/05.WIAnode-TD-ultrasonic
6. 毫米波传感器控制示例
传感器特点:可隔木板或亚克力检测到毫米级移动的物体(比如人呼吸、蚊虫等)
输出数据:是否存在移动:0或1、距离、速度
快速示例:当检测到有人时,警报灯亮并发出警报声音。
程序下载:https://github.com/DFRobot/WIAnode-examples/tree/master/WIAnode_Touchdesigner_samples/06.WIAnode-TD-mmwave
7. 加速度传感器控制示例
传感器特点:通过改变运动幅度实现交互
输出数据:gyr_x, gyr_y, gyr_z, acc_x, acc_y, acc_z
快速示例:加速度传感器的x轴控制虚拟环境中立方体的x轴的转动,形成虚拟与现实的映射
程序下载:https://github.com/DFRobot/WIAnode-examples/tree/master/WIAnode_Touchdesigner_samples/07.WIAnode-TD-accelerometer
8. 手势传感器控制示例
传感器特点:通过改变灯光亮度实现交互
输出数据:1-4
快速示例:四个方向的手势控制不同的图片
程序地址:https://github.com/DFRobot/WIAnode-examples/tree/master/WIAnode_Touchdesigner_samples/08.WIAnode-TD-gesture
9.灯带控制示例
传感器特点:通过改变灯光亮度实现交互
ps: 灯带的控制数据位是rgb x 灯带数量
输入数据:p1接口接3颗rgb灯。例:{'p1': '66 42 59 64 48 63 63 54 67'}
快速示例:图形像素值控制rgb灯带
程序地址:https://github.com/DFRobot/WIAnode-examples/tree/master/WIAnode_Touchdesigner_samples/09.WIAnode-TD-LED
10. 300度舵机控制示例
传感器特点:通过改变灯光亮度实现交互
ps: WIAnode配置文件需把对应接口修改为servo300。
输入数据:0-300。例:p5接口接300度舵机转动200度。{'p5': '200 ‘}
快速示例:循环数值控制舵机在0-300度之间旋转
程序地址:https://github.com/DFRobot/WIAnode-examples/tree/master/WIAnode_Touchdesigner_samples/10.WIAnode-TD-servo300
Unity部分
Unity3d_MQTT开源库:https://github.com/vovacooper/Unity3d_MQTT
教程地址:https://blog.csdn.net/lordwish/article/details/85013763
Unreal Engine部分
mqtt插件:https://github.com/NinevaStudios/mqtt-utilities-unreal
教程地址:https://github.com/NinevaStudios/mqtt-utilities-unreal
VVVV部分
官方库链接:https://www.nuget.org/packages/VL.IO.MQTT
1.添加mqtt的库,打开软件内的命令行工具,输入“dotnet add package VL.IO.MQTT --version 1.2.5”
2.打开mqtt实例教程