Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/34: Рейтинг темы: голосов - 34, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 14.07.2018
Сообщений: 3

STM32F401RE+EthernetW5100=SNMP monitoring

14.07.2018, 17:13. Показов 6979. Ответов 2

Студворк — интернет-сервис помощи студентам
STM32F401RE + EthernetW5100. Обладая таким комплектом и датчиком температуры захотелось научиться мониторить температуру по SNMP протоколу (для опроса я буду использовать MIB Browser) попутно узнавая, что еще полезного можно сделать для себя и для дома не тратя лишние деньги. Эта тема мне показалась актуальной, так как конкретной инфы в интернете по поводу SNMP мониторинга для любителей STM нет.

Я вооружился такими туторами:
1. Настройка Eclipse IDE
2. Подключение Arduino Ethernet Shield W5100 и библиотек

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

Подскажите, какой правильный алгоритм действий? С SNMP не работал и пока что не представляю, можно ли самому осилить такую задачу без глубоких знаний.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.07.2018, 17:13
Ответы с готовыми решениями:

Modbus master на STM32F401RE
Добрый день, у меня появилась задача, поднять Modbus-Master RTU на STM32F401RE. У меня пока только один вопрос)) Может у кого-нибудь есть...

SNMP OID TenGigabit interface temperature SNMP cisco
Друзья, помогите! Ни как не могу найти oid для мониторинга температуры Xenpak модулей на киске 6506. Может кто подскажет ? За ранее...

Отключение SNMP v1/2 и включение SNMP v3
Здравствуйте! Помогите разобраться. Такая ситуация: Необходимо на МФУ Kyocera отключить SNMP v1/2 и включить SNMP v3. Когда SNMP v1/2...

2
0 / 0 / 0
Регистрация: 14.07.2018
Сообщений: 3
17.07.2018, 02:46  [ТС]
Вот краткое описание моих действий (со всеми ссылками) по настройке Eclipse на Windows 7 x64 и запуска тестовой программки (мигание светодиода).
Настройка Eclipse IDE (пункты 8,9 уже для тестовой программки)
0. Установил JDK (jdk-8u172)
1. Установил Eclipse: скопировал в C:\STM32Toolchain
2. В Eclipse Help -> Install new software -> CDT -> CDT Main Features
3. Help -> Install new software -> Add -> Имя: GNU ARM Eclipse Plug-ins Линк: http://gnuarmeclipse.sourceforge.net/updates
4. Скачал gcc-arm-none-eabi-7-2018-q1-update-win64.exe и установил в C:\STM32Toolchain\gnu-arm\
5. Скачал Build tools и установил в C:\STM32Toolchain\Build Tools
6. В Eclipse File -> New -> C Project. Выбираем Executable STM32F4xx -> Cross ASRM GCC -> Chip family STM32F401xE -> Flash size 512 -> Trace output ARM ITM (via SWO) -> tool-chain name: GNU Tools for ARM Embedded Processors (arm-none-eabi-gcc) -> tool-chain path: C:\STM32Toolchain\gnu-arm\...\bin
7. Window -> Preferences -> C/C++ -> Build -> Environment -> Add -> Path в "Name" и C:\STM32Toolchain\Build Tools;${Path} в "Value" -> "OK" -> "Apply". Далее, Project -> Build all. Смотрим, чтобы не было ошибок.
8. Открываем _initialize_hardware.c (в папке src) и внутренность функции SystemClock_Config(void) заменяем на (это из-за того, что у STM32 свой внутренний мир )
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
RCC_OscInitTypeDef RCC_OscInitStruct;
RCC_ClkInitTypeDef RCC_ClkInitStruct;
__PWR_CLK_ENABLE();
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE2);
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;  RCC_OscInitStruct.HSIState = RCC_HSI_ON;
RCC_OscInitStruct.HSICalibrationValue = 6;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
RCC_OscInitStruct.PLL.PLLM = 16;
RCC_OscInitStruct.PLL.PLLN = 336;
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV4;
RCC_OscInitStruct.PLL.PLLQ = 7;
HAL_RCC_OscConfig(&RCC_OscInitStruct);
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2);
9. Открываем BlinkLed.h (в папке include) и меняем порты
C
1
2
3
#define BLINK_PORT_NUMBER              (0)
#define BLINK_PIN_NUMBER                (5)
#define BLINK_ACTIVE_LOW                (0)
10. Сохраняем измененные файлы. Project -> Build all. Смотрим, чтобы не было ошибок.
Eclipse IDE настроена.
Работа с железом (STM32F401RE)
11. Установил ST Link drivers for STM32Nucleo board (009, затем 007 - тут нужно подключить плату)
12. Установил ST-Link Utility, подключил плату, проверил, что она корректно обнаруживается (Target -> Connect)
13. Target -> Program & Verify -> C:\STM32Toolchain\projects\test1\Debug\t est1.hex -> Start.
Если всё ok, то на плате будет мигать зелёный LD2 светодиод.

