Arduino with bluetooth and wifi

Arduino Nano RP2040 Connect: обзор «ардуинки» с Wi-Fi и BLE на борту

В середине мая мы писали о появлении новой платы от Arduino, которая получила название Arduino Nano RP2040 Connect. Ее основа — чип RP2040 от Raspberry. В знакомую компоновку Nano весьма аккуратно интегрирован модуль связи Wi-Fi Nina W102 uBlox, который обеспечивает работу 2,4 ГГц Wi-Fi, Bluetooth с низким энергопотреблением, плюс есть гироскоп (IMU), способный обнаруживать движения и жесты, и микрофон.

Нужна ли вашему проекту такая плата? Как всегда, это зависит от потребностей и бюджета. Если нужны только светодиоды и базовая функциональность без беспроводной связи, хватит возможностей Raspberry Pi Pico. Если проект имеет отношение к IoT, да еще нужен веб-интерфейс, то Arduino Nano RP2040 Connect как раз то, что нужно. Правда, с оговорками, о которых поговорим ниже.

Характеристики платы

ATECC608A-MAHDA-T Crypto IC

Circuit operating voltage

Board Power Supply (USB/VIN)

448 КБ ROM, 520 КБ SRAM, 16 МБ Flash

Дизайн и использование Arduino Nano RP2040 Connect

Что касается дизайна, то он базируется на Arduino Nano, включая Nano 33 IoT и Nano Every. У всех этих плат аналогичная распиновка, так что при необходимости более старые и менее функциональные системы можно заменять на Arduino Nano RP2040 Connect. Плату можно распаивать на другой плате.

Из 22 GPIO-пинов 20 можно использовать для ШИМ. У платы 8 аналоговых входов. Что касается I2C пинов, то это A4 и A5. Доступ к встроенному гироскопу реализуется как раз через l2C шину.

К сожалению, вместо USB-С, который постепенно становится стандартом, система оснащена micro-USB. Эта плата — одна из самых дорогих в модельном ряду систем с чипом RP2040, поэтому производители могли бы и оснастить ее USB-C без удорожания. Но, как видим, не оснастили.

Наиболее заметной возможностью Arduino Nano RP2040 Connect является беспроводная связь, о чем уже говорилось выше. Ее наличие обеспечивается чипом Nina W102 с 802.11 b/g/n 2.4 ГГц Wi-Fi и Bluetooth 4.2. Антенна расположена с противоположной стороны от USB-порта. Чип бесплатной связи представляет собой мощный микроконтроллер с 520 КБ SRAM и двухъядерным 240 МГц 32-битным процессором Xtensa LX6. На этой плате он отвечает лишь за связь.

Поскольку это Arduino, то выбор IDE прост — это Arduino IDE. Недавнее обновление, добавившее поддержку чипа RP2040, делает работу простой и приятной. Мы протестировали Arduino Nano RP2040 Connect с Arduino 1.8.15 и 2.0 beta 7 IDE и все заработало без проблем. Тест, конечно, проводился с модулем связи. Для получения доступа к WiFi понадобилось установить библиотеку WiFiNINA, а затем создать файл с данными доступа. Для теста запустили Simple Web Server WiFi, и он без проблем заработал. Правда, для управления платой через интерфейс нужно было изменить вывод GPIO, используемый по умолчанию, с 9 на «LED_BUILTIN».

Читайте также:  Hp bluetooth printer card

Детали подключения должны были появиться во встроенном мониторе последовательного интерфейса (Serial monitor). К сожалению, поначалу с этим возникла проблема — постоянно появлялась ошибка с сообщением о том, что порт занят. Единственный способ решить проблему в этом случае — закрыть Arduino IDE и использовать иное решение. В итоге мы разобрались: оказалось, что проблема связана с нашей операционной системой Ubuntu 18.04, пришлось удалить modemmanager, чтобы увидеть последовательные данные порта.

Также мы протестировали встроенный микрофон. И здесь возникла проблема — вместо визуализации звука при тесте система выдавала лишь одно значение — 128. Нигде не удалось найти никаких указаний по устранению этой проблемы.

Возникали и другие проблемы, включая работу с сервисом Arduino IoT Cloud, причем мы пытались изучать официальную документацию по плате, но она была далеко неполной. Это огромный недостаток, поскольку IoT Cloud — новый сервис, позволяющий создавать различные проекты интернета вещей, контролируя их через веб-интерфейс. Вероятно, разработчики постараются исправить недостатки, но пока порекомендуем использовать обычные IDE.

Вероятно, вы рассчитываете на возможность работы с другими языками программирования, раз уж это плата на основе RP2040? Все верно. Можно работать с CircuitPython и MicroPython, правда, потребуется создать собственные библиотеки для микрофона, гироскопа и WiFi. Проблема в разной распиновки. Так, контакт, который используется в IDE Arduino для вывода — это, скажем D2. В RP2040 это уже GPIO25. Другой пример — встроенный светодиод D13, который при работе с MicroPython оказался GPIO 6.

С CircuitPython все оказалось гораздо проще. Благодаря большому количество библиотек и в особенности библиотеке ESP32SPI нам удалось вывести Arduino Nano RP2040 Connect в онлайн и добиться получения данных от удаленного API.

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

Юзкейсы для Arduino Nano RP2040 Connect

Наиболее очевидное применение платы — IoT-проекты. При помощи IoT Cloud есть возможность оперативно создавать приложения с графическим интерфейсом для снятия данных с удаленного устройства. Так, можно создать метеостанцию с помощью Arduino Nano RP2040 Connect и передавать данные в реальном времени в облако. А уже доступ к облаку можно получить с любого устройства, подключенного к Интернету.

