Подключение wi-fi модуля к raspberry pi
В новых версиях raspberry pi уже есть встроенный wi-fi и все работает из коробки. Но что делать с raspberry pi 1 и 2 в которых есть только Ethernet разъем, а хочется управлять данными платами через wi-fi сеть. Для этого как раз и служит данная статья, которая расскажет как подключить usb wi-fi адаптер к малинке.
В основном обычные wi-fi адаптеры работают на распространенных контроллерах. Для них уже есть драйвер в операционной системе Rasbian. К сожалению у меня нет wi-fi адаптера который был бы менее распространен и для него пришлось бы ставить сторонний драйвер (например wi-fi адаптер xiaomi). Я покажу именно настройку с уже установленным драйвером в ОС. Список поддерживаемых адаптеров можно посмотреть тут.
Ну чтож давайте приступим уже непосредственно к настройке wi-fi адаптера, опустив часть с установкой ОС на малинку и опустив часть с подключением к ней по ssh.
И так подключив наш wifi адаптер к малинке и подключившись по ssh, проверим что же за адаптер у нас, так как в моем случае на нем нет никаких опознавательных знаков.
Вводим команду: lsusb
Как видим наше устройство это MT760U и если посмотреть в списке поддерживаемых устройств, оно там есть, значит драйвер уже вшит в ОС.
Далее вводим команду: ifconfig -a
Видим 3 интерфейса eth0 – это наш ethernet разъем. lo – это loopback на него не обращаем внимания. и wlan0 – это как раз наш wi-fi адаптер. ( Важно, если вставили wi-fi адаптер уже после того как загрузилась ОС, то в списке интерфейсов вы его не увидите, необходимо будет перезагрузить raspberry pi)
Зная что у нас интерфейс wlan0. нам необходимо настроить конфиг сетевых интерфейсов, который находится в /etc/network/interfaces
Настраивать будем командой sudo nano /etc/network/interfaces и в открывшимся окне записать настройки для wlan0:
allow-hotplug wlan0 iface wlan0 inet manual wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf iface default inet dhcp
Выглядеть это должно следующим образом:
После этого комбинацией клавиш ctrl+X и Y сохраняем наш файл.
Теперь давайте посмотрим какие сети находит наш wi-fi адаптер командой: sudo iwlist wlan0 scan | grep ESSID
Теперь чтоб подключиться к необходимой нам wi-fi сети, необходимо в файл sudo nano /etc/wpa_supplicant/wpa_supplicant.conf записать следующее:
Выглядящее это примерно так:
Далее опять Ctrl+X и Y для сохранения.
Ну и перезагружаем raspberry pi командой sudo reboot
И уже по тому ip адресу который был мы не подключимся к малинке, теперь он выдастся уже новый wi-fi адаптеру.
Подключившись уже по другому ip адресу и введя команду ifconfig -a видим какой получил ip адрес наш интерфейс wlan0:
На этом настройка wifi закончена и теперь можно управлять малинкой через wifi.
Добавляем WiFi к Raspberry Pi всего за $2
Разного рода хаков для мини-ПК Raspberry Pi Zero, вышедшего в тираж пару недель назад довольно много. Правда, пока что большая часть — простенькие приемы, типа впайки WiFi модуля, что и хаком особо назвать нельзя. Сейчас начинают появляться более интересные вещи, среди которых — использование SDIO для добавления WiFi модуля. Причем USB при этом не используется, порт остается функциональным.
Пользователь Hackaday.io с ником ajlitt некоторое время задумался о возможности добавления WiFi модуля к таким платам, как Raspberry Pi A+ и Raspberry Pi Zero. Дело в том, что у Raspberry Pi B+, например, несколько USB портов, и один из них можно без проблем занять соотвествующим WiFi модулем. Но у Zero и A+ портов минимум, и подключать к ним WiFi модуль не всегда представляется возможным. Решение умельца оказалось довольно оригинальным. Дело в том, что у Raspberry Pi есть специальный GPIO-разъем с пинами, и к этому разъему можно подключать различные устройства, в том числе, и SDIO-девайсы. Эту особенность «малинки» и было решено использовать.
SDIO — это специальное расширение SPI-подобного протокола, который используется для работы с SD картами памяти. Идея SDIO — подключение совместимого устройства к разъему, для получения дополнительной функциональности гаджета. Этот способ активно использовался, например, в наладонниках (КПК). К такому разъему можно было подключить GPS-модуль, или что-то другое, получив новую функцию в своем устройстве.
Пример подключения GPS-модуля к КПК
Ajlitt попробовал найти драйвер для чипа ESP8089, и нашел спецификации самого чипа, где говорилось о том, что шину ESP8266 SPI можно освободить, убрав чип флеш-памяти. Оставалось только подключить SPI-контакты ESP8266 к SDIO Raspberry Pi, и остальную работу по подключению уже доделывал драйвер.
Для того, чтобы WiFi заработал, необходимо в самом начале отпаять SPI-память от модуля ESP-03.
Далее соединяем 3.3V и GND. Подключаем CH_PD (CH_EN на ESP8266 чипе) к любому свободному GPIO. Можно использовать, к примеру GPIO4. Это позволит подключить питание к модулю, а драйвер правильно активирует чип. Другие GPIO после подключения уже не стоит использовать. В противном случае ESP8266 захочет загрузиться из флеш-памяти, которая уже удалена, и ничего не получится.
После этого качаем 4.2 kernel из Raspberry Pi Github. Лучше всего https://github.com/raspberrypi/linux.git, ветка rpi-4.2.y.
После создаем esp8089 модуль:
git clone github.com/al177/esp8089.git
cd esp8089
make
И загружаем модуль:
modprobe mac80211
insmod esp8089.ko
Результат — WiFi модуль без использования USB. Вся работа довольно простая, нужны минимальные навыки пайки. При этом стоимость модификации составляет всего $2. А вот такие способы уже не нужны. Канал в случае работы со SDIO не такой быстрый, как в случае использования выделенного модуля, но вполне приемлемо.
Страничка проекта с техническими подробностями.
Подключение к плате Raspberry Pi Pico Wi-Fi модуля ESP8266-01
Модуль ESP-01 (ESP8266-01 ) является достаточно функциональным и при этом одним из самых дешевых Wi-Fi модулей. В данной статье мы рассмотрим подключение Wi-Fi модуля ESP8266-01 к плате Raspberry Pi Pico и его программирование с помощью языка Micropython и библиотеки ESP8266.
Модуль ESP8266-01 поставляется с собственной прошивкой (программным обеспечением), управлять им можно по последовательному порту (UART), передавая ему AT команды. С помощью языка программирования Micropython мы можем сравнительно просто подключить модуль ESP8266 к плате Raspberry Pi Pico и выполнять операции вида http get/post. Более подробно про работу с данным модулем вы можете прочитать в статье про его подключение к плате Arduino.
Необходимые компоненты
- Плата Raspberry Pi Pico (купить на AliExpress).
- Модуль ESP8266-01 (купить на AliExpress).
- Резистор 1 или 10 кОм (опционально, для подключения между контактом 3.3v платы и контактом EN модуля ESP8266).
- Макетная плата.
- Соединительные провода.
Схема проекта
Схема подключения Wi-Fi модуля ESP8266-01 к плате Raspberry Pi Pico представлена на следующем рисунке.
На представленной схеме провод красного цвета соединяет контакт VCC модуля ESP-01 с контактом 3.3V (контакт № 36) платы Raspberry Pi Pico. Провод коричневого цвета подключает контакт CH_EN (Channel Enable – задействование канала) модуля ESP-01 к контакту 3.3V платы. Контакт передачи модуля ESP-01 подключен к контакту приема канала UART0 (контакт № 2) платы Raspberry Pi Pico с помощью провода желтого цвета на схеме. Контакт приема модуля ESP-01 подключен к контакту передачи канала UART0 (контакт № 1) платы с помощью провода оранжевого цвета. Соединение проводов земли (ground) модуля и платы показано проводами черного цвета.
Объяснение программы для Raspberry Pi Pico
Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.
Прежде чем начинать работу над программой для проекта скачайте с репозитория GitHub каталог обучающих программ для Raspberry Pi Pico либо же вы непосредственно можете скачать библиотеку Raspberry Pi Pico MicroPython ESP8266 library для использования операций HTTP Get/Post.