insar-socket 支持TouchDesigner连接的插座

这篇文章也发布在我的个人网站上https://swortain.wang

insar-socket是我的第一个产品类的作品,主要的功能是支持Modbus-TCP的插座,可以让你在装置项目中集成一个220的电器,而不需要你懂任何的电子电路知识。
我还写了一写装置软件的库(目前位置仅支持了TouchDesigner)。这样你甚至不需要了解Modbus的相关知识,只需要配网,和软件内部的一些设置即可。

参数

功率:额定功率2000w,长期负载建议不找过1500w。

电压:由于接口采用国标规范,所以无法在国外使用,但是设计上采用100~240V,支持全球通用。


PCB效果图




使用教程

配网

设备第一次链接WiFi时需要进行配网操作,让设备知道需要链接的WiFi的SSID和密码。这个操作如果不更换链接WiFi的名称和密码的情况下,只需要做一次,后面设备每次开机会自动连接最近一次设置的WiFi。

先给设备供电,按钮处红色LED常亮,并且黄色LED缓慢闪烁,此时可以搜索到一个「insar_config_」开头的wifi热点。

连接后会自动弹出一个页面(在iphone上通常会自动弹出)或者显示需登录/认证(在我的小米手机上是这样的)点击后弹出页面

点击Configure WiFi

点击要连接的WiFi名称,在密码行填入密码

点击save后设备后自动重启后链接wifi。黄色LED闪烁几次后常亮,表示已经成功连上WiFi

TouchDesigner库

首先电脑要和设备连入同一个wifi。打开insar-socket.toe这个文件,在insar_socket OP的参数里有一个search点击旁边的pulse会自动搜索局域网内所有的设备。

搜索完成后会弹出一个窗口,点击ok后IP Address会列出所有局域网内所有的设备的IP地址。

在左边连入一个CHOP,当里面任意一个channel从0变为非零的时候会打开插座,反之会关闭插座

后台管理界面

在浏览器输入设备的IP地址,可以看到后台的管理界面,可以看到设备ID,固件版本,插座的通断以及可以控制插座的打开和关闭。


基于其他平台实现二次开发

如果你只是想在已有库的软件(比如目前的Touchdesigner)里面使用本设备的话,这一部分是不需要看的,如果你需要集成到其他的环境中,比如单片机(需要设备能联网,比如使用ESP32、ESP8266或者Arduino UNO加Ethernet shield或者STM32加W5100这些)、openFrameworks、Processing(相关库在计划当中)、或者更底层的比如java、python,那么你需要看下面这部分,同时你需要懂一些TCP/IP通讯相关的知识以及Modbus相关的一些概念。

Modbus 通讯协议

设备是基于Mocbus-RTU TCP协议的,也就是说是基于二进制表示数据的方式,所以你需要知道一些指令的含义,关于Modbus-RTU的一些知识可以看我在简书的这里写一些简单的介绍。设备是作为TCP主机的,所以你需要用TCP客户端去连接

Modbus RTU是一种紧凑的,采用二进制表示数据的方式,Modbus ASCII是一种人类可读的,冗长的表示方式。
<footer class="blockquote-footer">维基百科 </footer>
{.blockquote}

参数

  1. 从机地址:01
  2. 端口号:29779(这里不是默认的Modbus TCP端口,是为了方式搜索设备的时候搜索到网络中其他的Modbus设备)
  3. 继电器对应的线圈编号:100
  4. 校验:modbus标准的CRC16校验

控制例程

以下数字均为十六进制

控制线圈

事务处理标识符 协议标识符 长度 从机地址 功能码 线圈编号 数据 CRC校验码
00 00 00 00 00 08 01 05 00 64 FF' 00 CD E5

{.table}

数据位如果要打开继电器应为FF 00,如果关闭则是00 00

返回数据与发送的是完全相同的

查询线圈状态

发送

事务处理标识符 协议标识符 长度 从机地址 功能码 线圈编号 数据 CRC校验码
00 00 00 00 00 08 01 01 00 64 00 01 BC 15

{.table}

其中事务处理标识符理论上可以是任意数字

协议标识符Modbus都是00 00

线圈编号开始线圈的编号,是100的十六进制,小端模式

数据00 01表示读取一个线圈

注意因为设备内只定义了100号线圈,所以查询其他编号比如99开头的两个线圈或者100开头的2个线圈都会返回错误信息。

返回

事务处理标识符 协议标识符 长度 从机地址 功能码 后面bytes的数量 状态值
00 00 00 00 00 04 01 01 01 01

{.table}

状态值当继电器打开时是01,关闭时是00

CRC16校验示例代码(Python)

{{< highlight python "linenos=table" >}}
def crc16(data):
crc = 0xFFFF
for pos in data:
crc ^= pos
for i in range(8):
if ((crc & 1) != 0):
crc >>= 1
crc ^= 0xA001
else:
crc >>= 1
return crc.to_bytes(2,byteorder='little',signed=False)
{{< / highlight >}}


硬件的二次开发

设备出厂预制程序,如果只需要使用的话这一部分是不需要看的,如果想基于现有硬件二次开发,那么你需要了解ESP32的相关知识。

设备是由ESP32开发的,预留了烧写接口如下图,排针是不焊接的,可以使用间距2.54mm的顶针烧写,或者焊接普通2.54mm间距的排针。内部预留了空间保证焊接后也可以装上外壳,


烧写接口引脚定义

1 2 3 4 5 6
GND IO0 RST RXD TXD 3.3V

烧写过程

因为设备供电的时候PCB上是有220v强电的,所以建议用烧写器给设备供电3.3v,如果烧写器有ESP32的自动复位电路的话需要链接2、3号引脚,否则只需连接其他四个引脚,但是在上电前需要短接2号和GND引脚使设备进入烧写模式。

引脚定义

设备内有两个LED,红色是电源LED无法控制,黄色连接了IO21,可以控制。继电器连接是的IO12引脚

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,928评论 6 509
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,748评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,282评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,065评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,101评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,855评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,521评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,414评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,931评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,053评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,191评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,873评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,529评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,074评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,188评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,491评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,173评论 2 357