Плату можно применить для удаленного управления роботизированной системой — как пример. И реализовать это вовсе не сложно.

Но и без IoT Cloud кейсов достаточно много. Даже с традиционной IDE и новыми библиотеками для HTTP, MQTT и Bluetooth без проблем можно работать с телеуправляемыми роботами, IoT-устройствами и т.п.

В сухом остатке

Здесь главное, вероятно — цена, которая составляет 22 евро. Если нужен WiFi и чип RP2040, значит, Arduino Nano RP2040 Connect вполне подходит. Стоит учитывать, что это, в целом, неплохая плата, но она дороже любого другого решения на основе того же чипа, включая Raspberry Pi Pico и Pimoroni Pico Wireless. Существенный недостаток — недоработанная документация, которая не соответствует стандартам Arduino.

Читайте также:  Код блютуз по умолчанию

Если бы не этот фактор, то плату можно было бы рекомендовать в качестве универсального решения. Есть и альтернатива — Seeed RP2040, у которой тоже есть WiFi, и которая, как ожидается, будет в два раза дешевле Arduino Nano RP2040 Connect.

Источник

Bluetooth® Low Energy, Wi-Fi® and Ethernet on Opta™

hero

The Opta™ is a powerful micro PLC device with many features that can be customized to meet the requirements of each professional solution. Among these features, you can find standard connectivity protocols such as Wi-Fi®, Ethernet, and Bluetooth®. Please note that these connectivity features are not available on all variants of Opta™. In this tutorial, we will go through how to use these features in Opta™ using the Arduino IDE.

Goals

  • Learn how to use Wi-Fi® on Opta™
  • Learn how to use Ethernet on Opta™
  • Learn how to use Bluetooth® Low Energy on Opta™

Required Hardware and Software

  • Opta™ PLC with connectivity support (x1)
  • Ethernet (RJ45) cable (x1)
  • Arduino IDE 1.8.10+, Arduino IDE 2, or Arduino Web Editor
  • USB-C® cable (either USB-C® to USB-A or USB-C® to USB-C®) (x1)
  • Wi-Fi® Access Point with Internet Access

Instructions

Setup with the Arduino IDE

Using the Arduino IDE, we can easily work with the connectivity features, which have libraries that we can make use of. First, make sure the latest version of the Arduino IDE is installed. The IDE can be downloaded here.

Then we need to install the appropriate core for Opta™. Go to Tools > Board > Boards Manager, in the board’s manager section search for Opta mbed and install it. For more detailed instructions on setting up the Opta™ with the Arduino IDE, have a look at the Getting started with Opta™ tutorial.

Wi-Fi®

The files necessary for using the Wi-Fi® on Opta™ are included in the core. To try it out, we can go to File > Examples, and under Examples for Opta, we can find the WiFi section. Inside there is an example sketch called WiFiWebClient. Open this example sketch and fill out the Wi-Fi® details in the arduino_secrets.h tab.

Once uploaded, the sketch will make Opta™ connect to the desired website defined within the

variable. If the connection is successful, it will then print the website’s HTML content to the serial monitor. If the sketch ran successfully, the output should look like the image below.

If you want to take a deeper look at the features that the WiFi library has to offer, take a look at the API Wi-Fi® reference page.

Ethernet

Opta™ has an RJ45 ethernet port with a LED that will indicate the status of the connected cable. The files necessary for using Ethernet with Opta™ are included in the core. To try it out, we can go to File > Examples, and under Examples for Opta, we can find the Ethernet section. Inside the section, there is an example sketch called WebClient.

Читайте также:  Блютуз наушники принцип подключения

Connect the Ethernet cable to Opta™ and upload the example using the USB-C® cable. This example will work the same way as the one mentioned in the Wi-Fi® section. The device will connect to the website defined in the sketch and print the website’s HTML content in the serial monitor. If the sketch ran successfully, the output should look like the image below.

If you want to take a deeper look at the features that the Ethernet library has to offer, take a look at the API Ethernet reference page.

Modbus TCP Via Ethernet Port

Opta™ can be configured to use Modbus TCP protocol, which runs a Modbus protocol layered over a TCP/IP stack. Thus the coverage distance is dependent on the capacity of the Ethernet cable. In the case of an industrial environment, a good cable choice could be an RJ45 cable with the category Cat6 or Cat6A, allowing a maximum distance of 100 meters.

Bluetooth® Low Energy

To use the Bluetooth® Low Energy feature, you will need to download the ArduinoBLE library in the Arduino IDE. Go into the library manager and search for ArduinoBLE. If you can’t find it, try sorting by official libraries published by Arduino. Once the ArduinoBLE library is installed, let’s try and run a simple example that scans for other Bluetooth® devices within range.

The sketch will print the addresses of near devices as well as the local name and the advertised service UUIDs if present. The example can be found under File > Examples > ArduinoBLE > Central, the sketch is called Scan. When the sketch is running on the Opta™, the output on the serial monitor should look something like the image below.

If you want to take a deeper look at the features that the ArduinoBLE library has to offer, take a look at the API BLE reference page.

Conclusion

This tutorial has shown an overview of the connectivity features of Opta™ and how to use them, including how to use the different connectivity protocols and which libraries are required to make them work. By running all the example sketches mentioned in this tutorial, you can confirm that the connectivity features of your Opta™ are ready to be implemented into more complex solutions.

Next Steps

Now that you know how to use the connectivity features of the device, have a look at other interesting tutorials and try to combine the different features. Opta™ uses the same architecture as the Portenta H7 and therefore, it could be a good idea to take a look at the Portenta H7 tutorials. Such as using your device as a Wi-Fi® access point tutorial or the Bluetooth® Low Energy connectivity with a phone tutorial.

Источник

Оцените статью
Adblock
detector