🛒
0 товаров
0 руб.

Интернет-магазин «Неглупый Дом»


📢 Проект: удалённый звуковой сигнал через усилитель LM386 по кнопке на веб-странице ESP8266

В другом проекте на сайте сигнал через LM386 запускается сразу по таймеру в `loop()`. Здесь тот же усилитель подключён к ESP8266, и звук раздаётся только по нажатию кнопки на веб-странице — такой же удалённый звонок, как и в похожем проекте на усилителе XH-M567, но на более простой и бюджетной микросхеме.

Как это работает

Сам усилитель работает так же, как и в проекте без веб-страницы: `tone()` формирует прямоугольный сигнал на цифровом пине, LM386 усиливает его амплитуду до уровня, достаточного для нормального звучания динамика. Разница — в источнике команды: вместо немедленного запуска при включении ESP8266 обрабатывает HTTP-запрос, пришедший при нажатии на ссылку-кнопку страницы, и запускает `tone()` именно в этот момент.

Логика веб-сервера здесь идентична проекту с XH-M567 — один путь `/beep` с обработчиком, запускающим звук и возвращающим обновлённую страницу. Разница исключительно в самой звуковой части схемы (какой усилитель стоит после ESP8266), а не в структуре веб-кода.

Пошаговая сборка

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

  1. LM386: вход аудиосигнала (IN) → D1 ESP8266, VCC → 5V или отдельное питание по маркировке платы, GND → GND.
  2. Выход усилителя (OUT) → динамик.

Скетч

// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить. Основу
// и идею я накидал, но проверьте под свою схему.

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>

const char* WIFI_SSID = "ваша_сеть";
const char* WIFI_PASSWORD = "ваш_пароль";

ESP8266WebServer server(80);
const int AMP_PIN = D1;

void handleBeep() {
  tone(AMP_PIN, 1800, 300);
  server.send(200, "text/html", "<html><body><h1>Сигнал отправлен!</h1><a href='/'>Назад</a></body></html>");
}

void setup() {
  Serial.begin(9600);

  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
  }
  Serial.println("IP адрес: " + WiFi.localIP().toString());

  server.on("/", []() {
    server.send(200, "text/html", "<html><body><h1>Удалённый звонок</h1><a href='/beep'>🔔 Подать сигнал</a></body></html>");
  });
  server.on("/beep", handleBeep);
  server.begin();
}

void loop() {
  server.handleClient();
}

Библиотеки ESP8266WiFi и ESP8266WebServer входят в стандартный пакет поддержки ESP8266 для Arduino IDE, для самого усилителя дополнительная библиотека не нужна — только встроенная `tone()`.

Частые проблемы

Как улучшить проект

Товары по теме

Ещё модули для Arduino: Электронные модули.

← 🌆 автоматическое включение освещения в темно…🔄 регулировка скорости DC-мотора потенциомет… →

🎁 Купить весь комплект со скидкой 10%

Все 2 товара сразу в корзину: 292 ₽ 263 ₽ (экономия 29 ₽)

Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.

Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.

Корзина


Поиск



Пример: понижающий или DC-DC или mini360 или aw-023 или арт. OZ/WB/YA