使用LabVIEW,通过WiFi远程控制树莓派~

LABVIEW 树莓派
浅浅的小草
发布时间: 2018-10-22
阅读: 3232

这两年Python很火,大数据,人工智能,深度学习很多都用的Python。上大学时候,我也没事自学过,只是没想到如今这么火。


然后我就买了个网上很火的树莓派瞎折腾一下,纯属业余。手里的是3B+,然后我就想,好像可以做个教程,通过WIFI控制树莓派




学过单片机的人估计都会有体会,学单片机等硬件,入门学习第一课大多是“点LED灯”。所以,我还是点灯吧。


于是我就焊了一个LED灯串了个电阻,然后接在了树莓派的IO口上。最后使用LabVIEW一个按钮控制这个LED灯亮和灭。


控制效果如下图(gif动图)所示。树莓派带了外壳,图中左边是摄像头实时图像,右边是LabVIEW前面板。



从上图可以看到,树莓派只接了一个小米充电宝,然后就是接了这个LED灯,没有连接其他外设。3B+自带WIFI模块,已通过路由器和我电脑组成了局域网。


下面开始介绍了,按步骤来:

1,使用python写TCP Server程序,并在树莓派运行。

2,使用TCP助手,采用TCP Client模式,测试树莓派的Sever能否正常工作。

3,使用LabVIEW的TCP函数,编写程序。



树莓派python写TCP Server,网上百度了下,然后自己修改了下。控制IO口的,自己也是百度了下,修改了下。然后测试运行。


下图代码仅供参考,毕竟我只是瞎改一下代码。





将上述代码保存为TCP.py,在树莓派系统中运行此程序。下图为windows下,远程桌面树莓派(主要我没多的显示器,只一台笔记本),若不使用远程桌面,在windows下运行putty连接也可以。



如上图所示,当运行程序时候,程序首先会侦听等待,当我的电脑端的TCP软件连接上时候,会返回数据。树莓派的python程序,根据发送的是HIGH还是LOW,在终端显示信息,并判断控制LED的IO口的电平。


那么,TCP助手成功了,既然TCP助手可以正常通信,那么就换上LabVIEW编程。大家平时在通信时候,一定要借助其他工具确认某一方无问题,再使用LabVIEW编程,这样容易排查故障。


很多人对TCP可能没搞过,觉得通过WIFI控制似乎很难。WIFI跟有限网络一样,要么UDP,要么TCP,这里是使用的TCP,那么就直接看LabVIEW的范例,使用4个函数,TCP连接,TCP写,TCP读,TCP关闭。这个和串口的类似。我的目前这个程序见下图。大概花了一分钟写了一个。



由于TCP不像串口一样,没有属性节点读取当前字节数,所以我在树莓派的python语句里,发送数据时候,末尾加了回车换行,在TCP读的时候,模式选择了回车换行。实际上,http协议就是有这样的终止符。


这个只是个简单例子,似乎也没什么技术含量,就一个TCP而已。

未来大家可以衍生其他控制。特别是大学里面做技术创新,或者自己业余玩玩的。


现在网上的python代码很容易搜索,LabVIEW的资源其实也是一大堆,想做点啥,自己百度下,修改一下基本差不多了。




那么,为什么我要写这么个文章,原因大概是前天有群在问一个TCP问题。这个人看了下范例,然后瞎改。


这个问题也曾在我多年前刚开始学习TCP的曾疑惑过:


在TCP范例中,TCP客户端,首先TCP读取了4字节,然后强制换换,输入给了后面的TCP读取。为什么是4,而不是其他的数字。上述说的某群里某人就是瞎改这个4,为其他的数字,如19。结果必然是不正确的。我们自己写TCP时候,是不是必须按范例来,当然不是,我上面的程序就没有。



这个问题,相信用过的人都曾想过,不知道是否都想明白过。

这个范例位置,自己搜索TCP,然后选择 Simple TCP。



在庞大的工程,最后都是建立在基础知识上面,很多时候我们看范例就能看明白,只是很多人看不明白,领悟不深刻。


作者简介:社区达人(http://www.ickey.cc/expert/detail/48.html),网上发布有《小草手把手LabVIEW基础视频》,《NI FPGA初级视频教程》、编写《小草手把手教你LabVIEW仪器控制》PDF。在LabVIEW各大论坛,以“浅浅的小草”为名,发布技术文章和视频,曾利用业余时间去深圳大学和湖南大学LabVIEW俱乐部进行LabVIEW知识讲座,热心为大家答疑解惑。


原创作品,未经权利人授权禁止转载。详情见转载须知 举报文章

点赞 (0)
评论(0)

登录后可评论,请 登录注册

相关文章推荐
X
你的打赏是对原创作者最大的认可
请选择打赏IC币的数量,一经提交无法退回 !
100IC币
500IC币
1000IC币
自定义
IC币
确定
X
提交成功 ! 谢谢您的支持
返回

我要举报该内容理由

×
请输入您举报的理由(50字以内)