前言
本人大三年級,這次的課程設計選題,需要使用微信小程式與樹莓派完成通訊,在查閱一些相關内容後,決定使用阿裡雲伺服器作為通信媒介,使用樹莓派與阿裡雲伺服器之間完成通訊,以及微信小程式和阿裡雲伺服器直接按完成通訊,實作一些實作端-雲互聯,解決一些實際的複雜的問題。
這次阿裡雲為我們這次課程設計提供了免費的試用平台,
高校學生免費算力 - 飛天加速計劃使用過程
在完成相關任務後,成功領取,在控制台中打開。

需要注意的是這裡的公網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!:
可以看到伺服器端接收到資訊:
至此,樹莓派與伺服器端的通信已經打通,可以繼續更加複雜的應用了。
使用感受
通過本次嘗試樹莓派與阿裡雲伺服器之間通訊,雖然是第一次嘗試,但并沒有花費很多的經曆,阿裡雲伺服器的相關教程在官方網站上也介紹十分詳細,使用的感受較好,希望本次課程設計任務能夠順利完成。