Сообщения

Сообщения за декабрь, 2025

RCWL-0515

Изображение
RCWL-0515.  - это микроволновой датчик движения, который использует эффект Доплера для обнаружения движущихся объектов (людей, животных и т. п.). Он выдаёт цифровой сигнал HIGH (лог.1), когда движение обнаружено, и LOW (лог.0) — когда движения нет. ESP32-C3 > RCWL-0515  GND  > GND  3V3  > VCC   D2 > >OUT   main.py      from machine import Pin import time # Настройки пинов SENSOR_PIN = 2   # поменяйте на тот GPIO, где у вас OUT LED_PIN = 8       # встроенный светодиод на многих платах ESP32-C3 # Инициализация пинов sensor = Pin(SENSOR_PIN, Pin.IN) led = Pin(LED_PIN, Pin.OUT) last_state = 0  # последнее состояние движения print("Запущено... Ожидание движения") while True:     val = sensor.value()  # прочитать состояние датчика     if val == 1:  # если датчик HIGH         led.off()         if last_state == 0: ...

Touch ESP32

Изображение
Touch ESP32.  Сенсорный датчик.   ESP32 > T  GND  > GND  3V3  > VCC   D4 > IO   main.py      from machine import Pin import time touch = Pin(4, Pin.IN) led = Pin(2, Pin.OUT) state = 0          # состояние светодиода last_touch = 0     # предыдущее состояние кнопки while True:     current = touch.value()     # обнаружение нажатия (фронт)     if current == 1 and last_touch == 0:         state = not state         led.value(state)         time.sleep(0.2)  # антидребезг     last_touch = current     time.sleep(0.01)

WEB ESP32

Изображение
Управление светодиодом через сайт.  Кнопки ВКЛ , ВЫКЛ . Можно подключить реле и управлять лампочкой, розеткой и т д.        Для нормальной работы нужно добавить свои данные SSID , пароль. main.py      import network import time from machine import Pin #from led_driver import print_like_console , print_multiline_console # === НАСТРОЙКИ WI-FI (Измени на свои!) === SSID = "ESP32HUB"         # ←←← Впиши сюда имя своего Wi-Fi PASSWORD = "A1b2c3d4"     # ←←← Впиши сюда пароль # === Пин светодиода === LED_PIN = 2               # встроенный светодиод на большинстве ESP32 led = Pin(LED_PIN, Pin.OUT) led.off() # === Подключаемся к Wi-Fi === wlan = network.WLAN(network.STA_IF) wlan.active(True) wlan.connect(SSID, PASSWORD) print("Подключаюсь к Wi-Fi...", SSID) while not wlan.isconnected():     time.sleep(0.5)     print(".", end="") print("\nПодключено!")...

Telegram bot esp32 control

Изображение
Управление светодиодом через ТГ бота.  Кнопки ВКЛ , ВЫКЛ и Статус. Можно подключить реле и управлять лампочкой, розеткой и т д.        Для нормальной работы нужно добавить свои данные SSID , пароль , токен тг бота и ID  пользователя. Токен ТГ бота получаем у бота  @BotFather main.py      # reliable_bot.py import network, time, urequests from machine import Pin import socket WIFI_SSID = "" WIFI_PASS = "" BOT_TOKEN = "" CHAT_ID =  BASE = "https://api.telegram.org/bot" + BOT_TOKEN led = Pin(2, Pin.OUT) led.off() offset = 0 # WiFi helper wlan = network.WLAN(network.STA_IF) def wifi_connect():     wlan.active(True)     if not wlan.isconnected():         print("Connecting WiFi...")         wlan.connect(WIFI_SSID, WIFI_PASS)         t0 = time.time()         while not wlan.isconnected():             # если ...

Контроль заряда аккумулятора

Изображение
INA219 Для контроля заряда и SSD1306  для отображения данных.  При перезагрузке данные сбрасываются ESP32 > INA219  GND  > GND  3V3  > VCC   D47 > SCL   D48 > SDA   Вывод :  I = 63.20 mA, V = 2.676 V Charge: 2535.3274 mAh Energy: 10.7516 mWh main.py      ffrom machine import Pin, I2C from ina219 import INA219 import time from led_driver import print_like_console , print_multiline_console # ESP32-S3 I2C pins (пример): # SDA = 8 # SCL = 9 i2c = I2C(1, scl=Pin(47), sda=Pin(48), freq=400000) print("I2C scan:", i2c.scan()) ina = INA219(i2c)  # <-- правильный вызов while True:     lines = []     print("Bus Voltage:", ina.bus_voltage, "V")     print("Shunt Voltage:", ina.shunt_voltage, "V")     print("Current:", ina.current, "mA")     print()     time.sleep(1)          lin es.append(f"Volt: {ina.bus_voltage} V") ...

MAX30102

Изображение
MAX30102.   Датчик сердечного ритма.   ESP32 > MAX30102  GND  > GND  3V3  > VCC   D5 > SCL   D6 > SDA   Вывод : NO FINGER.   RED: 49172  IR: 38468  SpO₂: 99.  main.py      from machine import Pin, I2C import time from max30102 import MAX30102 from biosensor import IIRFilter, FingerDetect, SpO2Calculator #from led_driver import print_like_console , print_multiline_console i2c = I2C(0, scl=Pin(5), sda=Pin(6), freq=400000) sensor = MAX30102(i2c) finger = FingerDetect() spo2_calc = SpO2Calculator() print("READY") while True:     red, ir = sensor.read_fifo()     # 1️⃣ авто-детект пальца     if not finger.update(ir):         print("NO FINGER")         #print_like_console('NO FINGER', x=0, y=0, delay=0.005)         time.sleep(0.1)         continue     # 2️⃣ SpO2...

LD2402 Датчик присутствия.

Изображение
LD2402.   Датчик присутствия.   ESP32 > LD2402  GND  > GND  3V3  > VCC   D16 > RX   D17 > TX   Вывод : Distance = 37 cm.   При дальности больше 150 см светодиод д2 отключается.  main.py      from machine import UART import time from machine import Pin from time import sleep # Onboard LED is almost always on GPIO2 led = Pin(2, Pin.OUT)  # Some boards use GPIO 2 as active-high, some active-low uart = UART(2, baudrate=115200, rx=16, tx=17) print("LD2402 ASCII mode reader started...") while True:     if uart.any():         line = uart.readline()         if not line:             continue         try:             text = line.decode().strip()         except:             continue       ...

Пульт управления LORA

Изображение
Пульт. Двухосевой джойстик , Кнопка включает фары.  Контроллер заряда аккумуляторов. ESP32 и  RA-02   ESP32 > Джойстик  GND  > GND  3V3  > VCC   D33 > VRX   D32 > VRY   D13 > SW ESP32 > RA-02   GND > GND   3.3V > 3.3V   D14 > RST   D26 > DIO0   D18 > NSS   D27 > MOSI   D19 > MISO   D5 > SCK Передатчик.   main.py      # tx_lora.py from machine import Pin, ADC, SPI import time import ujson # Импортируем класс ULoRa (файл ulora.py должен быть в той же папке) from ulora import ULoRa # ===== LoRa (использует ULoRa.__init__(spi, pins, parameters=None)) ===== spi = SPI(1, baudrate=10000000, polarity=0, phase=0, sck=Pin(5), mosi=Pin(27), miso=Pin(19)) pins = {"ss": 18, "reset": 14, "dio0": 26} lora = ULoRa(spi=spi, pins=pins, parameters={ "frequency": 433000000, "tx_power_level": 20, "signal_bandwidth": 2...