前言
本人大三年级,这次的课程设计选题,需要使用微信小程序与树莓派完成通讯,在查阅一些相关内容后,决定使用阿里云服务器作为通信媒介,使用树莓派与阿里云服务器之间完成通讯,以及微信小程序和阿里云服务器直接按完成通讯,实现一些实现端-云互联,解决一些实际的复杂的问题。
这次阿里云为我们这次课程设计提供了免费的试用平台,高校学生免费算力 - 飞天加速计划
使用过程
在完成相关任务后,成功领取,在控制台中打开。
需要注意的是这里的公网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!:
可以看到服务器端接收到信息:
至此,树莓派与服务器端的通信已经打通,可以继续更加复杂的应用了。
使用感受
通过本次尝试树莓派与阿里云服务器之间通讯,虽然是第一次尝试,但并没有花费很多的经历,阿里云服务器的相关教程在官方网站上也介绍十分详细,使用的感受较好,希望本次课程设计任务能够顺利完成。