цифровая электроника
вычислительная техника
встраиваемые системы

 
» » Отправка данных между двумя Raspberry Pi Pico W в Thonny



Отправка данных между двумя Raspberry Pi Pico W в Thonny

Автор: Mike(admin) от 9-06-2023, 03:55

Связь нескольких микроконтроллерных плат Raspberry Pico W, обладающих возможностями беспроводной связи, может быть необходимо в проектах с распределенными системами для передачи данных между ними.


Отправка данных между двумя Raspberry Pi Pico W в Thonny

В рамках данного проекта мы реализуем передачу данных между двумя микроконтроллерными платами Raspberry Pico W.


Для начала разрешим несколько экземпляров Thonny. Для этого откройте Thonny и перейдите в Tools - Options - General и снимите флажок «Allow only single Thonny instance».


Отправка данных между двумя Raspberry Pi Pico W в Thonny

Перезапустите Thonny, чтобы активировать это обновление настроек. Откройте другой экземпляр Thonny. Чтобы открыть другой экземпляр на Mac, перейдите в Терминал и запустите следующий код:


/applications/Thonny.app/Contents/MacOS/thonny

После запуска вы должны увидеть всплывающее окно другого экземпляра Thonny. Если вы используете Windows или Linux, процесс немного отличается. Вы можете открыть cmd и сделать что-то подобное или дважды коснуться приложения, чтобы открыть другой экземпляр. После этого вы можете выбрать соответствующее устройство в соответствующих экземплярах Thonny. Если у вас есть устройства, подключенные к вашему компьютеру, вы сможете подключить оба устройства на отдельных экранах.


Отправим сообщения между устройствами. В одном экземпляре запустите следующий код сервера, вы можете выбрать либо Pico W, чтобы сделать это.



from machine import Pin, ADC
import network
import random
import socket
import time

import constants


# Just making our internet connection
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(constants.INTERNET_NAME, constants.INTERNET_PASSWORD)

# Wait for connect or fail
max_wait = 10
while max_wait > 0:
  if wlan.status() < 0 or wlan.status() >= 3:
    break
  max_wait -= 1
  print('waiting for connection...')
  time.sleep(1)
# Handle connection error
if wlan.status() != 3:
   raise RuntimeError('network connection failed')
else:
  print('connected')
  status = wlan.ifconfig()
  #print('ip = ' + status[0])

# Open socket
addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1]

s = socket.socket()
s.bind(addr)
s.listen(1)

print('listening on', addr)

# Listen for connections
while True:
    try:
        cl, addr = s.accept()
        request = cl.recv(1024)
        print(request)
        # No need to unpack request in this example
        ran_num = str(random.randint(0, 100))
        cl.send(ran_num)
        print("Sent: " + ran_num)
        cl.close()

    except OSError as e:
        cl.close()
        print('connection closed')

В другом экземпляре запустите клиентский код и выберите другой Pico W, чтобы сделать это.



from machine import Pin, ADC
import network
import random
import socket
import time

import constants

# Just making our internet connection
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(constants.INTERNET_NAME, constants.INTERNET_PASSWORD)

# Wait for connect or fail
max_wait = 10
while max_wait > 0:
  if wlan.status() < 0 or wlan.status() >= 3:
    break
  max_wait -= 1
  print('waiting for connection...')
  time.sleep(1)
# Handle connection error
if wlan.status() != 3:
   raise RuntimeError('network connection failed')
else:
  print('connected')
  status = wlan.ifconfig()
  #print('ip = ' + status[0])

while True:
    ai = socket.getaddrinfo(<Change this>, 80) # Address of Web Server
    addr = ai[0][-1]

    # Create a socket and make a HTTP request
    s = socket.socket() # Open socket
    s.connect(addr)
    s.send(b"Anything") # Send request
    ss=str(s.recv(512)) # Store reply
    print(ss)
    # Set RGB LED here
    s.close()
    time.sleep(0.2)

Код просто отправляет сообщение между клиентом и сервером, обязательно измените адрес веб-сервера. Вы можете получить это, раскомментировав код на сервере #print('ip = ' + status[0]). Если вы все настроили правильно, вы должны начать видеть случайные числа, отправляемые клиенту. Проект может быть распространен на ваши собственные приложения.




© digitrode.ru


Теги: Raspberry Pi Pico, Thonny




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий