Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Классический арканоид для любителей ретро-игр. Защитите космический корабль с Печенькой (и не только) на борту, проходя уровни в арканоиде.

Арканоид Пикабу

Арканоид, Аркады, Веселая

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Esp8266 + Программирование

С этим тегом используют

Arduino Электроника Самоделки Своими руками YouTube Умный дом Ardublock IT Программист IT юмор Разработка Python Картинка с текстом Юмор Все
28 постов сначала свежее
83
return.true
8 лет назад
Arduino & Pi

Wi-fi термометр на ESP8266. Часть 2. Собираем индикатор с LCD дисплеем на Wemos D1⁠⁠

В прошлой части, мы с вами уже собрали датчик. В этой части сделаем индикатор температуры c LCD дисплеем. За основу взята плата Wemos D1 на микроконтроллере ESP-8266EX и дисплей на распространенном HD44780, у меня он уже был с адаптером для подключения по I2C.

Wi-fi термометр на ESP8266. Часть 2. Собираем индикатор с LCD дисплеем на Wemos D1 Сделай сам, Esp8266, Arduino, Электроника, Программирование, Nodemcu, Своими руками, Длиннопост

Подключение дисплея к ESP-8266

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

Wi-fi термометр на ESP8266. Часть 2. Собираем индикатор с LCD дисплеем на Wemos D1 Сделай сам, Esp8266, Arduino, Электроника, Программирование, Nodemcu, Своими руками, Длиннопост

Понадобятся всего 4 провода: 2 для питания экранчика и 2 для передачи данных.


LCD VCC - NodeMCU 5V

LCD GND - NodeMCU GND

LCD SCL - NodeMCU D1

LCD SDA - NodeMCU D2

У меня экранчик работал от 5 вольт, смотрите внимательно на вольтаж вашего.

Wi-fi термометр на ESP8266. Часть 2. Собираем индикатор с LCD дисплеем на Wemos D1 Сделай сам, Esp8266, Arduino, Электроника, Программирование, Nodemcu, Своими руками, Длиннопост

Здесь прекрасно видно что куда подключено, справится каждый!

Подключение и прошивка

Прошивку будем заливать с помощью ESP8266Flasher.exe, как это сделать вы можете прочитать в прошлой части. Шаги будут практически идентичны. Отправляемся на https://nodemcu-build.com/ и собираем прошивку со следующими модулями: bit,cjson,dht,file,gpio,http,i2c,net,node,ow,pwm,rtctime,sntp,spi,tmr,uart,wifi

Пишем логику работы

Упрощенно логика работы такова: включаемся, подключаемся к wi-fi, получаем ip, получаем точное время с NTP сервера (см. файл ntp.lua), там в успешный коллбэк пишем переход к нашему main.lua. В нём вызовем updateLcdRow1(), updateLcdRow2() для обновления строк экранчика и при первом запуске создадим таймеры createTimers() для последующего обновления значений времени и температуры.

Что нужно изменить в файлах:

Файл init.lua: wifi.sta.config("YOUR_AP_NAME", "YOUR_AP_PASSWD")


Вместо YOUR_AP_NAME, YOUR_AP_PASSWD вписываем название своей точки доступа и пароль к ней.


