Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Postas99

    senior tag

    válasz Wolfram #23177 üzenetére

    Hackster.io, nem emékszem hogy fizettem-e valaha is érte. Lehet csak regisztrációt igényel.
    Bemásolom ide a kódot. De valamiért szétesik.
    /* Audio streamer with ESP32 and Adafruit elected microphone board. * Created by Julian Schroeter. */ #include <Arduino.h> #include <WiFi.h> #include <driver/adc.h> #define AUDIO_BUFFER_MAX 800 uint8_t audioBuffer[AUDIO_BUFFER_MAX]; uint8_t transmitBuffer[AUDIO_BUFFER_MAX]; uint32_t bufferPointer = 0; const char* ssid     = "YOUR SSID"; const char* password = "YOUR PASSWORD"; const char* host     = "YOUR SERVER IP ADDRESS"; bool transmitNow = false; WiFiClient client; hw_timer_t * timer = NULL; // our timer portMUX_TYPE timerMux = portMUX_INITIALIZER_UNLOCKED; void IRAM_ATTR onTimer() {   portENTER_CRITICAL_ISR(&timerMux); // says that we want to run critical code and don't want to be interrupted   int adcVal = adc1_get_voltage(ADC1_CHANNEL_0); // reads the ADC   uint8_t value = map(adcVal, 0 , 4096, 0, 255);  // converts the value to 0..255 (8bit)   audioBuffer[bufferPointer] = value; // stores the value   bufferPointer++;   if (bufferPointer == AUDIO_BUFFER_MAX) { // when the buffer is full     bufferPointer = 0;     memcpy(transmitBuffer, audioBuffer, AUDIO_BUFFER_MAX); // copy buffer into a second buffer     transmitNow = true; // sets the value true so we know that we can transmit now   }   portEXIT_CRITICAL_ISR(&timerMux); // says that we have run our critical code } void setup() {   Serial.begin(115200);   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("MY IP address: ");   Serial.println(WiFi.localIP());      adc1_config_width(ADC_WIDTH_12Bit); // configure the analogue to digital converter   adc1_config_channel_atten(ADC1_CHANNEL_0, ADC_ATTEN_0db); // connects the ADC 1 with channel 0 (GPIO 36)   const int port = 4444;   while (!client.connect(host, port)) {     Serial.println("connection failed");     delay(1000);   }   Serial.println("connected to server");   timer = timerBegin(0, 80, true); // 80 Prescaler   timerAttachInterrupt(timer, &onTimer, true); // binds the handling function to our timer   timerAlarmWrite(timer, 125, true);   timerAlarmEnable(timer); } void loop() {   if (transmitNow) { // checks if the buffer is full     transmitNow = false;     client.write((const uint8_t *)audioBuffer, sizeof(audioBuffer)); // sending the buffer to our server   } }

Új hozzászólás Aktív témák