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

Симулятор войны: 1985

Мидкорные, Стратегии, Симуляторы

Играть

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

  • SpongeGod SpongeGod 1 пост
  • Uncleyogurt007 Uncleyogurt007 9 постов
  • ZaTaS ZaTaS 3 поста
Посмотреть весь топ

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

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

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

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

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

E-Learning. Часть 3. Blender. Визуализируем данные с гироскопа⁠⁠

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


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


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


В этой статье я опишу один из способов визуализации данных из COM порта. Рассматривать буду на примере визуализации изменения ориентации платформы для 3х-осевого гироскопа и 3х-осевого акселерометра (далее просто гироскоп, для простоты). У меня это GY-BMI160, у Вас может быть любой другой, главное, чтобы Arduino отправляла данные в формате: “gx,gy,gz,ax,ay,az”.

E-Learning. Часть 3. Blender. Визуализируем данные с гироскопа Blender, Gyro, Визуализация, Arduino, Esp8266, Nodemcu, Длиннопост

Рис. 1. 3D модель платформы гироскопа. Основная цель – чтобы повороты нашей модели соответствовали поворотам физического гироскопа. В этой статье мы научим Blender принимать данные по COM порту.

В этой статье мы НЕ будем рассматривать следующие вещи:

1. Как подключить визуализацию нескольких датчиков, которые посылают информацию по одному COM порту.

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

3. Методы фильтрации данных (Фильтр Калмана, комплементарный фильтр, комплементарный фильтр второго порядка, фильтр Маджвика, получение углов из данных гироскопа, получение углов из данных акселерометра, получение углов из магнитометра и прочее).


Что будет в этой статье:

1. Как начать управлять мощной средой визуализации Blender. (Processing не столь серьезно).

2. Как настраивать Python в Blender.

3. Какие существуют подводные камни, связанные строго с Blender.


В начале хочется привести несколько причин, почему выбран именно Blender:

1. Он бесплатен.

2. Он не специфичен и используется при разработке игр, анимации, 3D моделировании как профессиональный инструмент. И как следствие по нему очень много материала и открытое сообщество.

3. Он использует Python 3. Если с Processing вы выучите язык программирования и больше нигде он не будет применим, то Python широко распространённый язык программирования. Если Вы его знаете – учить практически ничего не надо будет, если нет – то это знание гарантированно пригодится вновь.


Первое что делаем – качаем Blender с официального сайта www.blender.org. Ставим его. Откроется окно с заставкой, кликаете по свободному месту и увидите куб. Примерно как на картинке.

E-Learning. Часть 3. Blender. Визуализируем данные с гироскопа Blender, Gyro, Визуализация, Arduino, Esp8266, Nodemcu, Длиннопост

Первый подводный камень, Ваша видеокарта. Наводим мышкой на куб, нажимаем на колесико мыши и крутим влево-вправо. Если все хорошо, то это будет быстро. Если нет, то картинка будет менять раз в 2-5 секунд.

Как решается? Либо драйвера видеокарты слишком старые, либо слишком новые и не обкатанные. У меня оказались слишком новые на Windows 10 64x.


Заходим в диспетчер устройств – видеоадаптеры – смотрим какие у Вас стоят. Переходим на сайт производитель и у них обычно есть архивные драйвера как раз на такие случаи. Качаем-ставим.


Второй подводный камень. Внутренний Python блендера создатели посчитали самодостаточным и туда нельзя поставить новые библиотеки, например, нужную нам PySerial.

Решаем так:

E-Learning. Часть 3. Blender. Визуализируем данные с гироскопа Blender, Gyro, Визуализация, Arduino, Esp8266, Nodemcu, Длиннопост

Смотрим какая версия питона установлена.

E-Learning. Часть 3. Blender. Визуализируем данные с гироскопа Blender, Gyro, Визуализация, Arduino, Esp8266, Nodemcu, Длиннопост

Вариант 1:

Ставим в скаченный питон все что нам нужно (как это сделать я тут не буду расписывать, это стандартная процедура). Нам нужна библиотека PySerial.


Вариант 2:

