# Подготовка и тестирование рабочего места Для программирования плат [WeMos D1 mini](https://docs.wemos.cc/en/latest/d1/) (или [Node MCU](http://www.nodemcu.com/index_en.html)) мы воспользуемся достаточно популярной среди DIY-шиков средой разработки [Arduino IDE](https://arduino.cc/). Но так как у нас всё же иные платы, то нам потребуется установить их поддержку в этой среде. ## Настройка Arduino IDE Запустим Arduino IDE и откроем окно **Файл > Настройки**. Введём "https://arduino.esp8266.com/stable/package_esp8266com_index.json" в строку **Дополнительные ссылки для менеджера плат**. Для этого сначала нажмём на кнопку рядом с этим полем ввода, ![arduino_preferences](/assets/images/iot/arduino/linux/arduino_preferences.png) а затем в появившемся окне вставим нужный адрес. ![arduino_preferences_add_board](/assets/images/iot/arduino/linux/arduino_preferences_add_board.png) Далее, открываем менеджер плат из меню **Инструменты > Плата > Менеджер плат** и устанавливаем поддержку esp8266 (для простоты поиска можно воспользоваться фильтром) ![arduino_board_manager_esp8266](/assets/images/iot/arduino/linux/arduino_board_manager_esp8266.png) ## Подключение библиотек Для работы с протоколом MQTT в нашем практикуме потребуется установить библиотеку [PubSubClient](https://github.com/knolleary/pubsubclient) Для этого выбераем пункт меню **Инструменты > Управлять библиотеками...** ![arduino_library_ctrl](/assets/images/iot/arduino/linux/arduino_library_ctrl.png) Ищем библиотеку **pubsubclient**, устанавливаем её, и закрываем окно настроек. Обратите внимание, кнопка **Установить** появляется в тот момент, когда вы проводите мышкой над соответствующей библиотекой. ![arduino_library_manager_pubsubclient](/assets/images/iot/arduino/linux/arduino_library_manager_pubsubclient.png) ## Подключаем плату Как вы уже поняли, в рамках этого курса мы работаем с платами WeMos D1 mini или NodeMCU, поэтому прежде чем продолжить, выберем нужную плату в меню **Инструменты > Плата** ### WeMos D1 mini Итак, если у вас плата WeMos D1 mini, то в меню **Инструменты > Плата** выбираем **LOLIN(WEMOS) D1 R2 & mini**: ![arduino_tools_board_lolin_wemos](/assets/images/iot/arduino/linux/arduino_tools_board_lolin_wemos.png) ### NodeMCU Если у вас плата NodeMCU, то в меню **Инструменты > Плата** выбираем **NodeMCU 1.0 (ESP-12E Module)**: ![arduino_tools_board_nodemcu](/assets/images/iot/arduino/linux/arduino_tools_board_nodemcu.png) Для этой платы нам необходимо ещё проверить параметр **Builtin Led**, и установить для него значение 2. ![arduino_tools_board_nodemcu_ledpin](/assets/images/iot/arduino/linux/arduino_tools_board_nodemcu_ledpin.png) ## Проверка работоспособности Для проверки работоспособности системы и правильности настроек зальём простую программу в нашу плату (если вы не знаете, то в терминах Arduino она называется **скетч**). Готовый код можно получить прямо из среды Ардуино IDE: **Файл > Примеры > ESP8266 > Blink** ![blink_example](/assets/images/iot/arduino/linux/arduino_file_examples_esp8266_blink.png) Получившийся результат должен выглядеть примерно так: ![blink](/assets/images/iot/arduino/linux/blink.png ) А готовый к работе контроллер с подключенным USB кабелем так: ![wemos_for_blink](/assets/images/iot/wemos_for_blink.png) Когда всё установлено и настроено, надо: 1. Выбрать последовательный порт, к которому подключен контроллер (меню **Инструменты > Порт**). ![arduino_select_port](/assets/images/iot/arduino/linux/arduino_tools_port.png) Если портов несколько и вы не уверены в том, который нужен, то спросите у преподавателя, но, скорее всего, это будет **/dev/ttyUSB0** ![arduino_port_dev_tty_usb](/assets/images/iot/arduino/linux/arduino_tools_port_tty_usb0.png) 2. Нажать кнопку **Загрузка** для компиляции программы и записи прошивки в контроллер. ![blink_compile](/assets/images/iot/arduino/linux/blink_compile.png) 3. Если всё прошло хорошо, и нет сообщений об ошибке, то скетч записался в память контроллера, ![blink_downloading_compleate](/assets/images/iot/arduino/linux/blink_downloading_compleate.png) а синий светодиод на нём стал периодически мигать. ![blink_animated](/assets/images/iot/wemos_blink.gif) [**<<< Назад**](iot/summer-2021)&nbsp;|&nbsp;[**Далее >>>**](iot/summer-2021/mqtt) [danger]: /assets/images/iot-academy/danger.png