2017-09-01 33 views
-1

我有使用uno和以太网盾的arduino项目。我不想在python中输出arduino数据输出。我已经使用pySerial python尝试过这种情况并成功了。 然后现在,我不想尝试我的python可以通过互联网读取arduino数据输出,而不是串行python。如何通过互联网使用python读取arduino数据输出?

拓扑结构: Arduino与eth。盾--->开关< ---笔记本电脑

*注意:交换机可以从我的路由器连接到互联网。

你能帮我吗,伙计们?

+0

[?为什么?“有人可以帮助我”不是一个实际问题(http://meta.stackoverflow.com/q/284236) –

回答

0

如果您愿意尝试套接字并希望在非常基本的层面上运行,可以设置一个Python脚本来使用UDP发送和接收数据。 Here是Arduino提供的用于发送UDP的快速示例,here是在Python端接收UDP消息的示例。一旦你得到这个设置,你可以发送和接收任何你想要的!

+0

拉姆齐您好,感谢您的帮助,但我仍然感到困惑,因为Python接收UDP消息。什么是我使用的IP和端口?使用Arduino IP和端口? – Han

+0

是的,你最初需要使用serial来获取你的Arduino的IP地址,以便它可以接收到消息。只要没有其他程序正在使用它,您就可以决定要使用哪个端口。 –

+0

哦,好吧..我明白了。 Python作为接收器并从笔记本电脑运行正确?那么,对于Arduino方面来说,是否必须有目标IP和端口? (发送数据到Python,这是我的笔记本电脑的IP地址?) – Han

0

您在这里使用的IP应该是“本地主机”,因为只有arduino需要计算机的地址而不是相反。你的Python脚本只是在监听任何人连接。试试这个:

import socket 

UDP_IP = "localhost" # this computer 
UDP_PORT = 3939 # the port that the arduino should connect to 

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
sock.bind((UDP_IP, UDP_PORT)) 

while True: 
    data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes 
    print "received message:", data 
+0

谢谢,它帮助了我!但是,在我运行这个python脚本后,(我使用cmd运行python)cmd窗口不打印我的arduino数据输出,这是否意味着arduino没有与我的python(笔记本电脑)连接? – Han