Находим папку с нужной библиотекой, например, на GitHube (https://github.com/pyserial/pyserial).

Из появившейся папки в Scripts/serial или просто скаченную папку необходимо скопировать блендеру в C:\Program Files\Blender Foundation\Blender\2.78\python\lib.

Переходим в консоль Python Blender’а и проверяем. Пишем import serial.

Если не ругается – то все хорошо установлено.


Третий подводный камень:

COM порт передающий данные по проводу и по Bluetooth устройству могут иметь разное поведение после закрытия порта. Чуть подробнее далее.


Первая команда – это s = serial.Serial('COM1', 9600)

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

Следите за скоростью. Я, например, разгонял частоту работы датчика, ставил 250 000 БОД и забывал, что блендер ожидает 9600.

Чтобы последовательно считывать данные нужна команда s.readline().

На выходе мы имеем байт-строку формата “b’gx,gy,gz,ax,ay,az\n”.


Важно! Подключите библиотеку Re и разберитесь в ней. Про это мы не будем тут говорить, но пару полезных вещей коснемся. import re (к счастью стандартная библиотека).


Для начала подготовим для обработки её и переведем в строковый формат:


line = s.readline()

line2 = str(line)

Далее используем функцию sp = re.split('[^0-9.-]+', line2)


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


Можно теперь обращаться так: sp[1]-sp[6] – наши значения, первый и последний элементы будут пустыми.


Затем для того, чтобы использовать данные в своих расчётов – просто задайте им нужный тип. float(sp[1]) – даст нужное число.


В конце обязательно закрывайте порт. s.close(). Иначе никто больше к нему не подключиться, Arduino IDE будет говорить, что порт занят уже кем-то.


Ссылка на файл с кодом https://yadi.sk/d/-Jwmt1Qw3MvqJa

В начале запустить Game Engine. Потом нажимаете на англ. раскладке "P". Затем используете клавиши: "O" - открыть порт, "R" - начать чтение данные, "C" - закрыть порт (это важно!), ESC - выйти из режима Game Engine.


Прошлые части:

0: E-Learning. Образовательная робототехника. Часть 0. Вступление

https://pikabu.ru/story/elearning_obrazovatelnaya_robototekh...

1: Часть 1. В общем о визуализации данных в Blender и Unity

https://pikabu.ru/story/chast_1_v_obshchem_o_vizualizatsii_d...

2: E-Learning. Образовательная робототехника. Часть 2. Эволюция костюмов

https://pikabu.ru/story/elearning_obrazovatelnaya_robototekh...

Показать полностью 4
[моё] Blender Gyro Визуализация Arduino Esp8266 Nodemcu Длиннопост
23
Sways127
Sways127
8 лет назад

Здраствуйте! Заказал в китае node mcu v3.⁠⁠

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

Здраствуйте! Заказал в китае node mcu v3. Nodemcu, Электроника, Помощь

И котик

Здраствуйте! Заказал в китае node mcu v3. Nodemcu, Электроника, Помощь

Для минусов внутри.

Показать полностью 2
Nodemcu Электроника Помощь
19
171
electrobesom
electrobesom
8 лет назад
Arduino & Pi

Радионяня с термометром и гигрометром на Esp8266 и Android⁠⁠

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

У меня пару недель назад родились сразу две удивительные дочки, Василиса и Варвара:) Я от них просто без ума, они потрясающие! :) Но! Даже самому безумному папке нужно иногда отойти от кроваток своих дочурок,  сделать домашние дела, подключиться по vpn на работу или просто пойти и выкинуть мусор, пока любимая жена в душе.

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

Радионяня!

Ок!

(Можно смириться с ебучей ценой за трехсотенный девайс и не читать дальше)

Но это не наши методы, правда?

Пикабушник, ты видел цены на два куса пластика с тремя транзисторами внутри? Я чутка потерялся, буду честен. Всё, что имеет приставку "детское", почему то и цену имеет неоправданно завышенную. Не буду далее томить.

Я сделал радионяню на датчике звука от ардуино, присовокупил датчик температуры/влажности, и всё это мониторю по домашнему WiFi на любом Android-устройстве.

