Files
klubhaus-doorbell/libraries/audio-tools/examples/examples-communication/http-client/streams-url-file/streams-url-file.ino
2026-02-16 19:05:11 -08:00

60 lines
1.5 KiB
C++

/**
* @file streams-url-file.ino
* @author Phil Schatzmann
* @brief Demo how to download a file from the internet and store it to a file. The test was done with an AudioKit which requires
* some specific pin settings
* @version 0.1
* @date 2022-09-09
*
* @copyright Copyright (c) 2022
*
*/
#include "SD.h"
#include "AudioTools.h"
#include "AudioTools/Communication/AudioHttp.h"
#define PIN_AUDIO_KIT_SD_CARD_CS 13
#define PIN_AUDIO_KIT_SD_CARD_MISO 2
#define PIN_AUDIO_KIT_SD_CARD_MOSI 15
#define PIN_AUDIO_KIT_SD_CARD_CLK 14
const char *ssid = "SSID";
const char *password = "password";
URLStream url(ssid, password); // Music Stream
StreamCopy copier; //(i2s, music, 1024); // copy music to i2s
File file; // final output stream
int retryCount = 5;
// Arduino Setup
void setup(void) {
Serial.begin(115200);
AudioToolsLogger.begin(Serial, AudioToolsLogLevel::Info);
// define custom SPI pins
SPI.begin(PIN_AUDIO_KIT_SD_CARD_CLK, PIN_AUDIO_KIT_SD_CARD_MISO, PIN_AUDIO_KIT_SD_CARD_MOSI, PIN_AUDIO_KIT_SD_CARD_CS);
// intialize SD
if(!SD.begin(PIN_AUDIO_KIT_SD_CARD_CS)){
LOGE("SD failed");
return;
}
// open music stream
url.begin("https://pschatzmann.github.io/Resources/audio/audio-8000.raw");
// copy file
file = SD.open("/audio-8000.raw", FILE_WRITE);
// overwirte from beginning
file.seek(0);
copier.begin(file, url);
copier.copyAll();
file.close();
file = SD.open("/audio-8000.raw");
LOGI("file size: %d", file.size());
}
void loop() {
}