2017-09-01 68 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