В настройках можно изменить адрес, где слушает esp, и время опроса.

Радионяня с термометром и гигрометром на Esp8266 и Android Моё, Arduino, Nodemcu, Ky-038, Android, Dht22, Esp8266, Автоматизация, Длиннопост

Итак, что мы имеем. Два устройства, смартфон и nodemcu с датчиками.

Алгоритм простой, nodemcu подключается к домашнему вайфаю, открывает там сервер, и вещает на нем данные от датчиков. Андроид-смартфон получает данные, выводит их на экран и если данные от датчика звука превышают порог - меняет цвет фона экрана и пищит.

Код для esp простейший:

#include <ESP8266WiFi.h>
#include "DHT.h"
#define DHTPIN 5
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
const char *ssid = "wlan;
const char *pass = "pass";
WiFiServer server(80);
IPAddress ip(192,168,1,128);
IPAddress gateway(192,168,1,1);
IPAddress subnet(255,255,255,0);
void setup() {
pinMode(A0,INPUT);
Serial.begin(115200);
delay(10);
WiFi.begin(ssid, pass);
WiFi.config(ip, gateway, subnet);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("WiFi connected, using IP address: ");
Serial.println(WiFi.localIP());
server.begin();
dht.begin();
}
void loop() {
WiFiClient client = server.available();
if (!client) {
return;
}
while(!client.available()){
delay(1);
}
delay(3000);
float h = dht.readHumidity();
float t = dht.readTemperature();
int s = analogRead(A0);
String req = client.readStringUntil('\r');
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println("");
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<head></head><body>");
client.print(t);
client.print(":");
client.print(h);
client.print(":");
client.print(s);
client.println("</body></html>");
delay(1);
client.stop();
}

Исходники для андроида можно взять на гитхабе

https://github.com/antsharapov/ArduinoBabyMonitor

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

Радионяня с термометром и гигрометром на Esp8266 и Android Моё, Arduino, Nodemcu, Ky-038, Android, Dht22, Esp8266, Автоматизация, Длиннопост

Датчик звука у меня KY-038.

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

Скетч, схема, и андроид-приложение были написаны за время обеденного перерыва, позднее был отлажен только уровень датчика звука.


Спасибо за внимание, надеюсь быть полезным.

Показать полностью 2
[моё] Моё Arduino Nodemcu Ky-038 Android Dht22 Esp8266 Автоматизация Длиннопост
64
105
ALEXey1957
ALEXey1957
8 лет назад

Поливаем домашний цветок, из любой точки мира, где есть Интернет⁠⁠

Доброго времени суток, друзья! Началась пора отпусков, а это значит, что пора уезжать отдыхать. Но, если есть домашнее растение(я), тогда придется кого-то просить, чтобы приглядели за ним. Одним февральским вечером я вспомнил об этой проблеме и подумал, что было-бы неплохо собрать такую систему, при помощи которой я мог бы сам, откуда угодно, ухаживать за своим растением. Вот что из этого получилось. Кого заинтересовало, прошу, за подробностями, под кат)

Поливаем домашний цветок, из любой точки мира, где есть Интернет Nodemcu, Arduino, Схемотехника, Цветы, Видео, Длиннопост

Есть у нас цветок, зовут его Димасик (не спрашивайте почему, долгая история). У нас, под раковиной, есть фильтр одной известной марки, вот такой:

Поливаем домашний цветок, из любой точки мира, где есть Интернет Nodemcu, Arduino, Схемотехника, Цветы, Видео, Длиннопост

Его шланги имеют диаметр 1/4 дюйма. Воду будем брать с него, с трубки OUT.

Итак, нужные компоненты:
1) Трубка 1\4 дюйма

2) Пару "тройников" на 1/4 дюйма, вот такие:

Поливаем домашний цветок, из любой точки мира, где есть Интернет Nodemcu, Arduino, Схемотехника, Цветы, Видео, Длиннопост

3) Клапан с входным и выходным отверстием 1/4 дюйма, 24V.

4) Node MCU

5) Блок питания на 24V

6) Ардуиновское реле, на 1 канал. Но я, в местном радиомагазине, раздобыл вот такую штуку:

Поливаем домашний цветок, из любой точки мира, где есть Интернет Nodemcu, Arduino, Схемотехника, Цветы, Видео, Длиннопост

Смысл такой же, как и у реле, только управляется "плюсом". И может коммутировать максимум 30V.

7) Преобразователь напряжения 24V-5V

8) Домашний Wi-Fi роутер, с подключенным Интернетом.

Почти все было закуплено на одном китайском сайте, ссылки на компоненты оставлю в комментах.


Ну, что же, приступим. Начнем со сборки электронной части. Собираем все по этой схеме:

Поливаем домашний цветок, из любой точки мира, где есть Интернет Nodemcu, Arduino, Схемотехника, Цветы, Видео, Длиннопост

Что мы видим на этой схеме? От блока питания, на 24V, идет плюс и минус на преобразователь, где на выходе мы получаем плюс и минус 5V, которые в свою очередь идут на питание NodeMCU. NodeMCU, при получении сигнала, через Интернет, дает команду на реле, замкнуть контакты 24V, которыми мы можем открывать/закрывать клапан.

Далее, прошиваем NodeMCU прошивкой (ссылка на гугл диск: https://drive.google.com/open?id=0B_uZrfepraf3X1pEVXZkRVVOU2...). В прошивке нужно вписать название и пароль вашей Wi-Fi сети. Когда прошьете, отключите плату и подключите, с включенным, в Arduino IDE, "окном терминала", там будет указан внутренний IP-адрес. Запомните его, он нам пригодится.

Получается что-то вот такое, клапан тут еще не подключен:  

Поливаем домашний цветок, из любой точки мира, где есть Интернет Nodemcu, Arduino, Схемотехника, Цветы, Видео, Длиннопост

Так, электроника готова. Теперь вода.

Обязательно перекрываем воду! А то не нужен будет вам никакой отпуск, море будет на кухне;) Затем режем вот эту трубку:

Поливаем домашний цветок, из любой точки мира, где есть Интернет Nodemcu, Arduino, Схемотехника, Цветы, Видео, Длиннопост

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

Поливаем домашний цветок, из любой точки мира, где есть Интернет Nodemcu, Arduino, Схемотехника, Цветы, Видео, Длиннопост

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

Поливаем домашний цветок, из любой точки мира, где есть Интернет Nodemcu, Arduino, Схемотехника, Цветы, Видео, Длиннопост

и, уже от клапана, прокладываем трубку к самому цветку. Как поливать цветок из этого шланга? Я решил не изобретать велосипед, и сделал вот так:

Поливаем домашний цветок, из любой точки мира, где есть Интернет Nodemcu, Arduino, Схемотехника, Цветы, Видео, Длиннопост

Это трубка 1\4 дюйма, соединенная, при помощи 2-го тройника, в круг. Снизу, ножом были сделаны отверстия, через которые вытекает вода. Ну, и финальная часть, подключаем клапан к реле, и подаем питание. Буквально через пол минуты NodeMCU загрузится и можно будет открыть ее веб-страницу, открыв, в браузере, IP-адрес, который мы запоминали. Должно появится вот такое окно:

Поливаем домашний цветок, из любой точки мира, где есть Интернет Nodemcu, Arduino, Схемотехника, Цветы, Видео, Длиннопост

Заходим в "Load".

Поливаем домашний цветок, из любой точки мира, где есть Интернет Nodemcu, Arduino, Схемотехника, Цветы, Видео, Длиннопост

Чтобы полить цветок, нужно отправить вот такой запрос:

http://IP-адрес/water?timer=1 (где, вместо 1 подставляем нужное число в секундах)

Т.е., если отправим вот такой запрос:


http://IP-адрес/water?timer=20


тогда вода будет непрерывно литься 20 секунд


http://IP-адрес/water?timer=3600


тогда вода будет непрерывно литься час, представляете, сколько ее выльется, за такое время?


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

Ну, воде бы, на этом все) Хотя стоп, не все. Мы можем поливать из домашней WiFi, а как же Интернет? Да очень просто! Регистрируемся на сайте, который предоставляет услуги DDNS. Получаем адрес. Прописываем его, вместе с логином и паролем в настройки маршрутизатора:

Поливаем домашний цветок, из любой точки мира, где есть Интернет Nodemcu, Arduino, Схемотехника, Цветы, Видео, Длиннопост

Прописываем статические маршруты:

Поливаем домашний цветок, из любой точки мира, где есть Интернет Nodemcu, Arduino, Схемотехника, Цветы, Видео, Длиннопост

Все, теперь открыв, в браузере адрес, который выдал DDNS провайдер, с портом 1957 получаем веб-страницу нашей поливалки)

Ну, и напоследок, самое приятное, видео работы;)

Показать полностью 14 1
[моё] Nodemcu Arduino Схемотехника Цветы Видео Длиннопост
29
6
cozy
8 лет назад

Weather widget на NodeMCU или ESP8266⁠⁠

Отступление

Не люблю смотреть погоду на телефоне и часто забываю сделать это перед выходом из дома. А такой виджет всегда на виду и волей не волей погоду узнаешь.


Захотелось сделать что-то своими руками полезного. На instructables нашелся отличный пост по тому как сделать погодный виджет на базе esp8266 или nodemcu.

На nodemcu проще - плата, oled, 4 провода и готово. На esp8266 сложнее, но и интереснее.

Я сделал оба варианта и добавил кое-что от себя в данный проект: скорость ветра, время рассвета и заката, загруженность дорог.


По ссылке http://www.instructables.com/id/ESP8266-Weather-Widget/ описано все подробно и проблем возникнуть не должно. Сделав все по инструкции мы получим окна с текущей датой и временем, окно с текущей погодой, прогноз на три дня, давление, осадки и влажность.

Единственный момент - в этой инструкции перепутаны SDA и SCL пины. Подключить нужно в обратном порядке.


Чтобы добавить дополнительных экранов нужно:


В коде указать нужное кол-во экранов в переменной и дописать drawFrame{N} в следующем месте:

void (*frameCallbacks[])(int x, int y) = {drawFrame1, drawFrame2, drawFrame3, drawFrame4};

int numberOfFrames = 4;


Далее в программе в соответствующих функциях дополнить своим кодом:

void drawFrame4(int x, int y) {...}


Загруженность трафиком, время рассвета и заката я получал с помощью thingspeak.com

Делал все по этой инструкции: https://www.youtube.com/watch?v=4vKxGHGYOtI


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


Парсил я страницу городского портала. На ней, к слову, было много полезной инфы: курсы валют, погода, погода по ощущению и т.д.


В итоге кусок кода для получения времени рассвета и заката у меня выглядит так:


String sunset()

{

String result;

HTTPClient http;

const char kUrl[] = "api.thingspeak.com";

const char kPath[] = "/apps/thinghttp/send_request?api_key=my_apikey_here";

http.begin(kUrl,80,kPath);

int httpCode = http.GET();

if(httpCode == 200) {

String payload = http.getString();

int i = 0;

while (payload.charAt(i) != ':') // Character before required data starts.

i++;

String sunr = payload.substring(i-2,i+3);

payload = payload.substring(i+2);

int j = 0;

while (payload.charAt(j) != ':') // Character after required data ends.

j++;

String suns = payload.substring(j-2, j+3);

result = sunr+"-"+suns;

}

return (result);

}



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

Weather widget на NodeMCU или ESP8266 Arduino, Esp8266, Nodemcu, Видео, Длиннопост, Погода, Виджет
Weather widget на NodeMCU или ESP8266 Arduino, Esp8266, Nodemcu, Видео, Длиннопост, Погода, Виджет
Weather widget на NodeMCU или ESP8266 Arduino, Esp8266, Nodemcu, Видео, Длиннопост, Погода, Виджет
Weather widget на NodeMCU или ESP8266 Arduino, Esp8266, Nodemcu, Видео, Длиннопост, Погода, Виджет
Weather widget на NodeMCU или ESP8266 Arduino, Esp8266, Nodemcu, Видео, Длиннопост, Погода, Виджет
Weather widget на NodeMCU или ESP8266 Arduino, Esp8266, Nodemcu, Видео, Длиннопост, Погода, Виджет
Показать полностью 6 1
[моё] Arduino Esp8266 Nodemcu Видео Длиннопост Погода Виджет
0
69
teuchezh
teuchezh
8 лет назад
Arduino & Pi

