Вемос (wemos): отличный аналог микроконтроллера ардуино

Wemos XI вместо Arduino ProMini 328 — Сообщество «Arduino для автомобиля» на DRIVE2

Как то бороздя просторы драйва я наткнулся на статью про плату Wemos XI. Какое устройство на ней собирали не помню, но очень заинтриговала ее схожесть внешнего вида с Arduino ProMini 328.

По гуглив понял что информации по ней кот наплакал.Ну основные характеристики наше без труда

Цитата » Плата WeMos XI построена на микроконтроллере LGT8F328D, которая усовершенствована по отношению к микроконтроллеру ATmega328.

Кварцевый генератор 16 МГц с 1% погрешностьюЕсть возможность установки внешнего кварцевого резонатора от 400 кГц до 32 МГц.Питание и логика платы может работать с напряжением от 1,8 до 5.5 В. Переключение происходит автоматически при подаче соответствующего стабилизированного питания на вход.8 аналоговых входов с 12 бит АЦП2 ЦАП выхода на 10 бит

«

Источник ->

Порыскав на али понял, что плата стоит даже дешевле промини.
Сразу заказал для теста.

Как только плата пришла решил ее по тестить, но увы, ничего не вышло. Загрузчик в плату нужно заливать самостоятельно. Опять таки информации мало, каким то чудом мне удалось по крупицам ее собрать в охапку и сейчас я поведаю ее вам.

Для прошивки загрузчика нам понадобятся:1.Сама плата WemosXI на базе LGT8F328D2. Ардуина на Nano или Uno (с ProMini слишком геморно)3. Резистор на 10КОм

4. 4 проводка типа мама-мама

Для начала качаем архив ссылка на архив ->

Напомню Arduino IDE должна быть уже установлена

1. Cам скетч «LarduinoISP.ino» помещаем в папку Arduino C:UsersПользовательDocumentsArduinoLarduinoISP2. Ядро (всю папку «wemos») помещаем в папку C:UsersПользовательDocumentsArduinohardware

3. Библиотеку (всю папку «LarduinoISP-master») помещаем по адресу C:UsersПользовательDocumentsArduinolibraries

После распаковки открываем скетч «LarduinoISP.ino» и просто заливаем его в плату Arduino (uno/nano/pro mini).

После завершения загрузки соединяем все по схеме

Вариант который я нашел.

Полный размер

Более наглядный вариант.

Как все подключили, заходим во вкладку «Инструменты», выбираем плату WemosXI(Retired), выбираем Программатор «Arduino as ISP [WEMOS XI]»

И нажимаем кнопку «Записать загрузчик»

По завершению записи Arduino IDE выпишет кучу предупреждений и напишет что загрузчик успешно записан.

Как только зальете ядро переключайте в «Инструментах» программатор обратно в «ArduinoISP» подключайте WemosXI по UART мосту (RX, TX, VCC, GND) и заливайте тестовый скетч. Я залил Blink все заработало как надо.

Вывод — плата стоит своих 94р. (на 18.10.18) буду тестить дальше. Чуть позже выложу видео обзор на нее, а также процесс загрузки загрузчика.

Источник: https://www.drive2.ru/c/514557149221749778/

WeMos XI почти аналог ATmega328 — Community «Arduino для автомобиля» on DRIVE2

Вот и стал я обладателем этого чуда чудного из Поднебесной.

Если верить описаниям
arduinoplus.ru/wemos-xi/
ehbtj.com/electronics/wemos-xi-lgt8f328d/то тут есть ряд интересных плюшек за смешные деньги.

Немного танцев с бубном и плата законектилась и начала отвечать взаимностью…

Правда стабильно она работает при питании 3,3 Вольта. При 5 Вольтах в порт шлет немного мусора. Может это проблема только моих экземпляров, не знаю.
Первым делом решил протестировать АЦП, и набросал простенькую программку.

uint16_t value;
uint8_t res;

void setup() {Serial.begin(57600);// analogReadResolution(12);analogReference (INTERNAL2V56); // 2.560 V// analogReference (INTERNAL2V048); // 2.048 V// analogReference (INTERNAL4V096); // 4.096 V// VCAL = VCAL1; // 1.024V

}

void loop() {res = 1;while(res < 13){analogReadResolution(res);Serial.print("analogReadResolution = "); Serial.println(res); delay(10);value = analogRead(VCCM);Serial.print("VCCM = "); Serial.print(value); delay(10);value = analogRead(A0);Serial.print(" A0 = "); Serial.print(value); delay(10);value = analogRead(A1);Serial.

print(» A1 = «); Serial.print(value); delay(10);value = analogRead(A2);Serial.print(» A2 = «); Serial.print(value); delay(10);value = analogRead(A3);Serial.print(» A3 = «); Serial.print(value); delay(10);value = analogRead(A4);Serial.print(» A4 = «); Serial.println(value); delay(10);res++;delay(1000);}Serial.

println(«= = = = = = = = = = = = = = = «);delay(5000);}

На входе А1 напряжение 1,34 Вольта (батарейку подключил).

Ниже результаты при разных опорных напряжениях:analogReadResolution = 1VCCM = 0 A0 = 1 A1 = 1 A2 = 1 A3 = 1 A4 = 1analogReadResolution = 2VCCM = 1 A0 = 3 A1 = 2 A2 = 3 A3 = 3 A4 = 3analogReadResolution = 3VCCM = 2 A0 = 7 A1 = 4 A2 = 7 A3 = 7 A4 = 7analogReadResolution = 4VCCM = 4 A0 = 15 A1 = 8 A2 = 15 A3 = 15 A4 = 15analogReadResolution = 5VCCM = 9 A0 = 31 A1 = 16 A2 = 31 A3 = 31 A4 = 31analogReadResolution = 6VCCM = 19 A0 = 62 A1 = 33 A2 = 62 A3 = 62 A4 = 62analogReadResolution = 7VCCM = 39 A0 = 124 A1 = 67 A2 = 124 A3 = 124 A4 = 124analogReadResolution = 8VCCM = 79 A0 = 248 A1 = 135 A2 = 248 A3 = 248 A4 = 248analogReadResolution = 9VCCM = 159 A0 = 496 A1 = 270 A2 = 496 A3 = 496 A4 = 496analogReadResolution = 10VCCM = 318 A0 = 992 A1 = 541 A2 = 992 A3 = 992 A4 = 992analogReadResolution = 11VCCM = 638 A0 = 1984 A1 = 1084 A2 = 1984 A3 = 1984 A4 = 1984analogReadResolution = 12VCCM = 1277 A0 = 3968 A1 = 2164 A2 = 3968 A3 = 3968 A4 = 3968

= = = = = = = = = = = = = = =

analogReference (INTERNAL4V096); // 4.