Добавлено через 7 часов 43 минуты
Описываю шаги по созданию Eclipse проекта для разработки под STM32 используя STM32Cube-Fx framework (Eclipse/GCC как tool-chain для STM32).

Настройка Eclipse
1. В Eclipse File -> New -> C Project -> Hello World ARM Cortex-M C / C ++ -> Flash 512 -> RAM 96 -> Use sys calls Freestanding -> Trace output None -> Vendow CMSIS name stm32f4xx -> Имя GNU Tools для ARM Embedded Processors (arm-none-eabi-gcc) -> C:\STM32Toolchain\gnu-arm\…\bin
2. Извлёк STM32Cube в C:\STM32Toolchain и переименовал в STM32Cube_FW_F4
3. В проекте Eclipse удаляем
/src/[main.c, Timer.c]
/include/Timer.h
/system/include/cmsis/[stm32f4xx.h,system_stm32f4xx.h]
/system/src/cmsis/[system_stm32f4xx.c,vectors_stm32f4xx.c]
4. Из STM32Cube_FW_F4/Drivers/STM32F4xx_HAL_Driver/Src всё копируем в Eclipse /system/src/stm32f4xx
5. Из STM32Cube_FW_F4/Drivers/STM32F4xx_HAL_Driver/Inc всё копируем в Eclipse /system/include/stm32f4xx
6. Из STM32Cube_FW_F4/Drivers/CMSIS/Device/ST/STM32F4xx/Include всё копируем в Eclipse /system/include/cmsis
7. Из STM32Cube_FW_F4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc копируем startup_stm32f401xe.s в Eclipse /system/src/cmsis и переименуем в startup_stm32f401xe.S (большая S в расширении)
8. Из STM32Cube_FW_F4/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates копируем system_stm32f4xx.c в Eclipse /system/src/cmsis
9. Из STM32Toolchain/STM32Cube_FW_F4/Projects/STM32F401RE-Nucleo/Examples/GPIO/GPIO_IOToggle/Inc всё копируем в Eclipse /include
10. Из STM32Toolchain/STM32Cube_FW_F4/Projects/STM32F401RE-Nucleo/Examples/GPIO/GPIO_IOToggle/src копируем main.c и stm32f4xx_it.c в Eclipse /src
11. Из STM32Cube_FW_F4/Drivers/BSP/STM32F4xx-Nucleo копируем stm32f4xx_nucleo.c в Eclipse /src и stm32f4xx_nucleo.h в Eclipse /include
12. Eclipse -> Project -> Properties -> C/C++ Build -> Settings -> Tool Settings -> Cross ARM C Compiler -> Preprocessor -> Add -> макрос STM32F401xE
13. Eclipse -> /Idscripts/mem.Id меняем адрес внутренней памяти и сохраняем
C
1
FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 512K
14. Удаляем файлы вида ***template.c в /system/src/stm32f4xx
15. Eclipse -> Project -> Build All. Смотрим, чтобы не было ошибок.
Можно погружаться в STM32Cube framework.
Прошиваем железо (STM32F401RE)
16. ST-Link Utility -> Target -> Program & Verify -> C:\STM32Toolchain\projects\test2\Debug\t est2.hex -> Start
Если всё ok, то на плате будет мигать зелёный LD2 светодиод, но с большей частотой (delay 100 ms), чем в прошлом (test1.hex) примере.
0
0 / 0 / 0
Регистрация: 14.07.2018
Сообщений: 3
18.07.2018, 09:02  [ТС]
Подключим библиотеки Wiz-Net для работы STM32 с Ethernet W5100 и проверим всё в тестовом скетче.

