多台树莓派(主机)通信

在做无人机实验时,有个任务需要 两台无人机无人机与小车 进行通信。

由于我们飞机上用了树莓派,相当于一台电脑,索性选用Socket网络编程。

条件:树莓派、局域网(手机热点或路由器)。需要通信的两台树莓派接入同一个局域网。

如若现场没有网络,可将树莓派配置为无线路由器,发射wifi。网上很多教程,注意一点是树莓派需要先用网线接入路由器再配置。

发送数据:

# -*- coding:utf-8 -*-
import time
import socket
import numpy as np


s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('10.31.17.190', 6666))  #绑定ip和端口号(IP为发送数据的树莓派ip,端口号自己指定)
s.listen(5)
c, address = s.accept()      #等待别的树莓派接入

start_time = time.time()

while(True):

    if(time.time() - start_time < 5):
        msg = '1'
    else:
        msg = '2'

    print(msg)

    c.send(msg.encode('utf-8'))   #编码

    if(msg == '2'):
        break

s.close()

接收数据:

# -*- coding:utf-8 -*-
import socket


s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('10.31.17.190', 6666))   #链接刚刚绑定的ip和端口号

while(True):
    msg = s.recv(1)    #接收数据(字节数)
    msg =  msg.decode('utf-8')   #解码

    print('recv:', msg)

    if(msg =='2'):
        break

s.close()

 

你可能感兴趣的:(树莓派,无人机)