정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

아두이노 메모리 때문에 질문 드립니다...
hunam | 2019-03-20

안녕하세요.

아두이노 공부를 하면서 BLE+WiFi 보드 esp32를 사용해서 BLE기능과 WiFi 기능을 동시에 사용해 보고 싶어서

beacon기능과 wifi연결 후 웹 서버까지 연결하려고 하는데 메모리 문제로 실행이 되지 않아서 도저히 방법을 모르겠습니다.

 

소스 코드는 아래에 있구요 도움 좀 주시면 감사하겠습니다. ㅠㅠ


#include "BLEDevice.h"
#include "BLEServer.h"
#include "BLEBeacon.h"
#include "esp_sleep.h"

#include "WiFi.h"
const char* ssid="CJWiFi_955E";   
const char* password= "7001003570"; 
#define BEACON_UUID "8ec76ea3-6668-48da-9866-aaaaaaaaaaaa"
struct timeval now;

#define GPIO_DEEP_SLEEP_DURATION     5  // sleep x seconds and then wake up
     
BLEServer *pServer;
BLEAdvertising *pAdvertising;


void setup() {
  {
  gettimeofday(&now, NULL);
  Serial.begin(115200);
  Serial.printf("start ESP32 %d\n");
 
  initBle();
  startAdvertising();
  Serial.println("Advertizing started...");
  delay(100);
  stopAdvertising();
  // Deep sleep
  Serial.printf("enter deep sleep\n");
  delay(100);
  
  }
  Serial.begin(115200);
    WiFi.mode(WIFI_STA);
    WiFi.disconnect();
    delay(10);
    Serial.println("Setup done");
  
    delay(10);
    WiFi.begin(ssid, password);
     while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
    }
}
void loop() {
   Serial.println(F("scan start"));
    int n = WiFi.scanNetworks();
    Serial.println("scan done");
    if (n == 0) {
        Serial.println("no networks found");
    } else {
        Serial.print(n);
        Serial.println(" networks found");
        for (int i = 0; i < n; ++i) {
          Serial.print(i + 1);
          Serial.println(WiFi.SSID(i));
          Serial.print((WiFi.encryptionType(i) == WIFI_AUTH_OPEN)?" ":"*");
          delay(10);
        }
    }
    Serial.println("");
     if(WiFi.status() == WL_CONNECTED){
        Serial.println("WiFi connected: ");
        Serial.print(ssid);
     }else{ 
        Serial.println("WiFi not connected");
     }
    delay(100);
  
}
void initBle() {
  BLEDevice::init("MyBeacon");
  pServer = BLEDevice::createServer();
}
void startAdvertising() {
  // Create advertising manager
  pAdvertising = pServer->getAdvertising();
  // Set beacon data
  setBeacon();
    // Start advertising
  pAdvertising->start();
}
void stopAdvertising() {
  // Stop advertising
  pAdvertising->stop();
}

void setBeacon() {
  BLEBeacon oBeacon = BLEBeacon();
  oBeacon.setProximityUUID(BLEUUID(BEACON_UUID));
  oBeacon.setMajor(1); //Major 설정
  oBeacon.setMinor(1); //Minor 설정
  oBeacon.setManufacturerId(0x4C00); 
 }

 

이전글   |    GY-521 MPU-6050 센서 관련 글에서 질문에 답변에 다시 질문 남깁니다.... 2019-03-20
다음글   |    에러 메시지가 계속 뜹니다 2019-03-22