Работа в Eclipse
1. ioLibrary распакуем, переименуем в ioLibrary_Driver и копируем в проект Eclipse (test2, подготовленный в прошлом сообщении, можно просто скопировать или делать всё в нём). Правой кнопкой мыши на ioLibrary_Driver -> Resource Configurations -> Exclude from builds -> выключаем Debug и Release
2. Project -> Properties -> C/C++ Build -> Settings -> Cross ARM C Compiler -> Includes -> Add ->
"../ioLibrary_Driver/Ethernet"
"../ioLibrary_Driver/Ethernet/W5100"
Apply and Close
3. … -> Cross ARM C++ Compiler -> Includes -> … (повторяем)
4. Открываем ioLibrary_Driver/Ethernet/wizchip_conf.h -> заменяем и сохраняем
C
1
#define _WIZCHIP_                      W5100   // W5100, W5100S, W5200, W5300, W5500
Рассмотрим TCP-сервер, который принимает соединения на порту 5000. Каждый раз, когда соединение устанавливается с удаленным одноранговым узлом, оно отправляет приветственное сообщение в сокет и автоматически закрывает соединение. Это просто тестовая программа, которая позволяет нам проверить, работает ли Arduino Ethernet Shield.

5. Удаляем старые и копируем новые файлы из TCP server в проект, а именно
src/..files..
system/src/stm32f4xx/..files.. (нужно удалить файлы вида ***template.c)
system/include/stm32f4xx/..files.. (нужно удалить файлы вида ***template.c)
include/..files..
6. Если работаем в старом проекте или его копии, то удаляем Debug. И вообще всегда удаляем Debug перед сборкой, так как случаются страшные глюки.
Project -> Build project Ошибок быть не должно.

Работа с железом
7. Втыкаем Arduino Ethernet Shield в STM32 Nucleo. Затем подключаемся коннекторами:
Arduino ICSP PIN 1 (MISO) to Nucleo PIN PB_14
Arduino ICSP PIN 4 (MOSI) to Nucleo PIN PB_15
Arduino ICSP PIN 3 (SCK) to Nucleo PIN PB_13
Arduino D10 PIN (SS) to Nucleo PIN PB_12

Есть одна тонкость: у меня китайская реплика Arduino Ethernet Shield W5100 и при подключении патч корда напрямую к компьютеру он может просто не заработать (припаян резистор в 10 раз больше нужного - в интернете куча тем по этому вопросу). Поэтому я подключаюсь к своему маршрутизатору (фирма Tenda).

8. В main.c меняем настройки сети. Мой маршрутизатор работает в диапазоне 192.168.0.100 - 192.168.0.200 (пропишите свободный для Arduino), маска 255.255.255.0, а его адрес 192.168.0.1. MAC адрес для Arduino выбирается случайно (можно не менять, а можно свой придумать). Соответственно, мои настройки такие:
C
1
2
3
4
  wiz_NetInfo netInfo = { .mac  = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}, // Mac address
                          .ip   = {192, 168, 0, 107},                   // IP address
                          .sn   = {255, 255, 255, 0},                   // Subnet mask
                          .gw   = {192, 168, 0, 1}};                    // Gateway address
Если же вы подключились к компу, то нужно вручную прописать в IPv4, например, 192.168.0.105.
9. ST-Link Utility -> Target -> Program & Verify -> C:\STM32Toolchain\projects\test2\Debug\t est2.hex -> Start
10. Проверим, пингуется ли: cmd -> ping 192.168.0.107 Должны идти пакеты!
11. Проверяем TCP-сервер: откройте Telnet и напишите open 192.168.0.107 5000
Если всё ok, то увидим следующее:
Well done guys! Welcome to the IoT world. Bye!
Подключение к узлу утеряно.
Нажмите любую клавишу...

Можно переходить к написанию snmp агента))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.07.2018, 09:02
Помогаю со студенческими работами здесь

Health Monitoring
пробую разобратся с этой тулзой от лотуса, появилась она с 6-тки но пруки дошли токо щяс. включил как показано в редбуке...

Monitoring Configuration
Опишу ситуевину: Теория: Для резервного копирования в инкрементном режиме поднял регистрацию транзакций. Собственно в этот момент...

Monitoring Data Performance
привет, не подскажете какой чарт имеет такую функцию, которая может представлять определённые часы в сутках различными цветами. Т.е н-р:...

Ping monitoring [windows]
Добрый день, Вопрос: кто чем пользуется для мониторинга сети? Особое внимание уделяется незначительным размерам софта (гиганские...

Senior monitoring engineer
Key responsibilities: We are looking to scale and grow our monitoring environment and infrastructure. It’s important for us to be...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru