- Wemos D1 R2 и mini на основе esp8266
- Описание WeMos D1 R2
- Распиновка модуля WeMos D1
- Отличие WeMos D1 R1 от R2
- WeMos Mini
- Распиновка WeMos D1 mini
- Шилды для WeMos Mini
- Подключение Wemos к Arduino IDE
- Инструкция по настройке IDE для работы с WeMos
- Прошивка WeMos, примеры скетчей
- Мигание светодиодами
- WeMos и подключение к WiFi для передачи данных на удаленный сервер
- Создание точки доступа на WeMos
- Заключение
- Tooling Tuesday — Wemos D1 Mini & MicroPython
- So what is it?
- So why should I be interested?
- So how can I.
- Get firmware to flash?
- Use a graphical tool to work with the Wemos D1 Mini?
- Download a tool to flash the firmware via the terminal?
- Find your Wemos D1 Mini
- Wipe the flash
- Flash the firmware
- Wemos D1 Mini MicroPython GPIO Reference
- I want to make it blink!
- But this is not blinking!!
- Can I do more?
- If you need more information
- Bonus Content!!
- BINGO!
- Happy Hacking!
- Les Pounder
Wemos D1 R2 и mini на основе esp8266
Платы WeMos на основе esp8266 давно пользуются большой популярностью у мейкеров. Они совместимы с большинством датчиков ардуино и позволяют писать скетчи в Arduino IDE. Благодаря WeMos вы получаете возможность работать с WiFi, организуя сеть устройств или взаимодействуя с модулем через интернет. В этой статье мы рассмотрим варианты подключения плат Wemos D1 v2, Wemos D1 mini к Arduino IDE, распиновку плат и примеры скетчей для работы с WiFi.
Описание WeMos D1 R2
Плата WeMos D1, которая производится в Китае, выполнена на основе WiFi модуля ESP8266 ESP-12. На модуле имеется разъем под внешнюю WiFi антенну – благодаря этому можно расширить площадь покрытия сетью. Программирование платы осуществляется с помощью стандартной среды разработки Arduino IDE. Контроллер включает в себя процессор, периферию, оперативную память и устройства ввода/вывода. Наиболее часто микроконтроллеры применяются в компьютерной технике, бытовых приборах и других электронных устройствах. WeMos отличается дешевой стоимостью и простотой подключения и программирования.
Технические характеристики WeMos:
- Входное напряжение 3,3В;
- 11 цифровых выходов;
- Микро USB выход;
- 4 Мб флэш-памяти;
- Наличие WiFi модуля;
- Частота контроллера 80МГц/160МГц;
- Рабочие температуры от -40С до 125С.
Основными областями применения контроллеров WeMos являются температурные датчики, датчики давления и другие, зарядные устройства, пульты для управления различными бытовыми приборами, системы обработки данных, робототехника. К микроконтроллеру можно подключать дополнительные компоненты – индикаторы, сенсоры, светодиоды, которые позволяют реализовывать различные проекты и расширять их возможности.
Распиновка модуля WeMos D1
- TX;
- RX;
- GND земля;
- 5В;
- 3v3;
- RST – reset, кнопка сброса;
- D0 – D8 –порты общего назначения GPIO. Все пины, кроме D0, поддерживают прерывание, ШИМ, I2C.
Отличие WeMos D1 R1 от R2
На данный момент существует два поколения платы D1. Наиболее популярной версией является R2. Стоимость R1 немного ниже, но старые платы практически исчезли из интернет-магазинов. Отличие первого от второго поколения не очень большие, и касаются в первую очередь распиновки. При прочих равных условиях рекомендуется использовать WeMos второго поколения R2.
Распиновка D1 R1:
Распиновка D1 R2:
WeMos Mini
По сравнению с Wemos D1 микроконтроллер WeMos Mini имеет меньшие габариты. Плата обладает размерами в ширину 2,5 см, а в длину 3,5 см, в то время как полная версия Wemos D1 идентична Ардуино UNO.
Плата базируется на 32-разрядном микроконтроллере ESP8266 и обладает WiFi модулем. Объем флэш-памяти устройства достигает 4 МБ. В усовершенствованной модели WEMOS D1 mini объем памяти равен 16 МБ, имеется SMD-антенна и выход для присоединения внешней антенны. Размеры и расположение контактов у обоих видов плат одинаковы.
Распиновка WeMos D1 mini
Схема платы и расположение выходов изображены на рисунке.
Технические характеристики WeMos Mini:
- 11 цифровых контактов;
- Наибольшее входное напряжение 3,2В;
- 4 МБ памяти;
- WiFi модуль;
- Коннектор для внешней антенны.
Преимуществом платы является возможность сохранения соединения при низком потреблении энергии 1мА. Благодаря этому можно делать различные приборы, которые будут работать от батареек.
Шилды для WeMos Mini
Существует большое количество шилдов, которые могут быть подключены WeMos D1 mini:
- WeMos Dual Base и WeMos Tripler Base – удваивает и утраивает основу установки шилда;
- WeMos DS18B20 – шилд с цифровым датчиком;
- WeMos Battery – шилд для дополнительного питания от батарейки;
- WeMos Relay – шилд, управлящий реле;
- WeMos OLED – шилд, оснащенный экраном OLED;
- WeMos 1-Button – модуль, оснащенный тактовой кнопкой;
- WeMos Micro SD-Card – шилд для добавления карты памяти микро SD;
- WeMos Motor – шилд для двигателей до 15В;
- WeMos DHT D4, WeMos DHT I2C, WeMos SHT30 – модули, реализующие измерение давления, температуры и влажности (первый подключается через шину onewire, второй – через I2C);
- WeMos WS2812B RGB – шилд, реализующий управление светодиодом;
- WeMos Matrix LED – шилд для индикации, базирующийся на матрице светодиодов;
- WeMos Buzzer – шилд для звукового излучателя;
- WeMos ProtoBoard – макетная плата;
- WeMos DC Power – шилд питания.
Подключение Wemos к Arduino IDE
Инструкция по настройке IDE для работы с WeMos
Чтобы начать работать с Wemos D1, нужно установить драйвер CH340 и Arduino IDE. Найти драйвер можно на официальной странице https://www.wemos.cc/downloads.
Чтобы начать работу, нужно выбрать Файл – Настройки, ввести в строку «дополнительные ссылки для менеджера плат» ссылку http://arduino.esp8266.com/stable/package_esp8266com_index.json и нажать ОК.
Затем в Инструменты – Плата – менеджер плат найти esp8266 by ESP8266 Community, установить и закрыть окно.
В меню Инструменты будет добавлен микроконтроллер WeMos D1.
Перед тем, как загрузить программу, нужно установить режимы работы микроконтроллера – загрузка кода (Upload Using), задать нужную частоту (CPU frequency), выбрать размер флеш памяти (Flash Size), задать скорость передачи (Upload Speed) и выбрать нужный порт.
Для подключения версии WeMos Mini выполняются такие же шаги, как и для WeMos D1.
Можно дополнительно скачать и установить примеры кодов для микроконтроллера. Для этого скачанный файл с кодами нужно распаковать по адресу \arduino\examples\. Нужно перезагрузить Arduino IDE, и в Файл – Примеры появятся новые коды, которые можно использовать в своих проектах. Чтобы проверить, правильно ли все подключено, можно запустить скетч для мигания светодиодом.
Прошивка WeMos, примеры скетчей
Мигание светодиодами
Давайте сначала рассмотрим скетч, благодаря которому встроенный в плату светодиод будет мигать при нажатии кнопки. Распиновка плат WeMos отличается от Ардуино, поэтому важно проверить в коде константы с номерами пинов. Для устройств WeMos контакт, к которому подключается, задается не просто номером, а с указанием, цифровой пин(D1) или нет(1). Для мигания используется скетч Blink.ino, который можно установить с архива https://github.com/wemos/D1_mini_Examples/archive/master.zip.
Сам скетч выглядит следующим образом:
Если все выполнено правильно, нужно нажать кнопку, и светодиод загорится. При повторном нажатии потухнет.
Для автоматического мигания светодиода интервалом в две секунды используется следующий код:
WeMos и подключение к WiFi для передачи данных на удаленный сервер
В примере будет рассмотрен скетч для создания веб-сервера, благодаря которому можно управлять различными устройствами – лампами, реле, светодиодами и другими. Для работы нужно установить библиотеку ESP8266WiFi.
Создание точки доступа на WeMos
В данном примере модуль WeMos будет сконфигурирован в качестве самостоятельной точки доступа.
Создание точки доступа выполняется по следующему алгоритму:
- Подключение модуля;
- Запуск среды разработки Arduino IDE;
- Выбор порта, частоты, размера флэш-памяти;
- Запись с коде программы имени сети и создание пароля;
- Компиляция и загрузка скетча;
- Установить скорость 115200;
- Должно произойти подключение к сети, будет получен IP и выведен в терминал;
- Для проверки можно ввести в адресной строке в браузере IP/gpio/1, если все работает корректно, должен загореться светодиод на плате.
Заключение
Платы на базе esp8266 – лучший способ организовать работу с сетью в ваших DIY проектах. Вы можете использовать большое количество разнообразных модулей и готовых плат, но WeMos – один из самых удобных способов. Плата похожа на Arduino Uno, достаточно легко подключается к датчикам и прошивается через Arduino IDE.
Уменьшенный аналог WeMos mini вообще можно назвать уникальным устройством, т.к. в очень компактном корпусе вы получаете не только почти все удобства и возможности Arduino, но и полноценный WiFi модуль. Можно даже обойтись без монтажа – просто вставляя различные модули расширения (шилды) WeMos как в матрешке, одну в другу. А недорогая цена делает эту плату абсолютным фаворитом для тех, кто делает умные устройства с возможностью выхода в интернет.
Tooling Tuesday — Wemos D1 Mini & MicroPython
The other day while searching in my boxes of components, I came across something that I picked up from Abx Labs at Liverpool Makefest earlier this year. And this started a chain of events, which led to this blog post.
So what is it?
A Wemos D1 Mini which is an ESP8266 microcontroller with WiFi built in. Think of it as a small Arduino with WiFi. It can be purchased as a single board, or as part of an IoT weather station kit.
So why should I be interested?
Well for me, it is because I can «flash» MicroPython on to the board, making it much easier for me to work with.
Did he say «flash»?
Yup, flashing means to write a file on to the storage of the Wemos D1 Mini.
With MicroPython on the Wemos D1 Mini, I am able to write Python for the microcontroller, and create projects that connect to the web and retrieve weather data, control Neopixels, or just make lights blink!
So how can I.
Get firmware to flash?
Head over to the official MicroPython site and download the latest firmware for the esp8266.
Use a graphical tool to work with the Wemos D1 Mini?
I found a tutorial on Random Nerd Tutorials, that explained the full process.
The blog posts go through how to install a GUI application, flash the image to the ESP8266 (and the ESP32!) and then write code for the board.
If you choose to use uPyCraft, then you can skip this next bit and move on to Wemos D1 Mini MicroPython GPIO Reference
Download a tool to flash the firmware via the terminal?
In a terminal type
Find your Wemos D1 Mini
Connect your device to a USB port, then run this command in the terminal.
You will see a lot of text wizz by, but look for something similar to this.
Notice the last line? It mentions [ 4869.706963] usb 1-2: ch341-uart converter now attached to ttyUSB0 well that is our Wemos D1 Mini. The full path to our device is /dev/ttyUSB0
Windows users, you will need to check the Device Manager to see which COM port is in use.
Wipe the flash
In a terminal type
Flash the firmware
This command will flash the firmware that we downloaded from the MicroPython website. The last part FIRMWARE.bin is where you need to type the name of the downloaded firmware. Also provide the full path to the file if it is in another directory.
The -fm dio part of the command is essential for the Wemos D1 Mini. Without it the firmare will flash, but it will not work.
Wemos D1 Mini MicroPython GPIO Reference
Looking at the GPIO pins of the Wemos D1 Mini, we can see pin references. but these do not match what MicroPython uses, as it is designed for a multitude of boards, and not specific to the Wemos. So with this in mind, I knocked up a quick reference using the Fritzing part as a reference.
I want to make it blink!
Ok for this we need a few components.
- An LED
- A 330 Ohm resistor (ORANGE-ORANGE-BROWN-GOLD)
- Breadboard
- Male to male jumper wires
Wire up the project as so.
So how do we code this project? Well if you are using the uPyCraft GUI application then click on the Connect icon to create a serial connection. For those of us on the terminal we shall use screen to connect. (Remember to use the port that our Wemos D1 Mini is connected to, in my case /dev/ttyUSB0
Serial connections are direct connections to a device. They require us to know which port to connect to, and at what speed. In the case of the Wemos D1 Mini the speed (baud rate) is 115200.
When the serial connection is complete, you may not see anything. Press Enter to activate the terminal. If that doesn’t help then press CTRL + C a few times to stop any running programs.
You should now see something like this
This is the Python shell, sometimes known as a REPL.
REPL?
Read the input of the user
Evaluate the input
Print the answer to the input
Loop and await the user’s input again
Each line of code that we type is followed by pressing the Enter key.
We start by importing the Pin class from the machine library, as this will enable us to use the GPIO pins.
Next we create an object called led which will store the GPIO pin that we wish to use, and whether it is an input or an output. In this case it is an output as we wish to light up the LED.
So now we need to turn on the LED, and it is as easy as this!
And to turn off
We can also use led(1) to turn on the LED and led(0) to turn it off.
But this is not blinking!!
Nope! For that we need to use a loop and import the sleep function from the time library. Type each line of this code, and press Enter at the end of each line.
Once the code is entered, press Enter a few times to start the code! Now you have a blinky LED!
Can I do more?
Oh yes. Lots more!
As I mentioned at the start, I messed around quite a lot with the uPyCraft IDE and made my own Neopixel super bright blinky!
I also used this example to get weather data from Open Weather Map. Change the «XXX» to your API key.
If you need more information
I found this great resource that has become invaluable for my hacks! It has all of the code and references to really make the most of this cheap board!
Bonus Content!!
David Roberts wrote in to ask.
Thanks for the write-up. Being an esp8266 newbie I bought 2 wemos D1 R2 arduino-like boards from @abxlabs instead.
Haven’t tried to get started yet.
Is most of what you wrote likely to be transferrable to this board?
Hoping to deploy as mqtt-pub nodes logging ds18b20 temps.
So I dipped in to my bits box, found a Wemos D1 Arduino Uno clone, also from Abx Labs and tried it out!
BINGO!
As for the pin mapping, it is identical to the Wemos D1 Mini (with a few duplicates), just broken out into the Arduino Uno layout!
Happy Hacking!
Les Pounder
Tinkerer, maker, hacker, teacher, writer, learner, failure.