- Nosztalgikus húrokat megpendítő házzal rukkolt elő a SilverStone
- Úgy gondolja az NVIDIA, hogy az új GeForce-okon nem olvadhat meg a tápcsaltakozó
- Aktív hűtéssel érkezik a SilverStone legfrissebb M.2 bővítőkártyája
- Gyorsan Snapdragonnal: Acer Swift 14 AI tapasztalatok
- Párban járnak az Intel Arc B580 VGA-k az ONIX háza táján
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Vezetékes FÜLhallgatók
- Dell notebook topic
- Notebook hibák
- Milyen billentyűzetet vegyek?
- Milyen széket vegyek?
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Videós, mozgóképes topik
- CES 2025: titokban még hozott pár új processzort az AMD
- Azonnali processzoros kérdések órája
Új hozzászólás Aktív témák
-
bagarol
junior tag
válasz BlackJack21 #958 üzenetére
Jó a video, csak kicsit mekelek a kivitelezés.
-
bagarol
junior tag
Nem tudom, sikerült-e lekapcsolni a kijelzőt, de - megjegyzem, nem foglalkoztam még a yoradioval - nem tűnik bonyolultnak. Beírod a loop-ba
if ((millis() - lastmillis) > 30000)
{ display off } ;
else {display on};A rotary ISR-ben (yoEncoder.cpp) pedig lastmillis = millis();
Ez így elvileg fél perc. Természetesen nem display on-off, nem tudom a változókat. -
-
bagarol
junior tag
válasz bimbula53 #29 üzenetére
Ma szórakoztam egy kicsit 8266-al, ezt kötöttem rá, csak az a baj, hogy 2k-nál nem
lehet nagyobb puffert állítani. Így kb 10 percenként 1-2 másodpercre megszakad.
Kíváncsi lennék esp32-vel. Most látom, rossz a kép, természetesen fordítva, digital to analóg.
[ Szerkesztve ]
-
bagarol
junior tag
Egyszerű webrádió esp32-vel, nem kell hozzá külső alkatrész. Mono, belső DAC, kijelző nélkül.
Soros konzolon lehet beírni a rádió címét, egyből elkezdi lejátszani, stop-ra leáll, lehet új címet megadni. DAC2-őn (gpio26) adja ki a jelet.Nekem konyhába így is megfelel, persze kijelzővel + egyebek, úgy értem, hogy mono, belső dac. Az esp8266audio[link] library kell hozzá.
Ellenőrizni nem tudtam,nincs most esp32-m, remélem működik.#include <WiFi.h>
#include <AudioFileSource.h>
#include <AudioFileSourceBuffer.h>
#include <AudioFileSourceICYStream.h>
#include <AudioGeneratorMP3.h>
#include <AudioOutputI2S.h>const char* ssid = "";
const char* password = "";
String s;
char URL[96];
const int preallocateBufferSize = 32*1024;
const int preallocateCodecSize = 29192;
void *preallocateBuffer = NULL;
void *preallocateCodec = NULL;
AudioGeneratorMP3 *mp3;
AudioFileSourceICYStream *file;
AudioFileSourceBuffer *buff;
AudioOutputI2S *out;void setup() {
preallocateBuffer = malloc(preallocateBufferSize);
if (!preallocateBuffer) {
Serial.begin(115200);
Serial.printf_P(PSTR("FATAL ERROR: Unable to preallocate %d bytes for app\n"), preallocateBufferSize);
while (1) delay(1000);
}
Serial.begin(115200);
initwifi();
Serial.printf("STATUS(System) Ready \n\n");
out = new AudioOutputI2S(0, 1);
out->SetOutputModeMono(true);
out->SetGain(0.5);
}void loop() {
if(Serial.available()){
s = Serial.read();
if(s == "stop") StopPlaying();
else if(s.startsWith("http://")) {
s.trim();
s.toCharArray(URL,s.length()+1);
StartPlaying();
}
}
}void StartPlaying() {
file = new AudioFileSourceICYStream(URL);
file->RegisterMetadataCB(MDCallback, (void*)"ICY");
buff = new AudioFileSourceBuffer(file, preallocateBuffer, preallocateBufferSize);
buff->RegisterStatusCB(StatusCallback, (void*)"buffer");
out = new AudioOutputI2S(0, 1);
out->SetOutputModeMono(true);
out->SetGain(0.5);
mp3 = new AudioGeneratorMP3(preallocateCodec, preallocateCodecSize);
mp3->RegisterStatusCB(StatusCallback, (void*)"mp3");
mp3->begin(buff, out);
Serial.printf("STATUS(URL) %s \n", URL);
Serial.flush();
}void StopPlaying() {
if (mp3) {
mp3->stop();
delete mp3;
mp3 = NULL;
}
if (buff) {
buff->close();
delete buff;
buff = NULL;
}
if (file) {
file->close();
delete file;
file = NULL;
}
Serial.printf("STATUS(Stopped)\n");
Serial.flush();
}void initwifi() {
WiFi.disconnect();
WiFi.softAPdisconnect(true);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
Serial.println("Connecting to WiFi");
delay(1000);
}
Serial.println("Connected to WiFi");
}void MDCallback(void *cbData, const char *type, bool isUnicode, const char *string) {
const char *ptr = reinterpret_cast<const char *>(cbData);
(void) isUnicode;
char s1[32], s2[64];
strncpy_P(s1, type, sizeof(s1));
s1[sizeof(s1) - 1] = 0;
strncpy_P(s2, string, sizeof(s2));
s2[sizeof(s2) - 1] = 0;
Serial.printf("METADATA(%s) '%s' = '%s'\n", ptr, s1, s2);
Serial.flush();
}void StatusCallback(void *cbData, int code, const char *string) {
const char *ptr = reinterpret_cast<const char *>(cbData);
char s1[64];
strncpy_P(s1, string, sizeof(s1));
s1[sizeof(s1) - 1] = 0;
Serial.printf("STATUS(%s) '%d' = '%s'\n", ptr, code, s1);
Serial.flush();
}[ Szerkesztve ]
Új hozzászólás Aktív témák
- Budapest és környéke adok-veszek-beszélgetek
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Külpolitika
- Win 10 LTSC: hülye vagyok?
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Vezetékes FÜLhallgatók
- Dell notebook topic
- Linux haladóknak
- Bemutatkozott a Poco X7 és X7 Pro
- Notebook hibák
- További aktív témák...
- Topping d70s kettős ak4497dac
- Playstation 5 Drive Edition 825GB (CFI-1116A), 6 hónap garanciával, Bp-i üzletből eladó!
- XBOX Series, ONE, S, X, XBOX360, PS4, PS5 konzolok és kontrollereik javítása garanciával üzletben!
- PlayStation 5 / PlayStation 4 Fat/Slim/Pro HDMI IC / csatlakozó szerviz, garanciával, üzletből!
- XBOX ONE S/X HDMI IC csere aznapi elkészüléssel, 3 hó garanciával, üzletben!
Állásajánlatok
Cég: Marketing Budget
Város: Budapest