096 VanalogReadResolution = 1VCCM = 1 A0 = 1 A1 = 1 A2 = 1 A3 = 1 A4 = 1analogReadResolution = 2VCCM = 3 A0 = 3 A1 = 3 A2 = 3 A3 = 3 A4 = 3analogReadResolution = 3VCCM = 7 A0 = 7 A1 = 7 A2 = 7 A3 = 7 A4 = 7analogReadResolution = 4VCCM = 15 A0 = 15 A1 = 15 A2 = 15 A3 = 15 A4 = 15analogReadResolution = 5VCCM = 31 A0 = 31 A1 = 31 A2 = 31 A3 = 31 A4 = 31analogReadResolution = 6VCCM = 62 A0 = 62 A1 = 62 A2 = 62 A3 = 62 A4 = 62analogReadResolution = 7VCCM = 124 A0 = 124 A1 = 124 A2 = 124 A3 = 124 A4 = 124analogReadResolution = 8VCCM = 248 A0 = 248 A1 = 248 A2 = 248 A3 = 248 A4 = 248analogReadResolution = 9VCCM = 496 A0 = 496 A1 = 496 A2 = 496 A3 = 496 A4 = 496analogReadResolution = 10VCCM = 992 A0 = 992 A1 = 992 A2 = 992 A3 = 992 A4 = 992analogReadResolution = 11VCCM = 1984 A0 = 1984 A1 = 1984 A2 = 1984 A3 = 1984 A4 = 1984analogReadResolution = 12VCCM = 3968 A0 = 3968 A1 = 3968 A2 = 3968 A3 = 3968 A4 = 3968

= = = = = = = = = = = = = = =

все в комментеanalogReadResolution = 1VCCM = 0 A0 = 1 A1 = 0 A2 = 1 A3 = 1 A4 = 1analogReadResolution = 2VCCM = 0 A0 = 3 A1 = 1 A2 = 3 A3 = 3 A4 = 3analogReadResolution = 3VCCM = 1 A0 = 7 A1 = 3 A2 = 7 A3 = 7 A4 = 7analogReadResolution = 4VCCM = 3 A0 = 15 A1 = 6 A2 = 15 A3 = 15 A4 = 15analogReadResolution = 5VCCM = 7 A0 = 31 A1 = 12 A2 = 31 A3 = 31 A4 = 31analogReadResolution = 6VCCM = 15 A0 = 62 A1 = 25 A2 = 62 A3 = 62 A4 = 62analogReadResolution = 7VCCM = 30 A0 = 124 A1 = 51 A2 = 124 A3 = 124 A4 = 124analogReadResolution = 8VCCM = 60 A0 = 248 A1 = 102 A2 = 248 A3 = 248 A4 = 248analogReadResolution = 9VCCM = 120 A0 = 496 A1 = 204 A2 = 496 A3 = 496 A4 = 496analogReadResolution = 10VCCM = 240 A0 = 992 A1 = 408 A2 = 992 A3 = 992 A4 = 992analogReadResolution = 11VCCM = 481 A0 = 1984 A1 = 817 A2 = 1984 A3 = 1984 A4 = 1984analogReadResolution = 12VCCM = 960 A0 = 3968 A1 = 1634 A2 = 3968 A3 = 3968 A4 = 3968

= = = = = = = = = = = = = = =

Может кто-то имеет опыт работы с WeMos XI — давайте делиться…
У кого получилось запустить 32МГц ?

******* добавлено 12.07.2018
для тех кто спрашивает, чем это лучше чем ATmega328, небольшая ссылка… www.ocrobot.com/doku.php?…=learing:alpha:2017052301

отдельное СПАСИБО Mishany984 за ссылку
www.electrodragon.com/w/Logicgreen

Источник: https://www.drive2.com/c/506709110100591226/

сайт своими руками

R_WEMOS_Web_Control 1.13

Подготовка

Проект создан на базе ранее опубликованной программы R_ESP8266_Control v1.5, где более подробно описаны все детали. На этой странице изложение более краткое.

WeMos D1 mini

Arduino IDE 1.6.5 с подключенными библиотеками для ESP8266.

ИнтерфейсЧисло органов управления (кнопок переключателей и движков) определяется числом выводов самого модуля WeMos. Я решил вывести все выводы модуля, как они значатся и как они есть в реальности, чтобы легче было ориентироваться и управлять сигналами при разработке схем. Более того, схема устройства трансформируется и может принять вид, если требуется, как на нижнем рисунке. В таком варианте доступны ползунки для PWM выходов, а также разрешение прерываний и установка режима (mode) соответствующего вывода WeMos.
Органы управленияon/off — переключателидвижки PWM — уровень выходного сигналаi — разрешение прерыванияmode — установка режима для вывода INPUT или OUTPUTКнопкиPWM — открывает или закрывает колонки с движками (потенциометрами);mode — открывает или закрывает колонки с выбором режима для выводов;avto — опция выбора автоматического режима обновления информации;output — опция автоматического перевода режима на вывод (OUTPUT) при манипуляции с сигналом на выбранной ножке (pin);Окна Can1, Can2, Can3 — отображают информацию, поступающую от модуля в ручном или автоматическом режиме. Каналы могут быть привязаны к прерываниям или установлены программно.Окно контроля Окно контроля — это самое верхнее окно для строчных сообщений от модуля (синий фон с белым шрифтом). Модуль WeMos, каждый раз получая команды через WiFi, посылает образ выполненной команды обратно (в окно контроля). Модуль точно выполняет указания, но это совсем не означает, что команда исполнена. Например, GPIO2 находится в INPUT mode, а Вы сдвинули движок и инициировали команду на вывод сигнала. В окне контроля появится ответ от модуля «analogWrite(GPIO2, 377);» или «digitalWrite(GPIO2, 1);». Модуль честно отработал, но на выходе GPIO2 ничего не будет, так как его надо было перевести в OUTPUT mode. Такие манипуляции могут быть очень полезны, чтобы точно представлять, как поведет себя модуль.Конечно, можно программно все решить, и если Вам необходимо автоматом переключать mode ножек на вывод, то просто поставьте галочку на опции «output» . Тогда Вы будете не изучать, а управлять!При попытках подать сигнал на выход, программа автоматически устанавливает OUTPUT mode для выбранного вывода. Это упрощает работу с устройством при работе в конкретном проекте, хотя для изучения поведения модуля эту опцию лучше отключить.

Под окнами Can1, Can2, Can3 находится строка с окном ввода интервала обновления данных (на фото установлено 7 сек), опция выбора автоматического режима обновления и табло отсчета. Табло ведет обратный отсчет и, при переходе через ноль, на сервер передается запрос, чтобы инициировать передачу данных от сервера. После этого на табло появляется установленное время и отсчет возобновляется.

Обратите внимание, что пока режим (mode) у вывода не подсвечен, выводы отключены.

Весь обмен данными может отображаться на терминале COM порта.

Интересно выставить, например, на какой-либо ножке mode = INPUT и разрешить прерывание. Затем коснуться этого вывода или подать на него сигналы — на терминале COM порта реакция не заставит себя ждать.

Проверка состояния модуля

Такой режим возможен только при запуске таймера. При этом, с цифровых выводов модуля может считываться или 1 или 0. Поэтому в режиме PWM положение переключателей таких выводов не предсказуемо, так как потенциал на выводе может быть 1 или 0. Однако, в скетче можно исключить или заменить digitalRead(pin);

Прерывания

