Узнаем IP address который получила pcDuino через DHCP и посылаем его в Arduino через UART.
#!/usr/bin/env python
import socket
import fcntl
import struct
import serial
import time, os
def get_ip_address(ifname):
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
return socket.inet_ntoa(fcntl.ioctl(
s.fileno(),
0x8915, # SIOCGIFADDR
struct.pack('256s', ifname[:15])
)[20:24])
# Инициализация порта UART0
def uart_init():
GPIO_MODE_PATH= os.path.normpath('/sys/devices/virtual/misc/gpio/mode/')
GPIO_PIN_PATH=os.path.normpath('/sys/devices/virtual/misc/gpio/pin/')
GPIO_FILENAME="gpio"
pinMode = []
pinData = []
SERIAL = "3"
for i in range(0,2):
pinMode.append(os.path.join(GPIO_MODE_PATH, 'gpio'+str(i)))
pinData.append(os.path.join(GPIO_PIN_PATH, 'gpio'+str(i)))
file = open(pinMode[0], 'r+')
file.write(SERIAL)
file.close()
file = open(pinMode[1], 'r+')
file.write(SERIAL)
file.close()
uart_init()
pcDuinoIPaddress = get_ip_address('wlan0')
arduino = serial.Serial('/dev/ttyS1',baudrate=115200,timeout=10)
arduino.write("["+pcDuinoIPaddress+"]")
arduino.close()