欢迎光临
我们一直在努力

LabVIEW通过WIFI远程控制树莓派

这两年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。

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

最后,祝大家国庆快乐!

赞(70)
分享到: 更多

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址