Недавно был Kickstarter о «Arduino, который работает на Python», WiPy . Это небольшая IoT-плата с WiFi (которая недоступна на складе Arduinos) по привлекательной цене. И возможность использовать язык высокого уровня вместе со многими существующими библиотеками делает его привлекательным.
Несколько дней назад я получил WiPy, которые я поддерживал, и первым препятствием для запуска был источник питания, поскольку у них нет (микро) USB-разъема на плате (и я также не поддерживал предлагаемые ими платы расширения) ,
К счастью, у меня все еще был старый несуществующий USB-концентратор, из которого я мог припаять разъем и положить его на небольшую печатную плату для этой цели (выполняя это упражнение, я также обнаружил, что 5 В USB-порта может быть 4,75-5,25. V и на конце концентратора, даже будучи всего 4,4 В).
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 Хейко Руппа в блоге Некоторые вещи для запоминания . |