Чтобы проверить работу прерывания, установите переключатели как на рисунке и изменяйте положение переключателя GPIO4. Попробуйте одновременно с этими действиями менять mode выводов GPIO16 и GPIO2, это полезно.

Конечно, все элементы можно расположить по-разному. Это программа, как начальный замес, из которого можно лепить разные «пироги»

Итог на сегодня

Все обновления или изменения будут отображаться на этой странице и на форуме:

http://esp8266.ru/forum/resources/wemos-d1-mini-web-control-1-13.68/

Источник: http://ruben1.narod.ru/hobby/arduino/wemos_control.html

WeMos D1R2

Что получится, если на arduino uno вместо микроконтроллера atmega установить esp8266? Представляю вашему вниманию… WeMos D1R2!

Форма печатной платы WeMos D1R2, расположение выводов,usb-порта и разъема питания, выводов UART ,SPI, I2C и аналогового входа абсолютно идентичны расположению выводов платы arduino UNO. Но на этом совпадения заканчиваются, поскольку в основе WeMos лежит микроконтроллер ESP8266EX, а в роли преобразователя USB-UART микросхема CH340G.

Читайте также:  Основы настройки и использования micro sd карт с arduino

Работа с платами на основе микроконтроллера ESP8266 на примере платы NodeMCU была рассмотрена в статье, почти всё о чем написано в той статье применимо и к WeMos, кроме распиновки платы. Но обо всем по порядку.

Официальный сайт производителя плат WeMos располагается по адресу https://www.wemos.cc, страница продукта под маркировкой D1R2 по адресу https://www.wemos.cc/product/d1.html. Обратите внимание на внешний вид оригинальной платы D1R2 (фото взято на официальном сайте). Данная плата покупалась на AliExpress за 3.5$

На плате установлен модуль ESP-12E (на модуле видно дополнительные 6 выводов, которых нет на ESP-12). Также на плате имеются дополнительные отверстия дублирующие все выводы.

А теперь взгляните на “клон” WeMos, который достался мне в рамках проекта “ЖелеЗона”.

Микроконтроллер установлен непосредственно на плату (минус — если вдруг микроконтроллер сгорит, то заменить его будет сложнее, чем модуль), а не в виде модуля; имеется гнездо для внешней антенны (несомненный плюс) и так же имеются дополнительные выводы, но они не дублируют все выводы (только D0-D8, А0, RX/TX и питание).

Из минусов я заметил странность с питанием платы: при подключении платы к ПК через USB-кабель плата не заработала и я не смог её прошить. Оказалось что питание платы осуществляется только через гнездо питания, и даже прошить без питания через это гнездо не получится.

Таким образом, у WeMos D1R2 перед NodeMCU есть ряд преимуществ:

  • совместимость с “шилдами”
  • разъем для антенны
  • удобное расположение и дублирование всех выводов

А недостаток пожалуй один — размер WeMos D1R2 раза в 3 больше NodeMCU (но недостаток ли это?).

При этом стоимость обоих плат одинаковая, и на данный момент составляет около 250 рублей (у китайских продавцов).

Рассмотрим распиновку WeMos D1R2 (данные взяты с официального сайта).

Pin Function ESP-8266 Pin
TX TXD TXD GPIO1
RX RXD RXD GPIO3
A0 Analog input, max 3.3V input A0
D0 IO GPIO16
D1 IO, SCL GPIO5
D2 IO, SDA GPIO4
D3 IO, 10k Pull-up GPIO0
D4 IO, 10k Pull-up, BUILTIN_LED GPIO2
D5 IO, SCK GPIO14
D6 IO, MISO GPIO12
D7 IO, MOSI GPIO13
D8 IO, 10k Pull-down, SS GPIO15
G Ground GND
5V 5V
3V3 3.3V 3.3V
RST Reset RST

Все выводы GPIO (кроме D0/GPIO16) поддерживают прерывания, ШИМ, I2C, 1-Wire.

