Кстати не у всех простых датчиков 3/4 ноги. Вот у такого микрофона на max9814 5 ног, но выдаёт он аналоговый сигнал. А ещё этот микрофон работает лучше всех остальных, так что если вам нужен микрофон, покупайте его.
#железки (точно не помню, есть такой хэштег или нет. Значит будет)
#железки (точно не помню, есть такой хэштег или нет. Значит будет)
!!ОБНОВЛЕНО!!
Внимание!Объявляется конкурс на лучший ардуино(авр, есп, стм, рп2040) проект!
Условие: подписаться на этот канал и прислать в комментарии, а лучше в чат код, а ещё желательно инструкцию и схему (можно на бумажке нарисовать). В воскресенье на следующей неделе объявлю 2 победителей — одного выберу сам, а второго голосованием. Присылать можно до пятницы.
А в подарок будет скан этой недоподделки с фотографии и доработка прошивки мной.
П. С. Премиум не просите, у меня самого нет
ДОПОЛНЕНИЕ: если нет своего проекта, можно повторить чужой. Но желательно качественно. А если вообще ничего нет, можно предложить идею
Внимание!Объявляется конкурс на лучший ардуино(авр, есп, стм, рп2040) проект!
Условие: подписаться на этот канал и прислать в комментарии, а лучше в чат код, а ещё желательно инструкцию и схему (можно на бумажке нарисовать). В воскресенье на следующей неделе объявлю 2 победителей — одного выберу сам, а второго голосованием. Присылать можно до пятницы.
А в подарок будет скан этой недоподделки с фотографии и доработка прошивки мной.
ДОПОЛНЕНИЕ: если нет своего проекта, можно повторить чужой. Но желательно качественно. А если вообще ничего нет, можно предложить идею
А теперь коротко про вайфай в еспшках.
1. Режим АР — точка доступа от самой еспшки, запускается так:
П. П. С. Т.к. я выздоровел, мне надо ходить в школу, и уроки тут будут выходить реже
#вифи
#espшки
#уроки
1. Режим АР — точка доступа от самой еспшки, запускается так:
WiFi.mode(WIFI_AP); // настройка режима вифи2. Подключение к роутеру, режим STA:
WiFi.softAP("ssid", "pass"); // имя и пароль точки доступа
Serial.begin(115200); // открываем портП. С. Скоро будет интересный урок про вифи!
WiFi.mode(WIFI_STA); // настройка режима вифи. Тут необязательно
WiFi.begin("ssid", "pass"); // ssid и пароль от роутера
while(WiFi.status() != WL_CONNECTED) { // если не подключились, пишем в порт .
delay(500);
Serial.print(".");
}
Serial.println(WiFi.localIP()); // вывод айпи адреса
П. П. С. Т.к. я выздоровел, мне надо ходить в школу, и уроки тут будут выходить реже
#вифи
#espшки
#уроки
И кстати у меня появился ещё один чат(https://yangx.top/arduinki_esp_chat). Туда всякие проблемы и проекты присылать можно. И поговорить
П. С. Скоро пятница, пока что есть3,5 4,5 проекта. Осталось 2 1 0 дня
П. С. Скоро пятница, пока что есть
Вот проекты.
1. Светодиодный куб
2. Эффект на адресной ленте
3. Радар на лазерном дальномере
4. Гирлянда Гайвера (которая твинкли)
П. С. В четвёртом нет фотографии, но проект вроде собран. Гирлянда твинкли (гайверовская версия)
вроде если я правильно понял, то это то видео
1. Светодиодный куб
2. Эффект на адресной ленте
3. Радар на лазерном дальномере
4. Гирлянда Гайвера (которая твинкли)
П. С. В четвёртом
вроде если я правильно понял, то это то видео
Тут голосование
Anonymous Poll
47%
Куб
24%
Эффект на адресной ленте
47%
Радар на лазерном дальномере
18%
Гирлянда Гайвера
35%
Автополив (идея)
Короче на всякий случай ещё немного подождал с результатами, но теперь точно всё.
1. Радар на лазерном дальномере (голосование)
2. Куб из диодов (т.к. его сложно делать)
П. С. Кстати я опять заболел, так что дописание прошивки откладывается
1. Радар на лазерном дальномере (голосование)
2. Куб из диодов (т.к. его сложно делать)
П. С. Кстати я опять заболел, так что дописание прошивки откладывается
А теперь расскажу про условия.
Чтобы код выполнялся в зависимости от каких-то данных, есть условия. Это работает так:
&& — И. Можно использовать and
|| — ИЛИ. Можно использовать or
== — равно
! — меняет 0 на 1 и наоборот.
Кстати. Скобку лучше писать на той же строке, где иф/else/объявление функции. Так код будет занимать меньше строчек.
А ещё в конце каждой строки(если она не пустая и не заканчивается { или } ) надо писать ;
#начало
#уроки
Чтобы код выполнялся в зависимости от каких-то данных, есть условия. Это работает так:
bool a = 1, b = 0;Кроме иф ещё есть else
if (a) { // выполнится, если а = 1. Если бы а была типа инт, то выполнится и от любого другого числа (в том числе отрицательного), кроме 0
// что-то сделать
}
if (!b) { // выполнится, если б = 0
// что-то сделать
}
if (a && b) { // выполнится, если и а, и б = 1
// что-то сделать
}
if (a || b) { // выполнится, если а или б равны 1
// что-то сделать
}
bool a;Проще говоря внутри скобок пишется переменная или выражение. Можно использовать операторы:
if (a) {
// не выполнится
} else { // если !a
// выполнится
}
&& — И. Можно использовать and
|| — ИЛИ. Можно использовать or
== — равно
! — меняет 0 на 1 и наоборот.
Кстати. Скобку лучше писать на той же строке, где иф/else/объявление функции. Так код будет занимать меньше строчек.
А ещё в конце каждой строки(если она не пустая и не заканчивается { или } ) надо писать ;
#начало
#уроки
А теперь коротко про циклы.
Иногда бывает надо сделать много ± одинаковых команд. Чтобы не писать каждую вручную, есть циклы. Они бывают 3 видов, но обычно используют два.
1. Цикл while
ВНИМАНИЕ: если значение в скобках не меняется и не станет равным 0, цикл не завершится!!!
2. Цикл for
(объявление переменной; условие выполнения; изменение переменной)
Всё части необязательны, но ; должны быть. Например
(;i < 10;)
Внимание: если используется переменная, она должна быть объявлена!
3. Цикл do
Кстати ещё напишу про операторы:
>, < тут понятно
>= больше или равно
<= меньше или равно
++ плюс 1
-- минус 1
Дополнение:
a++ — к а просто прибавится 1 и вернётся старое значение
++a — к а прибавится 1 и вернётся новое значение
П. С. Скоро выйдет большой урок про сервер на есп!
#начало
#уроки
Иногда бывает надо сделать много ± одинаковых команд. Чтобы не писать каждую вручную, есть циклы. Они бывают 3 видов, но обычно используют два.
1. Цикл while
bool s = 1; // есть переменнаяВ скобках пишется любое выражение. Проще говоря, это иф, но пока выражение ==1, он циклично выполняется.
while (s) { // пока она ==1
s = digitalRead(3); // считывать её значение
}
ВНИМАНИЕ: если значение в скобках не меняется и не станет равным 0, цикл не завершится!!!
2. Цикл for
for (int i = 0; i < 10; i++) {Тут в скобках есть три части, которые разделяются ;
// тут можно что-то делать
}
(объявление переменной; условие выполнения; изменение переменной)
Всё части необязательны, но ; должны быть. Например
(;i < 10;)
Внимание: если используется переменная, она должна быть объявлена!
3. Цикл do
bool s = 0;Этот цикл почти while, но выполнится 1 раз даже если выражение в скобках изначально == 0.
do {
s = digitalRead(3);
} while(s);
Кстати ещё напишу про операторы:
>, < тут понятно
>= больше или равно
<= меньше или равно
++ плюс 1
-- минус 1
Дополнение:
a++ — к а просто прибавится 1 и вернётся старое значение
++a — к а прибавится 1 и вернётся новое значение
П. С. Скоро выйдет большой урок про сервер на есп!
#начало
#уроки
server.ino
5.4 KB
А вот и сервер на есп. Здесь подробно объяснять не буду, в прошивке есть комментарии. Потом напишу как делать html, но если посмотреть, наверное можно продолжить по аналогии. Схема простая. Диод подключается к D4, SDA дисплея к D2, SCL к D1. До этого была кнопка, но она себя нестабильно ведёт. Поэтому вместо неё останется просто для примера отправка 1
А теперь как этим пользоваться.
1. Сначала надо включить монитор порта и поменять скорость с 9600 на 115200
2. Потом надо перезагрузить вемос. На экране будут точки, а потом появится айпи адрес
3. Его надо вбить в браузер
4. Должен появиться интерфейс
5. Всё. Можно управлять диодом и дисплеем
#уроки
#вифи
#espшки
А теперь как этим пользоваться.
1. Сначала надо включить монитор порта и поменять скорость с 9600 на 115200
2. Потом надо перезагрузить вемос. На экране будут точки, а потом появится айпи адрес
3. Его надо вбить в браузер
4. Должен появиться интерфейс
5. Всё. Можно управлять диодом и дисплеем
#уроки
#вифи
#espшки
А сейчас коротко про библиотеки.
Иногда в проекте используются сторонние железки, работать с которыми сложно, или другие сложные штуки(вифи, веб интерфейс и другое). К счастью, хорошие люди написали всё это за нас. Нам остаётся скачать файл и подключить. Скачивается разными способами:
1. Автоматически. Надо зайти в менеджер библиотек (ctrl + shift + i), написать название и нажать скачать.
2. Вручную. Скачивается архив и распаковывается в
C:\Program Files\Arduino\libraries
Или можно в приложении нажать добавить .zip библиотеку
В прошивке это выглядит так:
П. П. С. Библиотеки можно делать самим, но это уже совсем другая история
#уроки
#ардуиноиде
#начало
Иногда в проекте используются сторонние железки, работать с которыми сложно, или другие сложные штуки(вифи, веб интерфейс и другое). К счастью, хорошие люди написали всё это за нас. Нам остаётся скачать файл и подключить. Скачивается разными способами:
1. Автоматически. Надо зайти в менеджер библиотек (ctrl + shift + i), написать название и нажать скачать.
2. Вручную. Скачивается архив и распаковывается в
C:\Program Files\Arduino\libraries
Или можно в приложении нажать добавить .zip библиотеку
В прошивке это выглядит так:
#include <GyverHub.h> // в скобках пишется название библиотеки и в конце .h Компилятор ищет библиотеку в папке с библиотекамиП. С. Много хороших библиотек написал Гайвер. В поиске менеджера библиотек можно написать Gyver и посмотреть. Ещё можно посмотреть на сайте Гайвера.
#include "testlib.h" // если в кавычках — сначала компилятор ищет библиотеку в папке с проектом, а потом в папке с библиотеками
П. П. С. Библиотеки можно делать самим, но это уже совсем другая история
#уроки
#ардуиноиде
#начало
А сейчас вы узнаете, что такое гайверхаб и как им пользоваться.
Иногда бывает надо управлять железками удалённо, но заморачиваться с самостоятельной реализацией не хочется. Или просто надо управлять чем-то из интернета. Для этого Гайвер сделал гайверхаб.
1. Структура программы
В сетупе подключается вифи, настраивается mqtt, запускается хаб и подключается билдер:
В нём настраиваютя компоненты и записываются значения в переменные. Билдер обычно делают перед сетупом
b.Название(параметры);
Ещё параметры можно задавать в цепочку, как в прошлом пункте
.size(x) — размер виджета в долях
.label(s) — подпись к виджету
.color(c) — цвет
.attach(&flg) — подключить флаг
.attach(func) — подключить функцию
Все виджеты описывать не буду, есть документация
4. Установка
Надо зайти на гитхаб, тыкнуть на old, переключить. на dev, потом code и download zip. Скачается архив с библиотекой. Потом надо зайти в скетч->подключить библиотеку->добавить .zip библиотеку, выбрать файл гайверхаба и подождать.
Ещё надо установить другие библиотеки, всё подробно расписано там.
5. Документация
https://github.com/GyverLibs/GyverHub/wiki
Там написано как пользоваться гайверхабом. Хоть там и про старую версию, но некоторые вещи пересекаются. А вообще рекомендую посмотреть примеры
Это далеко не всё, так что будет ещё один хэштег #гайверхаб
П. С. Чё-то в последнее время я на процессинге много кодить стал, так что предлагайте идеи, что на нём можно сделать (процессинг — это как ардуино, но на компьютере)
П. П. С. Гайверхаб работает не только с еспшками, но это уже совсем другая история
П. П. П. С. Спойлер: возможно скоро будет автополив и машинка на управлении по вифи
#уроки
#вифи
#espшки
#библиотеки
Иногда бывает надо управлять железками удалённо, но заморачиваться с самостоятельной реализацией не хочется. Или просто надо управлять чем-то из интернета. Для этого Гайвер сделал гайверхаб.
1. Структура программы
В сетупе подключается вифи, настраивается mqtt, запускается хаб и подключается билдер:
hub.mqtt.config("test.mosquitto.org", 1883);2. Билдер
hub.onBuild(build);
hub.begin();
В нём настраиваютя компоненты и записываются значения в переменные. Билдер обычно делают перед сетупом
void build(gh::Builder& b) {3. Компоненты
GH_ROW(b, 1,
b.Button().size(2);
b.Button(););
}
b.Название(параметры);
Ещё параметры можно задавать в цепочку, как в прошлом пункте
.size(x) — размер виджета в долях
.label(s) — подпись к виджету
.color(c) — цвет
.attach(&flg) — подключить флаг
.attach(func) — подключить функцию
Все виджеты описывать не буду, есть документация
4. Установка
Надо зайти на гитхаб, тыкнуть на old, переключить. на dev, потом code и download zip. Скачается архив с библиотекой. Потом надо зайти в скетч->подключить библиотеку->добавить .zip библиотеку, выбрать файл гайверхаба и подождать.
Ещё надо установить другие библиотеки, всё подробно расписано там.
5. Документация
https://github.com/GyverLibs/GyverHub/wiki
Там написано как пользоваться гайверхабом. Хоть там и про старую версию, но некоторые вещи пересекаются. А вообще рекомендую посмотреть примеры
Это далеко не всё, так что будет ещё один хэштег #гайверхаб
П. С. Чё-то в последнее время я на процессинге много кодить стал, так что предлагайте идеи, что на нём можно сделать (процессинг — это как ардуино, но на компьютере)
П. П. С. Гайверхаб работает не только с еспшками, но это уже совсем другая история
П. П. П. С. Спойлер: возможно скоро будет автополив и машинка на управлении по вифи
#уроки
#вифи
#espшки
#библиотеки
А сейчас вы узнаете про i2c дисплей 1602(или 2004) и как с ним работать.
1. Описание
Этот дисплей — самый стандартный(может и распространённый) для ардуино поделок. Он бывает 16 символов на 2 строки, 20 на 4 и других размеров. Мы будем использовать 16 на 2 и 20 на 4. Желательно брать дисплей с i2c конвертером, т.к. будет занимать всего 2 ноги
2. Прошивка
Надо скачать библиотеку LiquidCrystal_I2C и всё
4. Подключение
Sda к A4
Scl к A5
П. С. На дисп нельзя просто так вывести русские буквы, надо немного схитрить. Но это уже совсем другая история
#уроки
#avrки (но дисп и с еспшками работает)
#железки
#библиотеки
1. Описание
Этот дисплей — самый стандартный(может и распространённый) для ардуино поделок. Он бывает 16 символов на 2 строки, 20 на 4 и других размеров. Мы будем использовать 16 на 2 и 20 на 4. Желательно брать дисплей с i2c конвертером, т.к. будет занимать всего 2 ноги
2. Прошивка
#include <LiquidCrystal_I2C.h> // подключение3. Библиотеки
LiquidCrystal_I2C lcd(0x27, 16, 2); // инициализация дисплея. 0х27 это адрес, может быть 0х3f
void setup() {
lcd.init(); // запуск
lcd.backlight(); // вкл. подсветку
lcd.clear(); // всё стереть
lcd.print("hello world"); // вывести хеллоу ворлд
lcd.setCursor(0, 1); // печатать на 2 строке
lcd.print(12345); // вывести 12345
}
void loop() {}
Надо скачать библиотеку LiquidCrystal_I2C и всё
4. Подключение
Sda к A4
Scl к A5
П. С. На дисп нельзя просто так вывести русские буквы, надо немного схитрить. Но это уже совсем другая история
#уроки
#avrки (но дисп и с еспшками работает)
#железки
#библиотеки
Спецвыпуск!
1. В прошлом году на канале был проект ромболампы. Сейчас я решил её сделать (т.к. разобрал, а она понадобилась), а она не компилится. Короче Гайвер выпустил новый гайверхаб. В ближайшее время я перепишу прошивку и пришлю сюда. А чтобы завести ту прошивку, надо скачать прошлую версию библиотеки и управлять с сайта https://hub.gyver.ru/old
#поделки
#гайверхаб
#библиотеки
2. Новый вемос
Китайцы стали делать другой вемос с type c, и он может не шиться стандартным способом. Хотя такое может быть и со старым. Для него надо выбрать плату generic esp8266 module и flash mode поставить dout
#espшки
#ардуиноиде
1. В прошлом году на канале был проект ромболампы. Сейчас я решил её сделать (т.к. разобрал, а она понадобилась), а она не компилится. Короче Гайвер выпустил новый гайверхаб. В ближайшее время я перепишу прошивку и пришлю сюда. А чтобы завести ту прошивку, надо скачать прошлую версию библиотеки и управлять с сайта https://hub.gyver.ru/old
#поделки
#гайверхаб
#библиотеки
2. Новый вемос
Китайцы стали делать другой вемос с type c, и он может не шиться стандартным способом. Хотя такое может быть и со старым. Для него надо выбрать плату generic esp8266 module и flash mode поставить dout
#espшки
#ардуиноиде
hub.gyver.ru
GyverHub v0.51b
Arduino/ESP8266/ESP32 Web Control Panel