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

Дурак подкидной и переводной

Карточные, Настольные, Логическая

Играть

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

  • solenakrivetka solenakrivetka 7 постов
  • Animalrescueed Animalrescueed 53 поста
  • ia.panorama ia.panorama 12 постов
Посмотреть весь топ

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

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

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

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

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
83
return.true
Arduino & Pi

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

8 лет назад

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

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

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

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


LCD VCC - NodeMCU 5V

LCD GND - NodeMCU GND

LCD SCL - NodeMCU D1

LCD SDA - NodeMCU D2

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

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

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

Прошивку будем заливать с помощью 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() получение показаний с датчика локально, на случай если пропал интернет.

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


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

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


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

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

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

8 лет назад

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

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

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

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

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

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

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

«Напрямую» к питанию подключается только вывод 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/ мы можем собрать собственную версию прошивки только с теми модулями, которые нам нужны. Чем меньше модулей будет в прошивке, тем больше места останется для ваших данных и скриптов.

Заполняем 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 Скачиваем билд в зависимости от вашей операционной системы.

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

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

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

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

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

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

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

Логика работы датчика очень проста: после загрузки подключаемся к 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 числом, я этот файлик вероломно поправил для того, чтобы в результате работы возвращалась строка, но с разделителем точкой, как будто у нас есть поддержка работы с дробными числами.

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

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

После включения устройства у вас в канале на 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 ни разу не зависла. Жду пока приедут антенна и приемник катушки (ну когда же уже!!!!!), для того, чтобы питать датчик за окном без проводов. Ковырять и сверлить стеклопакеты на утепленном балконе не хочу.

Заключение

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

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

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

8 лет назад

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

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

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

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

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


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


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

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

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

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


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

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

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

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

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

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

NodeMCU первое подключение и добавление плат в Arduino IDE⁠⁠

8 лет назад
[моё] Nodemcu Esp8266 Arduino Видео
4
218
kitsel
kitsel

WiFi термометр своими руками⁠⁠

8 лет назад
WiFi термометр своими руками

Все питается от пяти вольт, то-есть от любой USB зарядки. При соответствующей настройке WiFi роутера градусник доступен в браузере как из домашней сети, так и из Интернет.
Потребуется сама платка NodeMCU

Датчик температуры DS18B20

Резистор 4.7 кОм

Все собирается как на схемке, после чего nodemcu можно подключить к usb компьютера открыть на нем arduino ide и загрузить скетч.
Все с алиэкспреса мне обошлось дешевле 250 рублей
скетч для arduino ide http://kitsel.ru/archives/wifi-thermometer-nodemcu-arduino-i...

Arduino IDE https://www.arduino.cc/en/Main/Software

Показать полностью 1
[моё] Термометр Nodemcu Своими руками Сделай сам Видео
60
193
ProstoBrat
ProstoBrat
Arduino & Pi

WIFI часы на светодиодной матрице с бегущей строкой погоды⁠⁠

8 лет назад

Здесь нет модуля точного времени, нет даже кнопок для настроек, просто nodeMCU и экран, т.е. светодиодная матрица, тем не менее это устройство пoказывает время и очень точно.

В этом варианте часов получаем время из интернета с сайта google, а так-же погоду в формате JSON, которая отображается бегущей строкой. Используем подключение по WIFI. Матричный модуль 32x8 MAX7219 подключен к NodeMCU (ESP826) по интерфейсу SPI.

Подключаем питание и какое-то время ничего не происходит, а это потому что наш NodeMCU соединяется по интернету с сервисами google и сервисами погоды. После того как время получено с сайта google в течении 15 секунд показывает точное время, далее пробегает бегущая строка. Помимо погоды, бегущей строкой можно отобразить любой текст русскими буквами, какую-нибудь поздравлялку, например.

Для отображения русских букв, библиотека Adafruit-GFX слегка модифицирована, она находится в архиве вместе со скетчем и другими необходимыми библиотеками. Качаем тут: https://yadi.sk/d/8H52USAeyg3Ux


И наконец видео по статье:

Показать полностью 2 1
[моё] Nodemcu Esp8266 Max7219 Wifislax Часы Видео Длиннопост
25
91
ProstoBrat
ProstoBrat
TECHNO BROTHER

Светильник управляемый со смартфона на android по Wi-Fi⁠⁠

9 лет назад

Ну бывает же лень просто встать, чтобы дотянуться до светильника, или даже до пульта своего чертовски умного дома, чтобы скажем изменить оттенок освещения. А спорим смартфон уж точно в зоне досягаемости)

Делаем светильник, управляемый со смартфона по WIFI, да еще и по протоколу UDP.

Что дает UDP протокол в управлении какой-то там лампой? А вот что: предположим  такой светильник не один, и все реализованы по разному, но управляются по UDP, становиться возможным с одного пульта, никак особо не заморачиваясь, синхронно управлять всем сразу!

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

Светильник управляемый со смартфона на android по Wi-Fi

Для работы приложения необходимо установить UDP Sender https://play.google.com/store/apps/details?id=com.hastarin.a...

скетч, android приложение и схему соединений качаем по ссылке: https://yadi.sk/d/SB5EUvHxvLe5N

Показать полностью 1
[моё] Управление по wifi Nodemcu Led Светодиоды Видео
12
17
ProstoBrat
ProstoBrat
Arduino & Pi

UDP в MIT App Inventor 2 на примере программы управления роботом⁠⁠

9 лет назад

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

Для таких целей существует протокол UDP, но для людей мало знакомых с android studio и прочими средами разработки android приложений, использующих визуальное программирование на пример в MIT App Inventor 2 от google, нет возможности использовать преимущество протокола UDP из визуального редактора. Но выход есть и для них - использовать возможность вызова служб и приложений в android.

На пример установив приложение UDP Sender из Play market, в android появится служба отправки UDP пакетов, которую можно вызвать из другого приложения, даже "написанного" в визуальном редакторе.

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

Для UDP Sender приведу пример отправки UDP пакета с содержимым "send" на IP адрес 192.168.1.200 и порт 8888 из визуального редактора MIT App Inventor2.

Тут при нажатии "Кнопка2" пакет уйдет.

Более подробно, в том числе о скетче для arduino IDE для приема пакетов и исполнении команд смотрим в видео https://www.youtube.com/watch?v=QoNQS12oFFY

P.S. привожу ссылку на видео, по скольку прикрепить видос к посту не хватает кармы))

Показать полностью 3
[моё] Mit App Inventor Nodemcu Управление роботом по UDP Esp8266 Android Длиннопост
2
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии