智能开关:orange pi one(arm linux)控制继电器
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了智能开关:orange pi one(arm linux)控制继电器,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2532字,纯文字阅读大概需要4分钟。
内容图文
大家都知道,继电器是用小电流去控制大电流运作的一种“自动开关”,在我们生活、工作中随处可见。现在的“智能家居”概念,有很多功能模块其实就是“智能开关”,远程开关、定时开关、条件触发开关等等。
下面介绍的“orange pi one(arm linux)控制继电器”,就可以轻松实现“智能开关”。
orange pi 和 树莓派一样,是基于arm linux的开发板,大家把它当成一台普通linux电脑用就行了。当然相比普通linux电脑,它有自己的优势和劣势。简单来说,劣势就是硬件配置低、基于arm架构,开发难度比x86稍大;优势是:价格便宜、功耗低、可常年开机运行。
我在网上买了一个“USB控制继电器模块”,它集成了“USB转TTL串口”和“继电器”模块,并且在大多数现代操作系统上是免驱的,直接插入USB接口,操作系统就能识别出来,并加载为“串口设备”。在windows xp、windows 7等操作系统直接用串口调试软件就可发送指令操纵它。当然,我们的树莓派、orange pi 也可以。
继电器有NO、NC、COM三各接线端。
NO是常开(NORMAL OPEN),就是通常即未通电状态下,是断开的,通电后在电磁线圈的作用下(吸合)处于闭合状态。NC是常闭(NORMAL CLOSE),就是通常即未通电状态下,是闭合的,通电后在电磁线圈的作用下(吸合)处于断开状态。可选择接NO+COM 或 NC+COM,注意:NO、NC不可同时接入,否则会发生短路。
我用的是一个“orange pi“,从官网上下载了armbian for orange pi one并烧写进tf卡,插进开发板,上电就可以启动了。
把USB继电器模块插到开发板的USB接口,然后在控制台输入” cd /dev “,再输入” ls “,会看到 “ ttyUSB0 ”,这就是系统加载的USB串口。
通过串口发送“A0 01 01 A2“ 可以控制继电器吸合,发送 “A0 01 00 A1”则断开。
现在试一试,输入echo -n -e "\xA0\x01\x01\xA2" >/dev/ttyUSB0 ,可以听到USB继电器模块“卡塔“地响一声,说明继电器已经吸合,如果接线方式选择”NC+COM“,现在相当于发送”开“指令。
再输入 echo -n -e"\xA0\x01\x00\xA1" >/dev/ttyUSB0 ,USB继电器模块会再“卡塔“响一声,说明开关状态已经改变,如果接线方式选择”NC+COM“,现在相当于发送”关“指令。
把“开“、”关“指令分别写到一个脚本文件里,如下所示:
ttyUSB0Open.sh
#!/bin/bash
echo -n -e "\xA0\x01\x01\xA2" >/dev/ttyUSB0
ttyUSB0Close.sh
#!/bin/bash
echo -n -e "\xA0\x01\x00\xA1" >/dev/ttyUSB0
那么直接在控制台执行 ./ttyUSB0Open.sh 和 ./ttyUSB0Close.sh 也能达到控制继电器开关的目的。
到了这一步,相信程序猿朋友已经知道怎么实现“智能开关了“,利用自己擅长的开发语言,如c/c++、java、python 、nodejs、golang等,都可以在arm+linux下开发”上与web通讯、下与串口通讯“的远程、智能应用了。
当然,也可以不调用脚本文件,直接在应用代码里发送串口数据。
我用的是nodejs,这里列出主要代码:
/****************************************************************************************************/
function util_ExeCmd(cmd, param, callback) {
var rst = {};
var spawn =require(‘child_process‘).spawn;
var free = spawn(cmd,param);
free.stdout.on(‘data‘,function (data) {
rst.out = ""+ data;
});
free.stderr.on(‘data‘,function (data) {
rst.err = ""+ data;
});
free.on(‘exit‘, function(code, signal) {
rst.exit ="" + code;
callback(rst);
});
}
router.get(‘/ttyusb/open‘, function (req, res, next) {
console.log("open");
util_ExeCmd("ttyUSB0Open.sh", [], function (rst) {
res.send(JSON.stringify(rst));
});
});
router.get(‘/ttyusb/close‘, function (req, res, next) {
util_ExeCmd("ttyUSB0Close.sh", [], function (rst) {
res.send(JSON.stringify(rst));
});
});
/****************************************************************************************************/
我已经通过上面的步骤控制了一个USB照明灯,放在卫生间门口:) 但还没有接入220V电源来控制洗衣机、电饭煲、空调等,希望胆大的朋友,接入220V测试后,能告诉我,谢谢!请在保证安全第一的情况下使用220V强电。
原文:https://www.cnblogs.com/luoc83/p/8421159.html
内容总结
以上是互联网集市为您收集整理的智能开关:orange pi one(arm linux)控制继电器全部内容,希望文章能够帮你解决智能开关:orange pi one(arm linux)控制继电器所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。