Так же на сайте приведена принципиальная схема платы (PDF-файл по ссылке https://www.wemos.cc/sites/default/files/2016-09/D1_r2.pdf). Так же на www.wemos.cc можно найти ссылку на драйвера CH340 и, пожалуй, этот сайт больше ничем не может нам помочь.  

Характеристики микроконтроллера

Параметры Значения
WiFi параметры WiFi протоколы 802.11 b/g/n
Частотный диапазон 2,4ГГц–2,5ГГц (2400М–2483,5М)
Характеристики аппаратной части Периферийные шины UART/HSPI/I2C/I2S/инфракрасный интерфейс удаленного управления
Рабочее напряжение 3,0 – 3,6 В
Рабочий ток среднее 80 мАмаксимальное 200 мА
Диапазон рабочих температур -40 – 125 ºC
Характеристики программного обеспечения WiFi режим STA, AP, STA+AP
Безопасность WPA/WPA2
Шифрование WEP/TKIP/AES
Обновление прошивки загрузка через UART / OTA (через сеть) / загрузка и запись прошивки через хост
Сетевые протоколы IPv4, TCP/UDP/HTTP/FTP

WeMos и ArduinoIDE

По большому счету работа с WeMos в ArduinoIDE ничем не отличается от работы NodeMCU в ArduinoIDE, кроме наименования выводов.

Но все же напомню, как добавить в ArduinoIDE файлы для работы с платами, основанными на ESP8266EX:

  • запустить ArduinoIDE;
  • перейти в пункт «Файл – Настройки»;
  • в поле «Дополнительные ссылки для Менеджера плат» ввести адрес http://arduino.esp8266.com/stable/package_esp8266com_index.json и нажать кнопку «ОК» (на скриншоте устаревшая и уже не рабочая ссылка);
  • перейти в пункт меню «Инструменты – Плата:… — Менеджер плат», откроется окно Менеджера плат;
  • в самом низу списка появится новый пункт «esp8266…», нажать на него и затем на кнопку «Установка»;
  • дождаться завершения загрузки и установки необходимых файлов (будут загружены несколько пакетов объемом не менее 160 мегабайт) и перезапустить ArduinoIDE.
  • Не забудьте в меню “Инструменты – Плата:…” выбрать плату “WeMos D1R2 & mini”.

Напомню, что вместе с “ядром” для программирования esp8266 в ArduinoIDE идут файлы, в которых указана распиновка платы. В нашем случае для D1R2 необходим файл, расположеный по адресу https://github.com/esp8266/Arduino/blob/master/variants/d1_mini/pins_arduino.h

#ifndef Pins_Arduino_h
#define Pins_Arduino_h #include «../generic/common.h» #define PIN_WIRE_SDA (4)
#define PIN_WIRE_SCL (5) static const uint8_t SDA = PIN_WIRE_SDA;
static const uint8_t SCL = PIN_WIRE_SCL; static const uint8_t LED_BUILTIN = 2;
static const uint8_t BUILTIN_LED = 2; static const uint8_t D0   = 16;
static const uint8_t D1   = 5;
static const uint8_t D2   = 4;
static const uint8_t D3   = 0;
static const uint8_t D4   = 2;
static const uint8_t D5   = 14;
static const uint8_t D6   = 12;
static const uint8_t D7   = 13;
static const uint8_t D8   = 15;
static const uint8_t RX   = 3;
static const uint8_t TX   = 1; #endif /* Pins_Arduino_h */

А так же файл https://github.com/esp8266/Arduino/blob/master/variants/generic/common.h в котором описаны остальные выводы (я же приведу часть файла, только с необходимыми для нас данными).

#define PIN_SPI_SS   (15)
#define PIN_SPI_MOSI (13)
#define PIN_SPI_MISO (12)
#define PIN_SPI_SCK  (14) static const uint8_t SS    = PIN_SPI_SS;
static const uint8_t MOSI  = PIN_SPI_MOSI;
static const uint8_t MISO  = PIN_SPI_MISO;
static const uint8_t SCK   = PIN_SPI_SCK; #define PIN_A0 (17) static const uint8_t A0 = PIN_A0;

Как видите, используемая распиновка совпадает с распиновкой на официальном сайте.

В предыдущей статье я показывал, как можно получить доступ к устройству по глобальной сети при помощи облачного сервиса RemoteXY.  На этот раз я рассмотрю стандартные библиотеки для работы с сетью.

Для того чтобы получить список всех команд заглянем в файл ..AppDataLocalArduino15packagesesp8266hardwareesp82662.3.0librariesESP8266WiFikeywords.txt (краткое описание в скобках добавлено мной).

#######################################
# Syntax Coloring Map For ESP8266WiFi
####################################### #######################################
# Library (KEYWORD3)
####################################### ESP8266WiFi KEYWORD3 #######################################
# Datatypes (KEYWORD1)
####################################### WiFi KEYWORD1
WiFiClient KEYWORD1
WiFiServer KEYWORD1
WiFiUDP KEYWORD1
WiFiClientSecure KEYWORD1 #######################################
# Methods and Functions (KEYWORD2)
####################################### status KEYWORD2 (возвращает статус подключения, список статусов смотрите на http://wikihandbk.com/wiki/Arduino:Библиотеки/WiFi/Класс_WiFi/status() (список актуален для Wi-Fi-шилда))
mode KEYWORD2  (режим подключения, «NULL», «STA», «AP», «STA+AP»)
connect KEYWORD2 (подключение к указанному IP/URL, порту)
write KEYWORD2 (отправка данных на сервер, к которому подключен клиент)
available KEYWORD2 (возвращает количество не прочитанных байт, полученных сервером от клиента)
config KEYWORD2 (позволяет задать IP, DNS, шлюз и маску подсети)
setDNS KEYWORD2 (настройка DNS-сервера)
read KEYWORD2 (считывает байт из данных, пришедших серверу от клиента)
flush KEYWORD2 (очищает буфер)
stop KEYWORD2 (отключает клиент от сервера)
connected KEYWORD2 (проверяет, подключен ли клиент)
begin KEYWORD2 (подключение к указанной Wi-Fi сети, либо создание сервера (в зависимости от настроек))
beginMulticast KEYWORD2  disconnect KEYWORD2 (отключает модуль от текущей сети)
macAddress KEYWORD2 (возвращает MAC-адрес модуля)
localIP KEYWORD2 (возвращает IP-адрес модуля)
subnetMask KEYWORD2 (возвращает информацию о маске подсети WiFi-модуля)
gatewayIP KEYWORD2 (возвращает информацию о сетевом шлюзе WiFi-модуля)
SSID KEYWORD2 (возвращает имя сети, к которой подключен модуль)
psk KEYWORD2
BSSID  KEYWORD2 (возвращает MAC-адрес роутера, к которому подключен модуль)
RSSI KEYWORD2 (информация о мощности сигнала сети, к которой подключен модуль)
encryptionType KEYWORD2 (возвращает тип шифрования сети, к которой подключен модуль: «2» – TKIP (WPA), «5» – WEP, «4» – CCMP (WPA), «7» – никакого, «8» – автоматическое (согласно описанию функции на http://wikihandbk.com/wiki/Arduino:Библиотеки/WiFi/Класс_WiFi/encryptionType() )
beginPacket KEYWORD2 (запуск соединения для отправки UDP-пакетов)
beginPacketMulticast KEYWORD2 (то же самое для multicast-пакетов)
endPacket KEYWORD2 (завершает формирование пакета данных и отправляет его)
parsePacket KEYWORD2 (проверяет наличие входящего UDP-пакета и возвращает его размер)
destinationIP KEYWORD2 (проверяет, был ли отправлен мультикаст пакет данному устройству)
remoteIP KEYWORD2 (возвращает IP-адрес удаленного устройства)
remotePort KEYWORD2 (возвращает номер порта на удаленном устройстве)
softAP KEYWORD2 (создает точку доступа)
softAPIP KEYWORD2 (возвращает IP-адрес устройства в режиме точки доступа)
softAPmacAddress KEYWORD2 (возвращает MAC-адрес устройства в режиме точки доступа)
softAPConfig KEYWORD2
printDiag KEYWORD2 (выводит диагностическую информацию)
hostByName KEYWORD2
scanNetworks KEYWORD2 (сканирует доступные сети и возвращает их количество) #######################################
# Constants (LITERAL1)
#######################################
WIFI_AP LITERAL1
WIFI_STA LITERAL1
WIFI_AP_STA LITERAL1

Первым делом рассмотрим случай подключения WeMos к точке доступа Wi-Fi, получения данных с датчика bme280 и вывод полученных данных в виде html-страницы в любом браузере. При этом доступ к WeMos будет осуществляться только из локальной сети. Все пояснения в комментариях. 

#include #include #include //подключаем необходимые библиотеки const char* ssid = «J3»; //задаем имя точки доступа, к которой будем подключаться const char* password = «12345678»; //и пароль от этой точки доступа WiFiServer server(80); //создаем сервер на 80 порту BME280 bme; //настраиваем работу с  bme280 void setup() {  Serial.begin(115200); //отладочную информацию будем выводить в терминал  delay(10);  WiFi.begin(ssid, password); //подключаемся к точке доступа с заданными именем и паролем   while (WiFi.status() != WL_CONNECTED) { //ожидаем подключение, статус WL_CONNECTED означает что соединение установлено    delay(500);    Serial.print(«.»);    }  Serial.println(«»);  Serial.println(«WiFi connected»); //оповещение в терминал, что соединение с точкой доступа установлено  server.begin(); //запускаем сервер //далее идет дополнительная информация  Serial.println(«Server started»);  Serial.println(WiFi.localIP()); //получаем IP WeMos, этот IP необходимо ввести в адресной строке браузера, чтобы получить доступ к WeMos  Serial.println(WiFi.macAddress()); //получаем MAC-адрес WeMos  Serial.println(WiFi.subnetMask()); //маску подсети  Serial.println(WiFi.gatewayIP()); //IP- шлюза  Serial.println(WiFi.SSID());// имя сети, к которой подключен WeMos  Serial.println(WiFi.RSSI()); //и уровень сигнала  bme.begin();  //запускаем датчик bme280 } void loop() {  WiFiClient client = server.available(); //создаем клиент  if (client) { //если доступен клиент, то генерируем html страницу //генерировать страницу можно двумя способами, отправлять данные клиенту частями по мере их доступности, либо сгенерировать строку с данными и отправлять эту строку целиком //первый пример отправляет данные частями. У этого метода замечен недостаток, страница формируется довольно долго, к тому же может вообще зависнуть на этапе формирования страницы. /* client.print(«HTTP/1.1 200 OK
Content-Type: text/html

«); client.print(»

MeteoStation v0.1

«); client.print(«

Temp C: «); client.print(bme.ReadTemperature(HIGH)); client.print(«

Press Pa: «); client.print(bme.ReadPressure()); client.print(«

Press mm: «); client.print(bme.ReadPressure()/133.3); client.print(«

Hum %: «); client.print(bme.ReadHumidity()); client.print(«

Altitude m: «); client.print(bme.CalculateAltitude()); client.print(«

Dew Point C: «); client.print(bme.CalculateDewPoint(HIGH)); client.print(«

«); */ //Во втором способе создается строка, в которую последовательно записываются все данные сформированной страницы. Такой способ формирования страницы намного быстрее, можно сказать моментальный.  String s=»HTTP/1.1 200 OK
Content-Type: text/html

MeteoStation v0.1

«;  s+=»

Temp C: «;   s+=bme.ReadTemperature(HIGH);  s+=»

Press Pa: «;   s+=bme.ReadPressure();  s+=»

Press mm: «;   s+=bme.ReadPressure()/133.3;  s+=»

Hum %: «;   s+=bme.ReadHumidity();  s+=»

Altitude m: «;   s+=bme.CalculateAltitude();  s+=»

Dew Point C: «;   s+=bme.CalculateDewPoint(HIGH);  s+=»

«;  client.print(s);  delay(1);   client.flush(); //очищаем данные  client.stop(); //разрываем соединение с клиентом  }  }

Читайте также:  Управляйте своим arduino с помощью пульта управления - arduino+

Обратите внимание на скриншот терминала. В терминал выведена дополнительная информация, и самое главное в ней — IP-адрес WeMos в локальной сети.

Так выглядят данные в браузере, просто и без излишеств. Обратите внимание на адресную строку, доступ осуществляется по тому IP-адресу, который был получен через терминал.

А теперь то же самое, но WeMos будет выступать в качестве точки доступа.

#include #include #include //подключаем необходимые библиотеки const char *ssid = «ESPap»; //задаем имя создаваемой сети const char *password = «»; //пароль не указан, сеть будет открыта WiFiServer server(80); //сервер на 80 порту BME280 bme; //настраиваем датчик BME280 void setup() {  Serial.begin(115200); //будем выводить отладочную информацию в терминал  WiFi.softAP(ssid, password); //создаем точку доступа, с указанными ранее именем и паролем.  IPAddress myIP = WiFi.softAPIP(); //получаем IP-адрес WeMos (по умолчанию 192.168.4.1)  Serial.print(«AP IP address: «); //выводим полученный IP-адрес  в терминал  Serial.println(myIP);  server.begin(); //запускаем сервер  Serial.println(«Server started»);  bme.begin();  //запускаем работу с BME280 } void loop() {  WiFiClient client = server.available();  if (client) {//если клиент подключен  Serial.println(«Client connected»); //выводим сообщение об этом в терминал  String s=»HTTP/1.1 200 OK
Content-Type: text/html

MeteoStation v0.1

«;  s+=»

Temp C: «;   s+=bme.ReadTemperature(HIGH);  s+=»

Press Pa: «;   s+=bme.ReadPressure();  s+=»

Press mm: «;   s+=bme.ReadPressure()/133.3;  s+=»

Hum %: «;   s+=bme.ReadHumidity();  s+=»

Altitude m: «;   s+=bme.CalculateAltitude();  s+=»

Dew Point C: «;   s+=bme.CalculateDewPoint(HIGH);  s+=»

«; //формируем страницу  client.print(s); //и отправляем её клиенту  delay(1);   client.flush();  client.stop(); //разрываем соединение с клиентом  Serial.println(«Client disconnected»); //выводим сообщение в терминал что клиент отключен  }  }

И скриншоты терминала 

и браузера при способе подключения «точка доступа».

Приведенные примеры показывают, как получить данные от WeMos и подключенных к нему датчиков, но вопрос управления WeMos через браузер остался в стороне. Об этом в следующих статьях. Продолжение не за горами.

Прикрепленные файлы:

Источник: http://cxem.net/arduino/arduino222.php

Контроллер для гидропоники на Wemos D1 mini

  • AliExpress
  • Радиотовары
  • Сделано руками

Об одном из миллиона способов практического применении этой потрясной штуки. Будет небольшая история создания, «самописные» программа для Андроид, вэб-морда и сайт на сервере, немного олова и много капсаицина.

Так сложилось, что я люблю что-нибудь выращивать, люблю острый перец и люблю что-нибудь мастерить. В этом устройстве соединились все три эти страсти.

Должен сказать, что я не IT-шник ни по образованию, ни по профессии, поэтому прошу спецов делать скидку и побольше критиковать, критику я люблю, помогает развиваться.

Гидропоника.

Ну об этом можно писать бесконечно. Все наверняка слышали о том, что это такое, многое сами применяют.

Способ и устройств её реализации тьма, сначала я выращивал в кокосовом волокне, поливая питательным раствором, но позже захотелось большего контроля параметров, большего объема раствора, меньшего ухода и в конце концов большей технологичности.

Сделал вот такую простейшую установку.
В горшке керамзит, периодически маломощной погружной помпой проливается сверху раствором, находящемся в нижнем баке.

Контроллер.

Требования к контроллеру были следующие: — мониторинг климата (температура, влажность) — управление светодиодными лампами, причем двумя каналами, отдельно красными диодами, отдельно синими — запись статистики.

Вариант №1.

Вначале использовалась Arduino Mega2560, которая была обвешана: — датчик температуры и влажности DHT-21 — датчик давления bmp180 — двухканальное реле

— графический дисплей вот такой

— инфракрасный приемник для управление с пульта (взял от китайского прожектора), удобная штука, раз подключил — и имеешь кучу настраиваемых кнопок — модуль записи SD-card — модуль люксометра — буззер Отработало устройство без нареканий. Выполнило свою главную задачу — познакомило меня с Ардуиной.

Вариант № 2.

Давно меня терзали мысли перевести интерфейс (отображение информации и управление) Ардуины в Андроид-телефон, уж больно он разросся, но как подумаешь, что для этого Java штурмовать придется, желание делать это как-то сразу пропадало.

И вот набрел случайно на совершенно потрясную штуку — MIT App Inventor 2.

Написание Андроид-программы для людей, совсем не знакомых с программированием. Очень похоже на хорошо мне знакомый Scratch (с дочкой занимаюсь). Среда разработки — онлайн в браузере. Как и во «взрослой» Android Studio, написание состоит из двух частей, в первом окне с помощью драг&дропа набрасываем компоненты, вторая — написание логики. Просто до неприличия.

В общем стряхнул я пыль с давно валявшегося HC-05 уже практически через полчаса в телефон пошла первая информация с Ардуины. Подключается он по Serial, все стандартно, передаю данные с Ардуины в таком виде: Данные, разделенные запятыми, т.н. CSV-формат. Температура, влажность, текущее время, люксы, количество часов красных диодов, и то же для синих, включен ли красный, и синий.

Ну и по краям символы начала и конца строки, чтоб можно было проверить ее целостность. Сначала накидали компонентов:Подключаемся, MAC-адрес сразу прописал, чтоб не заморачиваться с поиском-выбором устройств. Повесил на таймер, срабатывающий через полсекунды после старта программы.Раз в секунду считываем все байты, стоящие в очереди и отправляем на обработку в функцию trim_start.

Поскольку полученные данные могут быть повреждены, в функции trim_start делаем простейшую проверку (проверяем наличие символов начала и конца строки, чтобы символ начала шел впереди символа конца) Разбиваем строку на элементы и наполняем ими массив data_list.

И затем раз в секунду разносим наши данные по нужным компонентам (в температуре и влажности вычисляем угол поворота стрелки)Ну и параллельно проверяем и меняем состояние кнопок (включено/выключено, ставит соотв. картинку).Отправлять данные в Ардуину будем в следующем формате: R_12> Первый символ, что именно меняем (R-для красных диодов, B-для синих, T-для времени).

Вот к примеру для красных (формируем строку для отправки и выставляем флаг transmit, показыающий, что есть что оправить):Собственно отправка:Теперь принимаем их в Ардуине:char reb_array[20] ; int lll=0; while (Serial1.available() > 0) { //если пришли данные reb_array[lll]=Serial1.

read(); // считываем байты и заполняем ими массив reb_array lll++; }Далее парсим строку и в зависимости от первой буквы меняем нужные переменные:char * pch; pch = strtok (reb_array,»_»); String pp = (String)pch; if(pp == «R»){ pch = strtok (NULL, «>»); String r1=(String)pch; time_red_duration = r1.

toInt();} if(pp == «B»){pch = strtok (NULL, «>»); String r1=(String)pch; time_blue_duration=r1.toInt();} Вот итоговый вид программыСверху два «спидометра» температуры и влажности, ниже люксометр, далее кнопки красных и синих диодов (выполняют три функции: 1 — показывают включены или нет, 2-текущий режим, 3-при нажатии принудительно включают/выключают их).

Ниже время, далее слайдеры установки режима работы диодов. И в самом низу кнопка установки времени на Ардуине, т.е. его синхронизации со временем телефона (у меня сгорел модуль часов, поэтому после каждого включения приходилось вручную его устанавливать, теперь я лишен этой «радости»).

В общем архиудобная штука, теперь нет необходимости тулить громоздкое каскадное меню для отображения и управление (они уже сейчас занимают около 60% кода в Ардуине), намного удобнее, можно проверять, управлять дистанционно, значительно красивше, здорово экономит время при написании кода, возможно деньги (управляющие элементы и дисплей теперь не обязательно покупать и тулить к устройству), громадный простор для фантазии (построение графиков, передача в интернет, сложная логика на стороне телефона и т.д. и т.п.). Аналогичным образом её можно использовать и при подключении по WiFi, не только блютуз. Позже чуть подредактировал, стало так
Вариант №3. Был приобретен герой обзора. В принципе это то же самый ESP8266, но уже распаянный, с программатором на борту (340-й), microUSB-входом, стабилизатором питания и практически бесплатно, программировать можно а Arduino IDE. Что имеем: 1. частота 80 или 160 MHz, в отличие от Меги, где только 16. 2. Память 4 Mb, у меги 256кб 3. Оперативка 80кб, у меги 8. 4. И самое главное вайфай, которого у меги нету. 5. Единственный минус — меньше выводов, но на крайний случай можно их увеличить, с использованием сдвиговых регистров. Да и потребность в них упала на порядок, т.к. устройства интерфейса и управления уже не нужны. В общем имеем на порядок (в прямом смысле — в 10 раз) более мощное устройство, но в разы дешевле и компактнее. Ресурсов хватает уже для запуска почти полноценного сервера. Поначалу я не осознал всю суть и возможности этого зверька, и использовал его лишь в качестве довеска к Меге, соединив с последней по Serial и используя его лишь для отправки инфы на сервер (подробнее о сервере ниже).

Вариант №4.

И вот наконец пришло понимание с кем я имею дело, и в ходе размышлений пришел к выводу, что Ардуино Мега здесь совершенно лишняя. Вот так выглядел мой коллайдер в связке с Мегой в прошлом годуВот таким стал сейчасЧто изменилось: Выкинул Ардуину Мега и перевел его полностью на Wemos. Выкинул дисплей — теперь отображение информации по вайфаю на компьютере.

Выкинул IR-датчик управления с пульта — теперь управление тоже на компьютере. Выкинул модуль SD-карт — вся инфа отправляется на сервер и записывается в базу MySQL. Выкинул модуль блютуз — управление с телефона прямо в браузере. Выкинул модуль люксометра — просто необходимости в нем нет.

Вемос сделал легкосъемным — при необходимости залить другую прошивку не нужно отсоединять всю периферию, с платы снимается только Вемос.

Осталось: Датчик DHT-21 Датчик давления Часы (вообще можно было и их выкинуть, а синхронизировать внутренний таймер Вемоса с временем интернета, но больше он мне пока нигде не нужен — решил пусть будет) PPM-метр раствора — там выше на на фото сетевая вилка в растворе. Это и есть щупы TDS-метра. Подключена через делитель напряжения на аналоговый вход.

Замеряю падения на них напряжения, вычисляют сопротивление и привожу к ррм. Штука конечно не точная, при передвижении вилки показания гуляют, но тенденцию показывает прекрасно (увеличение или падение ррм) Реле управления светом, отдельно красными и синими диодами.

На помпу установил твердотельное реле вот такое:Шикарная штука, маленькая, бесшумная (обычное реле немного напрягало своими щелчками, слышно было в соседней комнате), управляется 3.3 вольтами, не нужно дополнительно тянуть для неё питание, цена доллар с небольшим. Добавил еще датчик уровня раствора, т.к. иногда забываю подливать.

Использовал популярный ультразвуковой датчик расстояния. Крепление бесхитростное:При заходе на сервер Вемоса (т.е. при наборе в адресной строке браузера на компьютере или телефоне его локального адреса, в данном случае 192.168.0.84), он мне выдает вот такую страничку.В принципе все там понятно, объяснять не нужно, отображается инфа с датчиков, текущие установки.

Справа поля для их изменения. При нажатии кнопки Setup, собираются данные с полей, если есть, берется текущее системное время для синхронизации с ним времени Вемоса, и отправляется в Вемос. Там данные записываются в EEPROM, при перезагрузке ничего не сбивается. Каждые пять минут данные отправляются на сервер, где записываются в базу MySQL.

Читайте также:  Hubsan x4 h501c: обзор дрона - arduino+

При заходе на сайт anndrew.tk выдается вот такая страница с информацией. Можете прямо сейчас зайти на него и увидеть текущую обстановку в моей гидропонике.

Отображаются «спидометры» — актуальные значения температуры, влажности, давления, ррм и объема оставшего раствора. Рядом с ними графики за последние сутки. Если нажать на график — откроется более подробный, где меняя в строке браузера последнее число (по умолчанию там стоит 500), можно посмотреть график за более продолжительное время.

Сайт писал сам на РНР, для графиков использовал библиотеку Highcharts

Всё работает нормально. Пруф:Я так понял без этого администрация обзор не пропустит:

P.S. Это мой первый обзор, критикуйте, спрашивайте — с радостью отвечу.

Источник: https://mysku.me/blog/aliexpress/53209.html

Arduino контроллеры

При оформлении заказа на 2 и более товара, покупателю предоставляется скидка в размере 5% от суммы покупки.

Изменение цен происходит прямо в корзине заказа при добавлении второго товара. Акция распространяется на все товары магазина.

Сортировка:

Артикул: 111215

Контроллер Arduino Mega 2560 ATmega2560-16AU собран на микроконтроллере ATmega2560-16AU, предназначен для программирования несложных проектов на микроконтроллерах.

Артикул: 111217

Контроллер Arduino Nano V3.0 AVR ATmega328P-20AU собран на микроконтроллере ATmega328P-20AU, предназначен для программирования несложных проектов на микроконтроллерах.

Артикул: 111388

Контроллер Arduino Pro Mini MEGA328AU1306 собран на микроконтроллере MEGA328AU1306, предназначен для программирования несложных проектов на микроконтроллерах.

Артикул: 111111

Контроллер Arduino Uno ATmega328P-PAU USB AVR собран на микроконтроллере ATmega328P-PAU, предназначен для программирования несложных проектов на микроконтроллерах.

Артикул: 112216

Плата разработчика (контроллер) с поддержкой USB подключения, собрана на микроконтроллере stm32f103c8t6 32-битной архитектуры ARM Cortex-m3 от производителя ST Microelectronics Ink.

Артикул: 114178

Мини плата разработчика (контроллер) с поддержкой USB подключения, собрана на микроконтроллере STM32F103C8T6 32-битной архитектуры ARM Cortex-M3 от производителя ST Microelectronics Ink.

Артикул: 114345

Микроконтроллер модели LoLin NodeMcu v3 собран на чипе ESP8266.

Артикул: 114048

Полупрозрачный корпус открытого типа для микроконтроллеров Arduino Mega 2560 R3 из матового акрила.

Артикул: 113883

Прозрачный корпус закрытого типа для Arduino Uno R3.

Артикул: 114081

Микроконтроллер Wemos модели D1 mini аналог оригинала собран на чипе ESP8266 с 1Мбайт Flash памяти.

Артикул: 114080

Микроконтроллер Wemos модели D1 R2 V2.1.0 собран на чипе ESP8266 с 4Мбайт Flash памяти.

Артикул: 111214

Контроллер Arduino Duemilanove 2009 AVR ATmega328P собран на микроконтроллере ATmega328P-PU, предназначен для программирования несложных проектов на микроконтроллерах.

Артикул: 111989

Контроллер Arduino Leonardo модель R3, форм фактора Arduino Uno собран на микроконтроллере ATmega32U4.

Артикул: 112314

Контроллер Arduino Lilypad, форм фактора Lilypad, собран на микроконтроллере ATmega328P.

Артикул: 113141

Контроллер Digispark MicroUSB собран на микроконтроллере ATtiny85-20SU.

Артикул: 113140

Контроллер Digispark USB собран на микроконтроллере ATtiny85-20SU.

Артикул: 112905

Отладочная плата, стенд разработчика моделИ BK-AVR128 на микроконтроллере Atmel Atmega128A в корпусе TQFP64 для начального обучения, работы и проведения экспериментов с системами на микроконтроллерах семейства AVR.

Артикул: 112674

Отладочная плата STM32F4Discovery с мощным контроллером и различной внешней периферией для процессов разработки, настройки микросхемы или программы.

Артикул: 111907

Стартовый учебный стенд M16/32 STK на микроконтроллере Atmel Atmega16APU1327 в DIP корпусе для начального обучения работы и проведения экспериментов с системами на микроконтроллерах семейства AVR.

Показано с 1 по 19 из 19 (всего 1 страниц)

Источник: https://freedelivery.com.ua/kontrollery-135

Давайте попробуем плату Wemos D1 mini ESP8266, DHT & щиты на релле

Wemos D1 является мини-платой ESP8266, она интересна благодаря своим размерам, низкой цене ($ 4), микро-USB, мощностью щитов, а также документацией, которая выглядит довольно хорошо.

Плата может быть запрограммирована с помощью Arduino или Lua, и поддерживает как последовательное так и OTA программирование.

Я решил попробовать и купил плату вместе с двумя экранами температуры, реле щита, а также микро SD щитом.

Я получил всё за $ 14.00 в магазине Wemos на Aliexpress , доставка заняла около одного месяца. Я также увидел, что они недавно выпустили новый OLED-экран по цене около $ 5. Все щиты были погружены в свои собственные антистатические пакеты.

с одной стороны плата имеет последовательный порт CH340  на чипе USB, а также кнопку сброса.

Предоставленные разъемы позволяют легко устанавливать на плату несколько экранов. Например, я подключил Wemos D1 mini на обоих реле экран и DHT Pro экран после того как припаял их к некоторым из разъемов. Единственная потенциальная проблема в том что можно припаять их неправильной стороной, так что вы просто должны убедиться, что контакты (5V, RST, …) правильно выровнены.

Я в основном следовал руководству по работе с Arduino с сайта Wemos.cc, те же кто предпочитает программировать на Lua / NodeMCU изучите руководство по NodeMCU. Существуют различные способы, настройки Arduino IDE для WeMos D1 мини, но я использовал только рекомендуемый способ: через Git.

Первым шагом были установка и запуск Arduino 1.6.8. Так как я использую компьютер под управлением Ubuntu 14.04, я скачал и установил Arduino 1.6.8 для Linux:

tar xvf arduino-1.6.8-linux64.tar.xz

Теперь получим папку SketchBook, перейдя в File->Preferences

Обратите внимание на эту папку,так как в неё мы будем устанавливать файлы для поддержки платы , инструменты и примеры, выйдем из Arduino перед началом установки:

git clone https://github.com/esp8266/Arduino.git esp8266

скачиваем бинарные инструменты:
и, наконец, установим примеры:

git clone https://github.com/wemos/D1_mini_Examples.git

Позже вы можете обновить файлы поддержки материнской платы и образцы, запустив Git в двух каталогах, где вы запускали Git. теперь подключайте Wemos D1 мини к USB-порту компьютера с микро USB к кабелю USB. В Linux, вы должны увидеть новое устройство в логах ядра:

[ 8643.196931] usb 7-3: new full-speed USB device number 4 using ohci-pci[ 8643.361709] usb 7-3: New USB device found, idVendor=1a86, idProduct=7523[ 8643.361717] usb 7-3: New USB device strings: Mfr=0, Product=2, SerialNumber=0[ 8643.361722] usb 7-3: Product: USB2.0-Serial[ 8643.363826] ch341 7-3:1.0: ch341-uart converter detected[ 8643.387870] usb 7-3: ch341-uart converter now attached to ttyUSB0

Давайте запустим Arduino 1.6.8 и выберем WeMos D1 R2 & mini в Tools->Board.

Мы можем использовать параметры по умолчанию, которые включают в себя частоту процессора в 80 МГц, 4М памяти, скорость загрузки 912600 в / DEV / port ttyUSB0.

Теперь мы можем использовать образцы кода, что бы убедиться, что все работает я запущу проект blink: File->Sketchbooks->D1_mini_Examples->01. Basics->Blink:

* Turns on the onboard LED on for one second, then off for one second, repeatedly.* This uses delay() to pause between LED toggles.  pinMode(BUILTIN_LED, OUTPUT);  // initialize onboard LED as output  digitalWrite(BUILTIN_LED, HIGH);  // turn on LED with voltage HIGH  delay(1000);                      // wait one second  digitalWrite(BUILTIN_LED, LOW);   // turn off LED with voltage LOW  delay(1000);                      // wait one second

При нажатии кнопки Upload будет скомпилирован и загружен код на плату и, как только это будет завершено, встроенный синий светодиод (D4 / GPIO2) будет мигать каждую секунду. Так что моя плата работает.

Как вы можете видеть, что я уже подключили DHT Pro экран к доске, так что давайте попробуем пример для экрана, чтобы получить температуру и влажность нужно пойти в  File->Sketchbooks->D1_mini_Examples->04. Shield->DHT_Pro_Shield->Simple:

Источник: http://www.cnx-software.ru/2016/03/23/getting-started-with-wemos-d1-mini-esp8266-board-dht-relay-shields/

WeMos D1 Wi-Fi UNO (ESP8266 ESP-12E)

Arduino IDE совместимый контроллер с Wi-Fi WeMos D1 на ESP8266 ESP-12E.

WeMos D1 Wi-Fi UNO (ESP8266 ESP-12E)

Характеристика платы Wemos D1 Wi-Fi UNO (ESP-12E)

Плата Blue Sky Smart Electronics ESP-12E WeMos D1 – это клон известной Arduino-подобной платы WeMos D1.

  • Поддержка Arduino IDE
  • Микроконтроллер ESP-8266EX
  • Частота микроконтроллера 80MHz/160MHz
  • Flash память 4 МБ
  • 11 цифровых входов/выходов. Все выводы поддерживают interrupt/pwm/I2C/one-wire (за исключением D0)
  • 1 аналоговый вход (максимальное входное напряжение 3,3 В)
  • Micro USB разъем
  • Разъем питания (9-24 В)
  • Программирование через Serial или OTA (беспроводная загрузка программного кода по Wi-Fi)
  • Наличие WI-FI модуля

Плата построена на основе Wi-Fi модуля ESP-12E, одной из последних модификаций модулей ESP8266, различающихся количеством выводов и вариантами исполнения.

Это не просто WI-FI модуль, а полноценный 32 битный микроконтроллер ESP-8266EX со своим набором GPIO, в том числе SPI, UART, I2C.

При этом схема модуля состоит из минимального количества деталей: самого чипа ESP8266, флеш-памяти, кварцевого резонатора. Более подробно о характеристиках модуля ESP-12E можно узнать по ссылке ниже:

Краткие характеристики модуля ESP-12E на базе микроконтроллера ESP8266

Частота Wi-Fi 2412-2484 МГц
Стандарт 802.11 b / g / n
Мощность + 20 дБм
Поддерживаемы типы шифрования WEP, WPA, WPA2
Поддерживаемые режимы работы Клиент(STA), Точка доступа(AP), Клиент+Точка доступа(STA+AP)
Напряжение питания 1.7..3.6 В
Потребление тока 70 мА (240 мА пик)
Количество GPIO 11
Внешняя Flash память 4 МБ
RAM данных 80 КБ
RAM инструкций 32 КБ
Температурный режим -40°/+70° C

Назначение выводов на плате Wemos D1 Wi-Fi UNO (ESP-12E)

Расположение выводов на плате Wemos D1 R2 Wi-Fi UNO (ESP-12E)Распиновка Wemos D1 R2 Wi-Fi UNO (ESP-12E): соответствие выводов на плате выводам ESP8266

Использование Wemos D1 Wi-Fi UNO (ESP-12E) с Arduino IDE

Выбор типа платыВыбор частоты процессора, скорости последовательного порта, номера COM портаПример Hello WorldКод примераВывод платы в монитор последовательного порта

Магазины и цены

Цены на WeMos D1 Wi-Fi UNO (ESP8266 ESP-12E)

Товар в магазинеКоличество штук в комплектеСтоимостьРасчетная стоимость за 1 шт.
WeMos D1 Wi-Fi UNO (ESP8266 ESP-12E) на AliExpress 1 210.68 руб. / 3.29 USD
(на 15 июня 2018)
210.68 руб. / 3.

29 USD

WeMos D1 Wi-Fi UNO (ESP8266 ESP-12E) на AliExpress 1 218.36 руб. / 3.41 USD
(на 15 июня 2018)
218.36 руб. / 3.41 USD
WeMos D1 Wi-Fi UNO (ESP8266 ESP-12E) на AliExpress 1 222.85 руб. / 3.48 USD
(на 15 июня 2018)
222.85 руб. / 3.

48 USD

WeMos D1 Wi-Fi UNO (ESP8266 ESP-12E) на AliExpress 1 229.89 руб. / 3.59 USD
(на 15 июня 2018)
229.89 руб. / 3.59 USD
WeMos D1 Wi-Fi UNO (ESP8266 ESP-12E) на AliExpress 1 233.73 руб. / 3.65 USD
(на 15 июня 2018)
233.73 руб. / 3.

65 USD

На сайте работает сервис комментирования DISQUS, который позволяет вам оставлять комментарии на множестве сайтов, имея лишь один аккаунт на Disqus.com.

Базовые AT команды ESP8266

ESP8266 в своей конфигурации по умолчанию загружается в режим последовательного модема. В этом режиме вы можете общаться с ним с помощью набора AT-команд. AT-команды ESP8266 можно разделить на три категории: базовые, уровень Wi-Fi и уровень TCP/IP. Ниже…

AT команды ESP8266 уровня Wi-Fi

ESP8266 в своей конфигурации по умолчанию загружается в режим последовательного модема. В этом режиме вы можете общаться с ним с помощью набора AT-команд. AT-команды ESP8266 можно разделить на три категории: базовые, уровень Wi-Fi и уровень TCP/IP. Ниже…

AT команды ESP8266 уровня TCP/IP

ESP8266 в своей конфигурации по умолчанию загружается в режим последовательного модема. В этом режиме вы можете общаться с ним с помощью набора AT-команд. AT-команды ESP8266 можно разделить на три категории: базовые, уровень Wi-Fi и уровень TCP/IP. Ниже…

Источник: https://radioprog.ru/shop/merch/57

Ссылка на основную публикацию