Какой микроконтроллер лучше?
Вопрос на собеседовании:
- Какой микроконтроллер вам нравится? Отвечанию не задумываясь:
- Модуль ESP32 WiFi!
Отладочная плата ESP32-Ethernet-Kit
Дали “пощупать” отладочную плату ‘ESP32-Ethernet-Kit’ фирмы Espressif Systems с ESP32, с интегрированным WiFi и поддержкой Ethernet. С интересом приступил к практическим опытам.
Благо эта отладочная плата рекомендована производителем, фирмой Espressif Systems. И, главное, имеются примеры проектов.
Что будем проверять?
Во-первых, оценим скорость обмена “по проводам”. Сколько “копий было сломано” на эмоциональных совещаниях при обсуждениях в поисках ответов на вопросы “Взлетит или не взлетит?”, “Успеем ли передавать все потоковые данные звука или видео?”.
Будем “посмотреть”
Во-вторых, испытаем интерсный проект, а именно используем отладочную плату как беспроводную точку доступа WiFi.
В-третьих, хочется оценить, что может ESP32 WiFi + ethernet и можно ли такой платой заменить миникомпьютер на операционной системе OS Linux.
Проверить инженерную гипотезу. Можно ли использовать это аппаратное решение как “управляющие умное устройством” (IoT) для чего нибудь? Контролировать дистанционно, через локальную сеть или интернет теплицей, микроклиматом, домашними устройствами.
Инструменты для сборки проектов esp-idf
Установка и настройка инструмента для сборки проекта прошла штатно и без замечаний по инструкции от производителя модуля ESP32 - https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/get-started-ethernet-kit.html
Обнаружил примеры в каталоге ’esp-idf/examples/ethernet’
$ tree -L 1
.
├── basic
├── enc28j60
├── eth2ap
├── iperf
└── README.md
Исследуем скорость обмена в локальной сети ethernet
Проект iperf
Пример реализует сетевой инструмент ‘iperf’ для измерения пропускной способности Ethernet.
Командный интерпретатор ‘cli’ позволяет использовать команды и настраивать ESP32 или как клиент протоколов client UDP,TCP, или как сервер server UDP,TCP.
Сборка проекта iperf
$ idf.py build
...
esptool esp32 -p /dev/ttyUSB1 -b 460800 --before=default_reset --after=hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size 4MB 0x1000 bootloader/bootloader.bin 0x10000 ethernet_iperf.bin 0x8000 partition_table/partition-table.bin
...
Запись проекта iperf в отладочную плату ESP32
$ idf.py flash
...
esptool.py v4.4
Serial port /dev/ttyUSB1
Connecting.......
Chip is ESP32-D0WD-V3 (revision v3.0)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 70:b8:f6:12:bf:10
Uploading stub...
...
Тест скорости обмена при отправке данных по ethernet
ESP32: run command: `iperf -s -i 3`
mode=tcp-server sip=ip_addr_board:5001, dip=0.0.0.0:5001, interval=3, time=30
I (955966) iperf: Socket created
iperf> I (978896) iperf: accept: ip_addr_computer,37204
Interval Bandwidth
0- 3 sec 34.28 Mbits/sec
3- 6 sec 34.44 Mbits/sec
6- 9 sec 34.41 Mbits/sec
9- 12 sec 34.40 Mbits/sec
12- 15 sec 34.33 Mbits/sec
15- 18 sec 34.35 Mbits/sec
18- 21 sec 34.40 Mbits/sec
21- 24 sec 34.35 Mbits/sec
24- 27 sec 34.24 Mbits/sec
27- 30 sec 34.19 Mbits/sec
0- 30 sec 34.34 Mbits/sec
I (1008906) iperf: TCP Socket server is closed.
I (1008906) iperf: iperf exit
Тест скорости обмена при получении данных по ethernet
ESP32: run command: `iperf -c ip_addr_computer -i 3'
mode=tcp-client sip=ip_addr_board:5001, dip=ip_addr_computer:5001, interval=3, tim0
iperf> I (721816) iperf: Successfully connected
Interval Bandwidth
0- 3 sec 49.20 Mbits/sec
3- 6 sec 50.42 Mbits/sec
6- 9 sec 49.94 Mbits/sec
9- 12 sec 50.46 Mbits/sec
12- 15 sec 49.94 Mbits/sec
15- 18 sec 50.55 Mbits/sec
18- 21 sec 49.98 Mbits/sec
21- 24 sec 50.55 Mbits/sec
24- 27 sec 49.98 Mbits/sec
27- 30 sec 50.51 Mbits/sec
0- 30 sec 50.15 Mbits/sec
I (751826) iperf: TCP Socket client is closed.
I (751826) iperf: iperf exit
Реклама
Консультации:
- Составить техническое задание
- Применение микроконтроллеров в проектах
- Как сократить сроки разработки программ для микроконтроллеров, мини- компьютеров ?
Услуга программирования:
- Arduino IDE
- PlatformIO
- Микроконтроллер EPS32 WiFi язык С/С++
- язык Flutter
- язык Golang
Пишите: эл. почта: vlad-free@mail.ru
#SENSORCURRENT