天天看點

阿裡雲&樹莓派通信記錄

前言

本人大三年級,這次的課程設計選題,需要使用微信小程式與樹莓派完成通訊,在查閱一些相關内容後,決定使用阿裡雲伺服器作為通信媒介,使用樹莓派與阿裡雲伺服器之間完成通訊,以及微信小程式和阿裡雲伺服器直接按完成通訊,實作一些實作端-雲互聯,解決一些實際的複雜的問題。

這次阿裡雲為我們這次課程設計提供了免費的試用平台,

高校學生免費算力 - 飛天加速計劃

使用過程

在完成相關任務後,成功領取,在控制台中打開。

阿裡雲&樹莓派通信記錄

需要注意的是這裡的公網IP需要認識一下。

阿裡雲&樹莓派通信記錄

在左邊點選執行個體後,點遠端連接配接,就可以打開伺服器的終端進行操作,可以看到伺服器已經擁有了python3環境。

使用ifconfig指令檢視内網IP:

阿裡雲&樹莓派通信記錄

接下來需要需要将該8888端口,拉入防火牆白名單。

阿裡雲&樹莓派通信記錄

在伺服器終端執行以下指令:

systemctl start firewalld
#看一下防火牆狀态
systemctl status firewalld
#列出所有端口号白名單
firewall-cmd --list-all  
#添加一個8888端口為白名單
firewall-cmd --add-port=8888/tcp --permanent     
#更新防火牆操作
firewall-cmd --reload            

寫一下伺服器端的代碼,python語言:

HOST = '172.25.137.140'        #注意這個是内網ip 可以通過ifconfig指令檢視
PORT = 8888
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#綁定socket
s.bind((HOST, PORT))
#開始監聽
s.listen(1)
print('Listening at port:',PORT)
conn, addr = s.accept()
print('Connected by', addr)
while True:
    data = conn.recv(1024)
    data = data.decode()
    if not data:
        break
    print('Received message:', data)
conn.close()
s.close()           

可以通過檔案傳送指令将該檔案傳到伺服器端,windows終端輸入以下指令:

阿裡雲&樹莓派通信記錄

樹莓派端代碼:

HOST = '47.113.197.21'                 #公網IP
PORT = 8888
BUFSIZ =1024
ADDR = (HOST,PORT)
tcpCliSock = socket(AF_INET,SOCK_STREAM)
tcpCliSock.connect(ADDR)
while True:
     data1 = input('>')
     #data = str(data)
     if not data1:
         break
     tcpCliSock.send(data1.encode())
     data1 = tcpCliSock.recv(BUFSIZ)
     if not data1:
         break
     print(data1.decode('utf-8'))
tcpCliSock.close()           

最終效果

兩邊同時運作代碼,在樹莓派端輸入Hello World!:

阿裡雲&樹莓派通信記錄

可以看到伺服器端接收到資訊:

阿裡雲&樹莓派通信記錄

至此,樹莓派與伺服器端的通信已經打通,可以繼續更加複雜的應用了。

使用感受

通過本次嘗試樹莓派與阿裡雲伺服器之間通訊,雖然是第一次嘗試,但并沒有花費很多的經曆,阿裡雲伺服器的相關教程在官方網站上也介紹十分詳細,使用的感受較好,希望本次課程設計任務能夠順利完成。