본문 바로가기

Study/ESP8266(WIFI),ESP32(BLE,WIFI)37

ESP32 ADC ESP32의 경우 12bit 18개의 ADC를 가지고 있습니다. 또한 ESP32의 경우 ADC값이 완전히 리니어하지는 않습니다. 위 그래프처럼 조금 울퉁불퉁한 면이 있어서 주위해야하며, 0.00v~0.10v와 3.10v~3.30v 사이는 거의 변화가 없는걸 유의 하셔야 합니다. 물론 adc를 calibration하는 방법이 여러가지가 있는데 크게 영향을 미치지 않는 영역의 adc를 사용한다면 그대로 사용하셔도 됩니다. 크게 ADC1 8채널과 ADC2 10채널로 나뉘어져 있으며 ADC1과 ADC2는 차이가 조금 있는데 ADC2의 경우 WiFi나 BT를 사용하면 ADC기능을 사용할 수 없습니다. 이런경우 ADC1을 사용해야 합니다. 가변저항을 이용하여 간단하게 테스트를 해보겠습니다. 우선 가변저항의 한쪽엔 .. 2020. 3. 12.
ESP32 Sleep Mode와 Wake up 무선제품의 경우 배터리 관리는 필수입니다. 따라서 사용하지 않을경우에는 Sleep Mode를 사용하여 전력소모를 줄여야 합니다. ESP32의 경우 총 5가지 모드가 있으며, 모드에 따라 배터리 소모량이 달라집니다. 배터리 관리를 위한 항목은 총7가지 이며, 모드에 따라 사용하는 항목들이 달라집니다. Active 모드는 당연히 모든 기능을 사용합니다. 베터리 소모는 160~260mA를 소모합니다. 두번째는 Modem Sleep 모드로 무선쪽과 주변기기를 모두 꺼버립니다. 전력소모는 3~20mA로 확 떨어집니다. 위 코드를 통해 Sleep Mode에 들어갈 수 있습니다. 세번째는 Light Sleep 모드로 Modem Sleep과 비슷합니다. 더블어 클럭펄스를 꺼서 회로의 일부를 비활성화시킵니다. esp_l.. 2019. 12. 28.
ESP32 타이머 인터럽트 ESP32에도 인터럽트들이 있는데, 이번에는 타이머 인터럽트입니다. 타이머 인터럽트는 일정 시간이 지난 후 자동으로 실행되는 인터럽트입니다. 1 2 3 //Interrupt volatile bool interruptCounter=false; hw_timer_t * timer = NULL; cs Line 2 : 타이머 인터럽트가 걸렸을때 체크할 변수입니다. 인터럽트 안에서 사용할 변수는 volatile을 사용해야 합니다. Line 3 : 타이머 인터럽트로 사용 할 하드웨어 타이머입니다. 1 2 3 4 5 6 void interrupt_init(){ //timer interrupt freq is 80Mhz timer = timerBegin(0, 80, true); //division 80=1Mhz timer.. 2019. 12. 13.
ESP32 하드웨어 시리얼 변경 ESP32는 ESP8266처럼 Software Serial을 제공하지 않습니다. ESP32의 경우 총 UART가 3개가 있습니다만 UART2의 경우 JTAG 포트에 있기때문에 정해진 포트를 이용하기 힘듦니다. 따라서 Software Serial을 이용해서 변경해야 하는데, ESP32는 Software Serial을 제공하지 않으므로, Hardware Serial을 GPIO 포트를 변경하여 이용할 수 있습니다. 1HardwareSerial comm(1);cs 먼저 HardwareSerial을 선언해줍니다. 뒤에 comm은 이름이고, 괄호안의 번호는 UART 번호입니다. 1comm.begin(9600,SERIAL_8N1,commRx,commTx);cs 초기화는 위와 같이 적어주면 됩니다. 괄호안의 첫번째는 .. 2019. 12. 13.
ESP32 PWM사용하기 ESP32의 경우 PWM을 만들기가 아주 쉽습니다. PWM이 아닌 LED용 PWM 을 사용하면 됩니다. 그리고 ESP32에는 총 16개의 PWM채널이 있습니다.(Timer 3개) 만약 resolution이나 주파수가 다르다면 다른 타이머의 pwm채널을 사용하는것을 권장합니다. 사용방법은 간단합니다. ledcSetup(PWM채널,주파수,분해능); ledcAttachPin(포트번호,PWM채널); ledcWrite(PWM채널,PWM값); Line 1~2는 설정을 하는부분이고, Line 3이 PWM출력을 내보내는 부분입니다. Line 1에서 PWM채널은 위 그림의 16개의 PWM 채널중에 선택을 하시면 됩니다. 주파수는 PWM 총 주기인데 보통 5000을 많이 사용하는듯 합니다. 분해능은 비트를 적으면 되는데 .. 2019. 12. 11.
ESP8266 OTA(Over The Air) 사용하기 - 업데이트하기 참고 소스코드 저번에 OTA 준비작업을 하였다면 이번에는 실제로 업데이트를 해보겠습니다. 저번과 조금은 방법을 바꿔서 해보도록 하겠습니다. 부팅할때마다 서버에 파일업데이트를 확인하는 방법입니다. 그러기 위해서 소스에서 버전관리를 해줘야 합니다. 12String version="sensorview 1";String nextVersion="esp8266/sensorview2.bin";cs 이런식으로 현재버전과 앞으로 업데이트 할 버전을 관리합니다. 그리고 서버쪽에는 업데이트 할 버전의 파일을 만들어서 넣어두면 부팅시 접속하여 업데이트 할 버전의 파일을 다운로드 합니다. 물론 새 버전에서는 위의 버전을 한단계씩 바꿔줘야 합니다. ota를 할 함수는 재부팅시마다 실행되는데 ota 코드는 아래와 같습니다. 123.. 2019. 3. 18.

인기글