Файл ntp.lua: sntp.sync('ru.pool.ntp.org', - можно указать свой адрес ntp-сервера.


Файл main.lua: tm = rtctime.epoch2cal(rtctime.get()+10800) 10800 секунд = 3 часа - это указание временной зоны. С ntp сервера мне приходило время по гринвичу, т.е. GMT+0. В связи с тем что в текущей реализации nodemcu работы с датой и часовыми поясами реализована слабо, пришлось сделать вот так. Для часового пояса отличного от GMT+3 надо прописать своё значение секунд здесь.


Дальше, вот здесь http.get("http://api.thingspeak.com/channels/999999/fields/1.json?api_...", надо указать свою ссылку и API ключ к вашему аккаунту на thingspeak.


В качестве ДЗ, здесь же можно добавить в фэйл коллбэк http.get() получение показаний с датчика локально, на случай если пропал интернет.

Wi-fi термометр на ESP8266. Часть 2. Собираем индикатор с LCD дисплеем на Wemos D1 Сделай сам, Esp8266, Arduino, Электроника, Программирование, Nodemcu, Своими руками, Длиннопост

На картинке пример работающей платы с выводом отладочной информации.


Файл i2clcd.lua, писал не сам, нашел у индусов. Здесь возможно придется поправить адрес устройства или номера GPIO, если подключать будете к другим, нежели чем у меня.

Как всегда, все исходники можно скачать на github. https://github.com/nossSpb/nodemcu-ds18b20-tutorial/tree/mas...


В следующей части поставим android studio и напишем с вами простое приложение для просмотра данных на смартфоне. Делитесь своими идеями в комментариях, задавайте вопросы. Спасибо что дочитали до конца.

Показать полностью 4
[моё] Сделай сам Esp8266 Arduino Электроника Программирование Nodemcu Своими руками Длиннопост
8
107
return.true
8 лет назад
Arduino & Pi

Wi-fi термометр на ESP8266. Часть 1. Собираем датчик температуры воздуха на ESP-01⁠⁠

Подключение ESP-01 к компьютеру

Подключение ESP-01 к компьютеру происходит несколько сложнее, нежели чем знакомые всем arduino. Повторюсь, если бы у меня не было чипа ESP-01 в хозяйстве, то надо выбирать уже готовые наборы с необходимой “обвязкой” на борту. Для того чтобы подключить ESP-01 к компьютеру нам потребуется USB-TTL адаптер, макетная плата и набор проводов папа-мама для макетной платы. Также, немаловажную роль играет источник питания. В самом начале своих экспериментов я не придал этому значения, и есп-ха постоянно перезагружалась, переставала отвечать на команды. В общем, обязательно используйте отдельный источник питания.

Wi-fi термометр на ESP8266. Часть 1. Собираем датчик температуры воздуха на ESP-01 Сделай сам, Esp8266, Arduino, Электроника, Программирование, Nodemcu, Своими руками, Длиннопост

На фото изображен USB-TTL адаптер на чипе CH340. Обратите внимание на перемычку, с помощью неё выбирается рабочее напряжение. Нам нужно 3.3V

Wi-fi термометр на ESP8266. Часть 1. Собираем датчик температуры воздуха на ESP-01 Сделай сам, Esp8266, Arduino, Электроника, Программирование, Nodemcu, Своими руками, Длиннопост

Макетная плата с DC-DC преобразователем. К косе проводов уходящих направо подключалась ESP.

Настоятельно рекомендую для подключения ESP-01 к макетной плате использовать специальный адаптер, ищется на али по запросу Breadboard Adapter for ESP-01. Он показан на следующем фото. Он позволит вам стабильно воткнуть ESP в макетную плату, чтобы ничего не болталось на проводах. Плюс, что еще немаловажно на этом адаптере распаян конденсатор на 0.1µF для сглаживания питания. В дальнейшем его можно использовать и в готовом девайсе, чтобы иметь возможность быстро вытащить-заменить чип.

Wi-fi термометр на ESP8266. Часть 1. Собираем датчик температуры воздуха на ESP-01 Сделай сам, Esp8266, Arduino, Электроника, Программирование, Nodemcu, Своими руками, Длиннопост

Breadboard Adapter for ESP-01 очень сильно облегчит подключение чипа к макетной плате. У меня такого в момент сборки девайса не было.

Вот моя схема подключения. Честно стырена с просторов инета, единственное я добавил емкость на 10µF в разрыв кнопки RST. А то, там толи дребезг кнопки был, толи хз.

Wi-fi термометр на ESP8266. Часть 1. Собираем датчик температуры воздуха на ESP-01 Сделай сам, Esp8266, Arduino, Электроника, Программирование, Nodemcu, Своими руками, Длиннопост

«Напрямую» к питанию подключается только вывод VCC, остальные выводы: CH_PD, RESET, GPIO0, GPIO2, должны быть подтянуты к питанию (VCC) через резистор от 4,7 до 50 кОм. «Напрямую», к минусу (общему проводу) питания подключаем только GND, а GPIO0 подтягиваем (pulldown) тоже через резистор до 10k к GND для перевода модуль в режим загрузки прошивки. Об этом немного позже. Далее подключаем:

ESP8266 — RX ---> USB-TTL — TX,

ESP8266 — TX, ---> USB-TTL — RX.

Уже на этом этапе можно подать питание на схему, и убедиться что ничего не сгорело. При успешном старте заводской прошивки на модуле ESP8266 загорится красный светодиод (индикатор питания, на некоторых версиях модуля, например ESP-12, может отсутствовать) и пару раз мигнет синий (это индикатор передачи данных от модуля к терминалу по линии TX-RX, может иметь другой цвет).

Проверка подключения и прошивка

Для работы с esp мы будем использовать широко распространенную в узких кругах ESPlorer https://esp8266.ru/esplorer/#download Программа написана на java и будет без проблем работать под разными платформами (win, linux mac)


Подадим питание на модуль, запустим программу, выбираем нужный COM порт, и нажимаем open, и перезагрузим модуль. После этого в окне терминала мы увидим мусор из символов (из-за разных скоростей передачи) , а потом что-то типа:

wdt reset

load 0x40100000, len 25052, room 16

tail 12

chksum 0x0b

Это означает что модуль успешно стартует на стоковой прошивке и у вас есть с ним связь.


Отложим пока ESPlorer в сторону, он понадобится нам позже. Самое время прошить в наш модуль прошивку NodeMCU. Я выбрал эту прошивку по нескольким причинам: для обновления работы скриптов больше не нужно переводить модуль в режим прошивки, и нажимать кнопки на макетке (у меня все это дело немного глючило на макете) , возможность использовать готовые модули, наличие хорошей документации к API. Ссылка на документацию: https://nodemcu.readthedocs.io/en/master/


Благодаря сервису https://nodemcu-build.com/ мы можем собрать собственную версию прошивки только с теми модулями, которые нам нужны. Чем меньше модулей будет в прошивке, тем больше места останется для ваших данных и скриптов.

Wi-fi термометр на ESP8266. Часть 1. Собираем датчик температуры воздуха на ESP-01 Сделай сам, Esp8266, Arduino, Электроника, Программирование, Nodemcu, Своими руками, Длиннопост

Заполняем email, ставим галочки на те модули что нам понадобятся, а именно: bit, CJSON, file, GPIO, HTTP, I²C, net, node, 1-Wire, timer, UART, WiFi и нажимаем Start Your Build.

Пока выполняется билд скачаем программу для прошивки. Если у вас не windows, то есть другие инструменты, например esptool, я использовал nodemcu-flasher https://github.com/nodemcu/nodemcu-flasher Скачиваем билд в зависимости от вашей операционной системы.

Wi-fi термометр на ESP8266. Часть 1. Собираем датчик температуры воздуха на ESP-01 Сделай сам, Esp8266, Arduino, Электроника, Программирование, Nodemcu, Своими руками, Длиннопост

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

Примерно так будет выглядеть письмо. Скачиваем файл прошивки, нам нужна integer версия.

Wi-fi термометр на ESP8266. Часть 1. Собираем датчик температуры воздуха на ESP-01 Сделай сам, Esp8266, Arduino, Электроника, Программирование, Nodemcu, Своими руками, Длиннопост

Теперь запускаем ESP8266Flasher.exe, переходим на вкладку Config, в первую строчку добавляем наш файл.

Wi-fi термометр на ESP8266. Часть 1. Собираем датчик температуры воздуха на ESP-01 Сделай сам, Esp8266, Arduino, Электроника, Программирование, Nodemcu, Своими руками, Длиннопост

Переходим на вкладку Operation, перезагружаем нашу ESP-01 в режим прошивки таким образом: зажимаем кнопку FLASH и нажимаем RESET, отпускаем FLASH. Нажимаем Flash.

Wi-fi термометр на ESP8266. Часть 1. Собираем датчик температуры воздуха на ESP-01 Сделай сам, Esp8266, Arduino, Электроника, Программирование, Nodemcu, Своими руками, Длиннопост

Если все прошилось успешно, ура-ура! Осталось совсем немного.

Теперь открываем ESPlorer, в правой части выбираем нужный порт, нажимаем Open и перезагружаем модуль нажав на кнопку RESET. Вы должны увидеть в терминале что-то похожее.

Wi-fi термометр на ESP8266. Часть 1. Собираем датчик температуры воздуха на ESP-01 Сделай сам, Esp8266, Arduino, Электроника, Программирование, Nodemcu, Своими руками, Длиннопост

Пишем логику работы датчика

Логика работы датчика очень проста: после загрузки подключаемся к wi-fi точке, получаем ip-адрес. Один раз в минуту считываем показания и отправляем их в облако. Помимо этого создаем на 80 порту веб-сервер, обратившись к которому можно получить JSON с текущим значением температуры.

Дело за малым, создаем новый файлы, копируем в них содержимое и сохраняем в ESP, - Save to ESP. Прошивка NodeMCU предоставляет нам некий аналог файловой системы, можно сохранять, удалять файлы на ESP как на любой флэшке. При этом не требуется переводить модуль в режим прошивки, можно даже сделать обновление прошивки по воздуху.

Несколько слов отдельно стоит сказать про файл init.lua Именно он начинает исполнятся после загрузки модуля, и уже из него вызываются все остальные файлы на исполнение.

Точка-доступа и пароль задаются в этой строчке:

wifi.sta.config("YOUR_SSID_NAME", "YOUR_PASSWORD")

Вместо YOUR_SSID_NAME и YOUR_PASSWORD необходимо указать имя точки-доступа и пароль от неё. В моем случае настройки приходят с роутера по DHCP, поэтому ip-адрес здесь не указывается. В настройках роутера я закрепил за есп постоянный адрес.

Для сохранения данных мы будем использовать сервис https://thingspeak.com/

Там необходимо зарегистрироваться и создать канал. В один канал можно записывать сразу несколько показателей, например если помимо температуры мы бы измеряли влажность или что-то еще. Переходим на страницу API Keys и копируем оттуда Write API Key. Этот ключ необходимо вставить в файл application.lua на строчке 36 вместе YOUR_API_KEY

http.get("http://api.thingspeak.com/update?api_key=YOUR_API_KEY&fi..."..t, nil, function(code, data)

Также не забываем загрузить файл ds18b20.lua, в нем содержится логика для работы с датчикам DS18B20. Т.к. прошивку мы взяли integer, а температура является float числом, я этот файлик вероломно поправил для того, чтобы в результате работы возвращалась строка, но с разделителем точкой, как будто у нас есть поддержка работы с дробными числами.

Можно протестировать устройство, подключив датчик через макетную плату.

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

Wi-fi термометр на ESP8266. Часть 1. Собираем датчик температуры воздуха на ESP-01 Сделай сам, Esp8266, Arduino, Электроника, Программирование, Nodemcu, Своими руками, Длиннопост
Wi-fi термометр на ESP8266. Часть 1. Собираем датчик температуры воздуха на ESP-01 Сделай сам, Esp8266, Arduino, Электроника, Программирование, Nodemcu, Своими руками, Длиннопост

После включения устройства у вас в канале на thingspeak должны появиться данные, а также вы должны смочь зайти на ip-адрес, который назначился вашей esp в браузере и увидеть примерно следующее:

{

"sensor-name": "balcony",

"temperature": 20.7500,

"chipID": 170827,

"espMac": "5c:cf:7f:02:9b:4b",

"espIp": "192.168.20.38",

"heap": 32040,

"timerTicks": 835632668

}

Формат выдачи данных вы можете поменять самостоятельно поправив файл application.lua

Финальная сборка устройства

Я запаял все на макетной плате под пайку, такой зеленой, с отверстиями. Стабилизатор питания отдельный, на AMS1117. Питается сейчас от старого БП роутера длинк на 5V, за несколько месяцев ESP ни разу не зависла. Жду пока приедут антенна и приемник катушки (ну когда же уже!!!!!), для того, чтобы питать датчик за окном без проводов. Ковырять и сверлить стеклопакеты на утепленном балконе не хочу.

Wi-fi термометр на ESP8266. Часть 1. Собираем датчик температуры воздуха на ESP-01 Сделай сам, Esp8266, Arduino, Электроника, Программирование, Nodemcu, Своими руками, Длиннопост
Wi-fi термометр на ESP8266. Часть 1. Собираем датчик температуры воздуха на ESP-01 Сделай сам, Esp8266, Arduino, Электроника, Программирование, Nodemcu, Своими руками, Длиннопост

Заключение

Вот мы и закончили с вами наш температурный датчик. Все исходники файлов можно скачать на github. https://github.com/nossSpb/nodemcu-ds18b20-tutorial/tree/mas... Осталось все это дело упаковать в герметичный корпус и повесить за окно. Помимо текущих показаний, мы также имеем историю измерений в облаке на thingspeak, и тоже можем с ней работать. Об этом я расскажу в следующей части. Делитесь своими идеями в комментариях, задавайте вопросы. Спасибо что дочитали до конца.

Показать полностью 14
[моё] Сделай сам Esp8266 Arduino Электроника Программирование Nodemcu Своими руками Длиннопост
27
113
return.true
8 лет назад
Arduino & Pi

Wi-fi термометр на ESP8266. Часть 0. Подготовительная.⁠⁠

Привет, пикабу!

Все началось с того, что у меня уже довольно давно лежал чип ESP-01, один из самых первых, что появился на али. Очень долго до него не доходили руки, но наконец дошли. В предстоящей серии публикаций расскажу подробно о каждом этапе. Этой серией постов надеюсь разжечь интерес аудитории к микроконтроллерам и программированию, а также побудить повторить мой опыт. Видео не будет, будет много текста и картинок.

Wi-fi термометр на ESP8266. Часть 0. Подготовительная. Сделай сам, Esp8266, Arduino, Электроника, Программирование, Nodemcu, Своими руками, Длиннопост

На картинке изображен модуль из второй части, который показывает текущие дату\время, показания датчика (датчик пока находится внутри квартиры)

Краткое содержание будущих частей:

Часть 1: Датчик на ESP-01 с беспроводным питанием за окно и температурным датчиком DS18B20. По шагам соберем с вами устройство, зальем прошивку, разберемся с esptool, ESPlorer, научимся сохранять данные в облако, а также показывать показания в браузере компьютера.


Часть 2: Модуль Wemos D1. Подключим экранчик через I2C, cделаем вывод показаний температуры с датчика на экран, соберем прошивку, сделаем синхронизацию времени через интернет, обсудим работу при потере интернет соединения.


Часть 3: Приложение под android. Установим android studio, сделаем приложение с одной activity, которое будет показывать температуру с нашего датчика.

Wi-fi термометр на ESP8266. Часть 0. Подготовительная. Сделай сам, Esp8266, Arduino, Электроника, Программирование, Nodemcu, Своими руками, Длиннопост

На картинке изображен собранный ESP-01 в монтажной коробке, в финальной версии корпус изменился.

Часть 0. Вступительная. Что же такое ESP8266?

ESP8266 — микроконтроллер китайского производителя Espressif с интерфейсом Wi-Fi. Именно наличие wi-fi отличает данный контроллер от более известного и широко распространенного arduino. Да, многие, скажут, что к arduino возможно подключить соответствующий шилд, но зачем, если в данном микроконтроллере он встроен?


Существует множество модификаций данного чипа. В наших статья речь пойдет о подключении чипа ESP-01 и ESP-8266EX уже собранного с обвязкой от проекта wemos.cc (изображен на первой картинке)

Wi-fi термометр на ESP8266. Часть 0. Подготовительная. Сделай сам, Esp8266, Arduino, Электроника, Программирование, Nodemcu, Своими руками, Длиннопост

На картинке изображены разные типы модулей ESP8266

С помощью данного чипа можно самому создать управляемые через wi-fi различные устройства: датчики температуры, света, давления; управляемые через интернет лампочки или розетки, - спектр применения очень широк. Если вы хотите в модный ныне IoT (internet of things), то с помощью данного чипа легко начать. Именно поэтому данные чипы так полюбились diy-мастерам по всему миру.

Буду рад ответить на вопросы в комментариях, конструктивная критика приветствуется. Как говорится, подписывайтесь чтобы не пропустить.

Всем спасибо.

Показать полностью 3
[моё] Сделай сам Esp8266 Arduino Электроника Программирование Nodemcu Своими руками Длиннопост
51
22
techn0man1ac
techn0man1ac
9 лет назад

ESP8266 прошивка, программирование в Arduino IDE⁠⁠

Тема ESP8266 — довольно таки непростая. Но, если работать с этими Wi-Fi модулями в среде разработки Arduino IDE — порог вхождения опускается до приемлемого для обычного ардуинщика уровня. Да и не только ардуинщика, а любого человека, у которого есть желание сварганить что-то по теме IoT(интернет вещей), причём не затрачивая много времени читая документацию для микросхемы и изучение API для этих модулей. 


By MrПоделкинЦ


P.S. Предыдущий пост по этой теме:

http://pikabu.ru/story/esp8266_i_arduino_podklyuchenie_raspi...
Показать полностью
[моё] Esp8266 Прошивка Программирование Arduino IDE Arduino Iot Интернет вещей Видео
5
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии