Wemos d1 mini шина i2c

Настройка для Wemos (esp8266)

Что такое Wemos?

Wemos D1 Mini – плата на базе микроконтроллера esp8266. Работа с этой платой ничем не отличается от других Arduino – совместимых плат, большинство Arduino библиотек будут работать на этом микроконтроллере. Главное отличие самого микроконтроллера – наличие встроенного беспроводного интерфейса WiFi, более быстрое вычислительное ядро и огромный объём памяти, что позволяет создавать более тяжёлые и сложные проекты с выходом в Интернет.

Настройка Arduino IDE

Для работы с Wemos нужно установить Arduino IDE и драйвер CH340, как описано в предыдущих уроках. Далее:

  • Запустить Arduino IDE, перейти в Файл/Настройки/
  • В окошко “Дополнительные ссылки…” Вставить http://arduino.esp8266.com/stable/package_esp8266com_index.json
  • Нажать ОК
  • Перейти в Инструменты/Плата/Менеджер плат… Начать вводить в поиске “ESP”. Выбрать и установить ESP8266 boards
  • Теперь в списке плат Инструменты/Плата/ появится семейство плат на esp8266! Выбираем LOLIN (WEMOS) D1 & R2 mini
  • На четвёртом скриншоте ниже показаны настройки платы по умолчанию, изменены только выделенные красным (плата и порт)

Wemos d1 mini шина i2c

Wemos d1 mini шина i2c

Wemos d1 mini шина i2c

Wemos d1 mini шина i2c

Проверка работоспособности

Для проверки загружаем тестовую программу, которая будет мигать синим светодиодом на плате:

Если программа не загружается – переходим к следующему полному уроку Первая загрузка прошивки

Особенности работы с платой

Основные отличия от обычных Arduino, встроенные библиотеки и примеры можно изучить в официальной документации на английском, также есть вариант на русском. Большая часть пинов на плате – системные, при работе с ними также есть особенности. Моего урока по этой теме пока нет, вот отличная статья на английском.

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 mini шина i2c

Плата 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 mini шина i2c

Отличие WeMos D1 R1 от R2

На данный момент существует два поколения платы D1. Наиболее популярной версией является R2. Стоимость R1 немного ниже, но старые платы практически исчезли из интернет-магазинов. Отличие первого от второго поколения не очень большие, и касаются в первую очередь распиновки. При прочих равных условиях рекомендуется использовать WeMos второго поколения R2.

Распиновка D1 R1:

Wemos d1 mini шина i2c

Распиновка D1 R2:

Wemos d1 mini шина i2c

WeMos Mini

Wemos d1 mini шина i2c

Wemos d1 mini шина i2c

По сравнению с Wemos D1 микроконтроллер WeMos Mini имеет меньшие габариты. Плата обладает размерами в ширину 2,5 см, а в длину 3,5 см, в то время как полная версия Wemos D1 идентична Ардуино UNO.

Плата базируется на 32-разрядном микроконтроллере ESP8266 и обладает WiFi модулем. Объем флэш-памяти устройства достигает 4 МБ. В усовершенствованной модели WEMOS D1 mini объем памяти равен 16 МБ, имеется SMD-антенна и выход для присоединения внешней антенны. Размеры и расположение контактов у обоих видов плат одинаковы.

Распиновка WeMos D1 mini

Схема платы и расположение выходов изображены на рисунке.

Wemos d1 mini шина i2c

Технические характеристики 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 и нажать ОК.

Wemos d1 mini шина i2c

Затем в Инструменты – Плата – менеджер плат найти esp8266 by ESP8266 Community, установить и закрыть окно.

Wemos d1 mini шина i2c

Wemos d1 mini шина i2c

В меню Инструменты будет добавлен микроконтроллер WeMos D1.

Перед тем, как загрузить программу, нужно установить режимы работы микроконтроллера – загрузка кода (Upload Using), задать нужную частоту (CPU frequency), выбрать размер флеш памяти (Flash Size), задать скорость передачи (Upload Speed) и выбрать нужный порт.

Wemos d1 mini шина i2c

Для подключения версии WeMos Mini выполняются такие же шаги, как и для WeMos D1.

Можно дополнительно скачать и установить примеры кодов для микроконтроллера. Для этого скачанный файл с кодами нужно распаковать по адресу arduinoexamples. Нужно перезагрузить 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 как в матрешке, одну в другу. А недорогая цена делает эту плату абсолютным фаворитом для тех, кто делает умные устройства с возможностью выхода в интернет.

Wemos D1 mini the I2C not working GPIO4 GPIO5 #8490

Comments

smokey1300 commented May 20, 2020 •

PROBLEM DESCRIPTION

Upgraded my wemos mini from 6.3 now the i2c doesn’t work with same connections

REQUESTED INFORMATION

Make sure your have performed every step and checked the applicable boxes before submitting your issue. Thank you!

  • Read the Contributing Guide and Policy and the Code of Conduct
  • Searched the problem in issues
  • Searched the problem in the docs
  • Searched the problem in the forum
  • Searched the problem in the chat
  • Device used (e.g., Sonoff Basic): _____
  • Tasmota binary firmware version number used: _____
    • Pre-compiled
    • Self-compiled
      • IDE / Compiler used: _____
  • Flashing tools used: _____
  • Provide the output of command: Backlog Template; Module; GPIO 255 :
  • Provide the output of the Console log output when you experience your issue; if applicable:
    (Please use weblog 4 for more debug information)

TO REPRODUCE

upgraded from Tasmota 6.3 now my BMP280 module doesn’t have any values. Same exact connection used GPIO4(SDA) and GPIO5(SCL) for the module

EXPECTED BEHAVIOUR

MQTT values and console not showing values

SCREENSHOTS

Main menu normally showed the values for Temp, Humidy, Pressure

ADDITIONAL CONTEXT

The 18B20 sensor still connected to GPIO0 still working fine

(Please, remember to close the issue when the problem has been addressed)

The text was updated successfully, but these errors were encountered:

Wemos D1 mini & MH ET Live Minikit и RTC (datalogger) модули для них

На Aliexpress представлено большое количество разнообразных внешних модулей RTC и комбинированных модулей RTC + SD карта или EEPROM. Рассмотрю наиболее интересные для использования с компактными девелоперскими платами MH ET Live Minikit (ESP32) (другой вариант поиска) или Wemos D1 mini (ESP8266).

Tiny RTC с EEPROM на 32 кБит

  • Tiny RTC с EEPROM на 32 кБит:
    • RTC на чипе DS1307. Напряжение питания чипа 5 V.
    • Память EEPROM 32 кБит (чип AT24C32).
    • Выводы не совпадают с платой Wemos D1 mini, хотя по габаритам и совместима, поэтому использовать её неудобно.
    • Модуль RTC использует интерфейс I2C, однако выставить на плате адрес шины нельзя.
    • Размеры модуля, мм: 28×25.
    • Батарея для питания: CR2032
    • Цена с доставкой в Россию: 0,34 USD
    • Модуль доступен у большого количества поставщиков на Aliexpress.

Основной плюс платы — низкая цена и наличие распаянного на плате EEPROM чипа. В некоторых случаях значительная емкость SD карты не нужна и переплачивать из-за этого лишние 300 руб не хочется.

К сожалению нормального варианта этого модуля, который бы «садился» на разъем девеоперских плат найти не удалось.

RTC + SD card reader module

Wemos d1 mini шина i2c

Wemos d1 mini шина i2c

  • RTC + SD card reader module для платы Wemos D1 mini (ESP8266) или MH ET Live Minikit (ESP32):
    • RTC на чипе DS1307. Напряжение питания чипа 5 V.
    • Слот Micro SD карты для логирования.
    • Модуль RTC использует интерфейс I2C, однако выставить на плате адрес шины нельзя.
    • Размеры модуля, мм: 28×25.
    • Батарея для питания: CR1220
    • Цена с доставкой в Россию: 1,55 USD
    • Судя по всему разработка компании RobotDyn. Там-же есть вариант модуля без SD карты.
    • В разделе документации доступны схемы.
    • Модуль доступен у большого количества поставщиков на Aliexpress.

Функционально второй модуль удобнее из-за наличия слота SD карты и возможности каскадирования («сэндвич») при использовании компактных девелоперских плат MH ET Live Minikit (ESP32) или Wemos D1 mini (ESP8266). Рассмотрю работу с этим модулем подробнее.

Схема для подключения не требуется, поскольку при стекировании девелоперских плат с Wemo D1 mini datalogger нужные пины уже состыкованы. Для подключения RTC пины:

Wemos D1 mini
(ESP8266)
ОписаниеESP32
D1 (GPIO5)SCLGPIO 22 (SCL)
D2 (GPIO4)SDAGPIO 21 (SDA)
5V5V
3.3V3.3V
GNDGND

Ещё раз обращаю внимание, что питание чипа RTC — 5 V. Если его запитать от 3,3 V, то он работает некорректно. Не выдает ошибки при соединении, но при запросе даты — выдает некорректную.

SD карта запитывается от пина 3.3V. При подключении к ESP32 не нужно забывать подключать это напряжение.

Data logger RTC shield (Wemos D1 mini) НЕЛЬЗЯ использоваить при питании от аккумулятора 3.7 V. 🙁

Для подключения SD карты к ESP8266/ESP32:

Wemos D1 mini
(ESP8266)
ОписаниеESP32
VSPI
ESP32
HSPI
D5 (GPIO 14)CLK/SCKGPIO18GPIO14
D6 (GPIO 12)DO/MISOGPIO19GPIO12
D7 (GPIO13)DI/MOSIGPIO23GPIO13
D8 (GPIO 15)CS/SSGPIO5GPIO15

Выводы SD карты подключаются к выводам Wemos D1 без каких-либо дополнительных схем защиты от статического электричества. Например, диодной сборкой SMF05C.

Программа

Для работы с модулем Wemos D1 mini RTC + SD card datalogger использовал следующий код из библиотеки https://github.com/Makuna/Rtc.

Код не требует какой-либо настройки и начинает работать сразу.

Работа с Wemos D1 mini Datalogger через I2C (библиотека Wire.h) без использования дополнительных библиотек.

Micro SD карта на Wemos D1 mini datalogger

Схема для подключения модуля по-прежнему не нужна. 🙂 Все соединения работают нормельно после сборки «сэндвича» из
Wemos D1 mini (ESP8266) и Wemos D1 mini datalogger.

Проверил работу штатной библиотеки ESP8266 для работы с Micro SD картой. Тестовый пример без проблем откомпилировался и отработал. Так что модуль работает без проблем.

ВАЖНЫЙ МОМЕНТ РАБОТЫ SD карты с ESP8266.

Я использовал Samsung 32Gb EVO Plus отформатированную в FAT32 и с ней DataLogger не инициализировал карту. После того как отформатировал в FAT16 ESP8266 стал читать SD карту.

При этом на дешевой Micro SD «SP Elite» 16 Gb отформатированной в FAT32 проблем с чтением не возникло, ESP8266 без проблем проинициализировал карту.

В коде ниже нужно обратить внимание на CS PIN инициализации SD.init(15). На Wemos Mini D1 пин CS заведен на GPIO15, а не GPIO4.

Подключение SD карты к ESP32 описано здесь. В цело все то-же самое. Проблем возникнуть не должно.

Источник