Статьи

WiPy в домашней сети

Недавно был Kickstarter о «Arduino, который работает на Python», WiPy . Это небольшая IoT-плата с WiFi (которая недоступна на складе Arduinos) по привлекательной цене. И возможность использовать язык высокого уровня вместе со многими существующими библиотеками делает его привлекательным.

Несколько дней назад я получил WiPy, которые я поддерживал, и первым препятствием для запуска был источник питания, поскольку у них нет (микро) USB-разъема на плате (и я также не поддерживал предлагаемые ими платы расширения) ,

К счастью, у меня все еще был старый несуществующий USB-концентратор, из которого я мог припаять разъем и положить его на небольшую печатную плату для этой цели (выполняя это упражнение, я также обнаружил, что 5 В USB-порта может быть 4,75-5,25. V и на конце концентратора, даже будучи всего 4,4 В).

WiPy на макете с разъемом питания USB.

WiPy на макете с разъемом питания USB.

WiPy на макете с разъемом питания USB.

Теперь, когда WiPy находится на макете, я настроил свой компьютер на поиск WLAN WiPy и затем подключился к устройству. Я осмотрелся и попытался проверить настройки WLAN, как описано в руководстве:

1
2
>>> from network import WLAN
>>> wlan = WLAN() # we call the constructor without params

Это немедленно сделало разрыв связи. Оказалось, что мне нужно было сначала обновить прошивку до последней версии (v1.1 на момент написания), что было безболезненно (но немного сбивает с толку, так как они также предоставляют bootloader.bin , который не нужен).

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

1
wlan.init(WLAN.STA)

чтобы перевести аппарат в режим станции (по умолчанию используется точка доступа), соединение разрывается. Некоторые пользователи решили это, подключившись через UART и последовательную линию, но я не очень хотел идти по этому пути.

Вместо этого я отредактировал boot.py на своем локальном компьютере, а затем загрузил его через ftp в /flash . Я обнаружил, что если вы не завершаете работу ftp-клиента и у вас также открыто соединение telnet, я могу легко (синтаксически) проверить загруженный файл, нажав Ctrl-D в терминале:

1
2
3
4
5
6
7
MicroPython v1.5-1-ge954604 on 2015-10-21; WiPy with CC3200
Type "help()" for more information.
>>>    <control-D>   <-- here
PYB: soft reboot
Traceback (most recent call last):
  File "boot.py", line 17, in
NameError: name not defined

WiPy сообщает мне, что в моем файле есть ошибка, поэтому я редактирую его локально и загружаю снова через соединение ftp. И только в конце, когда WiPy доволен, я нажимаю кнопку полной перезагрузки.

Теперь для справки мой boot.by, который работал для меня:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from network import WLAN
 
SSID = 'home_SSID'         # SSID of your home network
AUTH = (WLAN.WPA2, 'very_secret') # WPA secret as 2nd param
IP = '10.1.2.42'           # Fixed IP the device should get
ROUTER = '10.1.2.3'        # IP of your router
DNS = '10.1.2.3'           # IP of your DNS server
NETMASK = '255.255.255.0'  # Netmask to use
 
import machine
 
wlan = WLAN()
 
if machine.reset_cause() != machine.SOFT_RESET:
    wlan.init(WLAN.STA)
    # configuration below MUST match your home router settings!!
    wlan.ifconfig(config=(IP, NETMASK, ROUTER, DNS))
 
if not wlan.isconnected():
   wlan.connect(ssid=SSID, auth=AUTH, timeout=5000)
   while not wlan.isconnected():
      machine.idle() # save power while waiting
   print('WLAN connection succeeded!')

Части этого скрипта были взяты из учебника WiPy WLAN и этого поста на форуме WiPy .

Ссылка: WiPy в домашней сети от нашего партнера JCG Хейко Руппа в блоге Некоторые вещи для запоминания .