WiFi колонка на esp8266

Genethis.INC

✩✩✩✩✩✩✩
16 Дек 2018
0
2
Всем добрый день. Хочу сделать колонку на wifi но в интернете кроме wifi радио ничего не нашёл. Вроде как бы можно на блютуз но мне этот вариант не подходит так как планирую делать под смарт ТВ, а тот работает только с wifi аппаратурой. Есть варианты как это сварганить? Может можно модуль какой докупить что бы на него данные с esp отправлять, и как в таком случае с кодом работать, какие библиотеки и т.д.
 
  • Лойс +1
Реакции: Slk и Alex183

Slk

✩✩✩✩✩✩✩
2 Авг 2020
11
1
Есть готовая плата под такие проекты, но стоит порядка 4500, если я не ошибаюсь. А вот реализации на коленке или из доступных вариантов нет в сети. Однако, находил такую самоделку, но без нужного образования разобраться не представляется возможным.
Тоже хочу такую колонку, а то провода задолбали, а Bluetooth не подходит.
 

Slk

✩✩✩✩✩✩✩
2 Авг 2020
11
1
Всем добрый день. Хочу сделать колонку на wifi но в интернете кроме wifi радио ничего не нашёл. Вроде как бы можно на блютуз но мне этот вариант не подходит так как планирую делать под смарт ТВ, а тот работает только с wifi аппаратурой. Есть варианты как это сварганить? Может можно модуль какой докупить что бы на него данные с esp отправлять, и как в таком случае с кодом работать, какие библиотеки и т.д.
Нашел готовую плату на али за 2400 и вот это:
wi-fi stream:
#include <Arduino.h>
#include <WiFi.h>
#include <driver/dac.h>

const char* ssid     = "YOUR SSID";
const char* password = "YOUR PASSWORD";
const char* host     = "YOUR SERVER IP ADDRESS";


WiFiClient client;
hw_timer_t * timer = NULL;
portMUX_TYPE timerMux = portMUX_INITIALIZER_UNLOCKED;

#define BUFFFERMAX 8000
uint8_t dataBuffer[BUFFFERMAX];
int readPointer = 0, writePointer = 1;
bool play = false;
void IRAM_ATTR onTimer()
{portENTER_CRITICAL_ISR(&timerMux);

  // play data:

  if (play) {
    dac_output_voltage(DAC_CHANNEL_1, dataBuffer[readPointer]);
    readPointer++;
    if (readPointer == BUFFFERMAX)
    {readPointer = 0;}

    if ( getAbstand() == 0 ) {
      Serial.println("Buffer underrun!!!");
      play = false;
    }
  }

  portEXIT_CRITICAL_ISR(&timerMux);
}

int getAbstand() {
  int abstand = 0;
  if (readPointer < writePointer ) abstand =  BUFFFERMAX - writePointer + readPointer;
  else if (readPointer > writePointer ) abstand = readPointer - writePointer;
  return abstand;
}

void setup() {
  Serial.begin(115200);
  dac_output_enable(DAC_CHANNEL_1);
  pinMode(33, INPUT_PULLUP)
  pinMode(32, INPUT_PULLUP);

  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());

  const int port = 4444;
  while (!client.connect(host, port)) {

    Serial.println("connection failed");
    delay(1000);
  }

  timer = timerBegin(0, 2, true); // use a prescaler of 2
  timerAttachInterrupt(timer, &onTimer, true);
  timerAlarmWrite(timer, 5000, true);
  timerAlarmEnable(timer);
}
На сколько рабочий скетч не знаю. И что с ним делать дальше, тоже ума не приложу. Ищу дальше.
 
Последнее редактирование: