IOT / Esp32 / FreeRTOS / Arduino / stm32
799 subscribers
747 photos
133 videos
29 files
199 links
Копилка материалов по работе с микроконтроллером esp32 / stm32
Download Telegram
Контакты зарядки попали в воду, окислились и свою функцию больше не выполняют.
Значит время традиционной рубрики #распаковка

Power Delivery зарядка для айфона выполнена на тонкой печатной плате.

Плата тонкая, площадки сделаны из толстых медных пластинок.
🤩3
Фотка зарядки на которой видна маркировка
🤩3
Media is too big
VIEW IN TELEGRAM
В предыдущих сериях:
- установили ESP-IDF
- создали первую таску loop как у ардуинщиков

Сейчас создадим ещё одну таску для работы с кнопочками.
Я использую плату TTGO-T-Display
Покупал на алике
Документация к ней есть на гитхабе
BUTTON1  35
BUTTON2 0


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

Набор действий такой:
1) создаём файлы в папке task

2) добавялем папку "task" в инклюды CMakeLists.txt

3) добавляем файл task/buttonTask.cpp в SRCS CMakeLists.txt

4) в buttonTask.h должна быть функция такси void buttonTask(void *pvParameter) и "рукоятка" TaskHandle_t button с помощью которой мы будем отправлять для этой здачи события

5) в buttonTask.cpp описываем саму задачу, в суть того что предложил ИИ я не вникал, позже это перепишем с использованием библиотеке

6) добавляем создание задачи в app_main

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

Структура средней задачи такая:
// назнвание задачи в консоли
static const char *TAG = "BUTTON";
// рукоятка задачи для передачи событий
TaskHandle_t button;

void buttonTask(void *pvParameter) {
// выполнится 1 раз, определим задержку 500мс
const TickType_t xBlockTime = pdMS_TO_TICKS(500);
// зададим переменную
uint32_t count = 0;

while (1) {
// будет выполняться всё время
ESP_LOGW(TAG, "task run! count = %ld", count++);
// пауза в задаче дял других дел
vTaskDelay(xBlockTime);
}

}

потом эту задачу останется вызывать в app_main()
extern "C" void app_main(void) {
// другой код
// вызываем buttonTask с рукояткой `button`
xTaskCreate(buttonTask, "button", 2048, NULL, 10, &button);
}



7) Добавляем .gitignore и коммитим всё на гитхаб https://github.com/politsin/esp32-idf-demo/tree/0.3.0
🔥6🤩1
Фотки наливайки с разных сторон для истории.
👍4🤩1
Сломался детский двухсотрублёвый планшет для рисования, переслал стирать

#распаковка

Внутри плата и почти полная батарейка 3V.

Микросхема затёрта, на плате есть дроссель.

Стирание происходит подачей напряжения на экран.
В связи с этим 2 вопроса перед тем как отправить в корзину:
- имеет ли значение полярность?
- какое необходимо напряжение?
🤩5👍4
Пришла #посылка из Китая (с). Похвастаюсь приобретениями:

1) припой с wb 657₽. На моей катушке остался последний слой. Взял ещё одну такую-же, чтобы не думать. Искал по производителю, нашел только в 1 магазине, до этого кажется брал в чип-и-дипе несколько лет назад за полторы тыщи.

2) реле 303₽ на 10А 220V с озона. Управлять можно 3.3V сразу с ног esp32 переключается. Взял 2, одно из них уже встало на дежурство.

3) подшипники 20шт) с озона. Взял много, т.к. хорошо уходят. 670₽ за 20 это 33.5₽/шт. Маркировка подшипника 625ZZ. Zz - это с двух сторон металлом закрыто (еще бывает R если закрыто резинкой - более герметично), 625 - это подшипник с размерами 19х6х6 - в него отлично подходит шпилька М4.

4) 2 клапана разного размера с озона ехали почти месяц.

5) рефрактометр с wb 800₽ по акции. Штука чтобы измерять плотность воды. С помощью её определяют сладкость фруктов и ягод 🍉🍓.
👍4🤩2
Как отправлять данные в инфлюкс используя Postman и с помощью esp32
👍2
IOT / Esp32 / FreeRTOS / Arduino / stm32
Подал 12V со своего «лабораторного🤦‍♂️» блока питания, и оно заработало! Задумка очень простая: хочу управлять шаговыми моторами миксера-наливайки с помощью G-кода. При этом нехочу ничего пять и разбираться в силовой электронике. А ещё хочу иметь возможность…
Я собирался двигать шаговики с помощью платы MKS-Tiny.
На плате установлена прошивка марлин (2.0.9).
Хотел подключать её к orange-Pi-Zero и управлять с помощью UART, отправляя команды с помощью лучшего в мире языка

Но такое соединение всё как-то не клеилось, приходилось периодически плату перезагружать, вызывать команды аля usbreset 1a86:7523 и делать разные другие штуки.

Можно и из командной строки управлять серво-двигателями, вот пример кода:
# Настраиваем
stty -F /dev/ttyUSB0 115200 cs8 -cstopb -parenb
# Устанавливаем относительное движение
echo -e "G91\r\n" > /dev/ttyUSB0
# Быстро двигаем мотор X
echo -e "G0 X35\r" > /dev/ttyUSB0
# Точно двигаем 2 мотора X и Y
echo -e "G0 X50 Y40 F600\r" > /dev/ttyUSB0
Выключаем питание двигателей
echo -e "M18\r" > /dev/ttyUSB0


Всё это работает очень не стабильно.

Поэтому переходим к следующему уровню извращения)
ТЗ остаётся прежним: 2 шаговика и управление с G-CODE
У меня есть новый план - управлять с помощью klipper3d 😎

MKS-Tiny основан на esp32, а клипер её не поддерживает и не будет поддерживать.

Зато у меня есть «блюпил» на камне stm32F401 😃

Дальше процесс такой:
1) ставим прошивку клиппер на разбери-Pi. Это делается с помощь расбери-прошивалки. Я прям кайфанул, чуть позже покажу как это сейчас делается.

2) находим прошивку под stm32. Вот видео в котором хорошо описан процесс. https://youtu.be/Df8-7zcwiUc?si=2_LKsleay2H401Mp
Можем для блюпила взять прошивку для платы SKR-mini, потом чуть что можно и плату 3д принтера целиком купить за 4600₽

—— Вы находитесь здесь ——
3) Прошиваем stm32 :)
🔥5