WiFi термометр на ESP-01⁠⁠

Итак, здравствуйте, это мой первый пост

Данные выводящиеся на смарт

WiFi термометр на ESP-01 Esp8266, Arduino, Nodemcu, Длиннопост
WiFi термометр на ESP-01 Esp8266, Arduino, Nodemcu, Длиннопост

В состоянии прототипа (Не пинайте за монтаж)

Использованные модули

WiFi термометр на ESP-01 Esp8266, Arduino, Nodemcu, Длиннопост

ESP-

WiFi термометр на ESP-01 Esp8266, Arduino, Nodemcu, Длиннопост

ESP8266-01

WiFi термометр на ESP-01 Esp8266, Arduino, Nodemcu, Длиннопост

PL2303

Датчик DHT 11 (поговаривают в народе что мерит температуру на Марсе) подключен к ESP через gpio2
Приложение работает через Blynk сгенерированный токен вписывается в скетч
(Использованы виртуальные пины v10 и v11)
_______________
Архив со скетчем и библиотеками: https://yadi.sk/d/hAfvbMWR3JtCfE

________________________

У меня значения прыгают иногда, возможно ли такое поведение из-за датчика или навесного монтажа?
P.S Про качество фото знаю

Показать полностью 5
[моё] Esp8266 Arduino Nodemcu Длиннопост
13
6
archex
8 лет назад

NodeMCU: сначала сломал, потом починил⁠⁠

NodeMCU: сначала сломал, потом починил Ремонт техники, Микроконтроллеры, Esp8266, Nodemcu

Всем доброго времени суток!

Долгожданные модули NodeMCU v3 ко мне наконец прибыли, но радость была недолгой. Во второй же вечер изучения и экспериментов с девайсом произошло довольно неприятное событие: подключенный шнурком к компьютеру модуль, по причине врождённого рукожопия, был смахнут со стола на системник и упал на него плашмя ногами вниз. В наушниках прозвучал грустный звук извлечения устройства USB.


Попытки переподключить шнурок и тыкание кнопок Reset и Flash на модуле ни к чему не привели. Пришлось констатировать смерть железяки и распаковать следующую. Через некоторое время руки все же дошли и до “трупа”, интересно же.


Попробовал подключить к пинам 3.3v и GND питание напрямую и, чудо, синий светодиодик радостно мигнул и даже маленький http-сервер заработал. Следовательно, проблема только в питании через USB. Достаем мультиметр и поехали.


В первую очередь, проверил напряжение на стабилизаторе (AMS1117). Между VIN и землей около 2 вольт. Маловато. Идем дальше. Находим, судя по всему, диод с маркировкой S4, проверяем мультиметром, вроде целый. Что же еще может быть?... Вновь подключаем USB-шнурок и щупаем плату пальчиком. А диод-то греется! Судя по всему, виновник найден.


И как определить, какой точно это элемент? Но это же NodeMCU, открытая платформа, идем на github, находим схему: https://github.com/nodemcu/nodemcu-devkit-v1.0/blob/master/N...


Находим раздел POWER и написано там следующее: 1N5819/SS14/S4(SOD_323).


То есть, нужен любой диод Шоттки с характеристиками “похожими” на 1N5819 (не на 1А, конечно же) в корпусе SOD-323. В наличии в городе нашел только такой аналог: BAT54WS-E3-08, Диод Шоттки 0.2А 30В [SOD-323].


С трудом перепаял диод обычным паяльником, получилось не очень аккуратно, но работает же! =) Перепаянный виновник на фото над пинами GND и RST.


PS: надеюсь, что мой опыт поможет кому-нибудь, кто столкнулся с такой же проблемой.

Показать полностью 1
[моё] Ремонт техники Микроконтроллеры Esp8266 Nodemcu
5
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
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии