2019 년 8 월.
또한 인기있는 회사 Espressif의 ESP32 칩 또는 ESP32 기반 모듈을 사용하는 혁신적인 IoT 프로젝트를 만들고 싶습니까? 글쎄, 나는 여전히했고 여전히 그렇게했다. 그리고 나도 당신도하기를 바랍니다.
이 잘 문서화 된 스타터 키트의 목적은 Espressif의 ESP-IDF 프레임 워크를 사용하여 ESP32 하드웨어에 대한 IoT 프로젝트의 개발을 가속화하고 다양한 하드웨어 모듈을 사용하여 ESP32 용 어떤 종류의 앱을 구축 할 수 있는지 영감을주는 것입니다.
빨리 시작할 수있는 방법을 발견 할 준비가 되셨습니까?
mkdir ~/esp
cd ~/esp
git clone -b v3.2.2 --recursive https://github.com/espressif/esp-idf.git esp-idf
이 부분은 처음에 사용한 일부 ESP32 개발 보드에 대한 기본 정보가 포함되어 있습니다.
ESP32 개발 보드는 그러한 어댑터에서만 (쉽게) 프로그래밍 할 수 있습니다.
이 부분은 몇 가지 제품과 구성 방법을 문서화합니다.
충전식 배터리는 종종 IoT 프로젝트에 사용됩니다.
이 부분은 인기있는 배터리 충전기, 자체 제작 된 배터리 방출기 및 라이온 배터리 및 LIFEPO4 배터리와 같은 인기있는 배터리에 대한 세부 사항입니다. 또한 가혹한 조건에서 사용하기 위해 전문적인 Lisoci2 리튬-클로라이드 비 응원 배터리에 대한 사양도 포함되어 있습니다.
ESP32 개발 보드와 함께 종종 사용되는 N 채널 전력 MOSFET에 대한 일부 문서.
TP4056 모듈에 대한 문서.
ESP32 개발위원회의 일부인 LDO 전압 조정기에 대한 일부 문서.
스타터 키트에는 즉시 실행할 수있는 다양한 작업 프로젝트가 포함되어 있습니다. 스 니펫에 반대하는 스 니펫에 반대하여 초보자에게는 쉽지 않습니다.
이 프로젝트 :
실제로 공식 ESP-IDF 프레임 워크를 효율적으로 사용하는 방법에 대한 통찰력을 제공하십시오.
최고의 코딩 관행 및 구성 관행을 포함시킵니다.
RGB LED 스트립 및 Meteo 센서와 같은이 스타터 키트의 새로운 ESP-IDF 구성 요소를 사용하는 방법을 보여줍니다.
특별 프로젝트 esp32_mjd_components :
Core ESP-IDF 프레임 워크를 사용하는 방법을 보여주는 몇 가지 프로젝트를 강조하겠습니다.
esp32_button_basics 버튼 (스위치)과 인터페이스하는 방법.esp32_deep_sleep_wakeup_basics 스위치 또는 자기 도어/창 센서를 사용하여 ESP32를 깊은 수면에서 깨우는 방법을 보여줍니다.esp32_http_client 표준 ESP-IDF 구성 요소 "ESP32_HTTP_CLIENT"를 사용하는 기본 사항을 보여줍니다.esp32_gpio_basics 개발 보드의 GPIO 핀과 상호 작용하는 방법.esp32_gpio_scanner 모든 GPIO 핀을 스캔하고 I/O 기능을 발견하는 방법.esp32_i2c_scanner I2C 핀에서 모든 슬레이브 장치를 스캔하고 I2C 슬레이브 주소를 식별하는 방법. 새로운 I2C 슬레이브 장치와 함께 작업 할 때 편리합니다.esp32_ledc_pwm_basics 표준 ESP-IDF LEDC 드라이버 (PWM을 사용하는 LED 컨트롤러 드라이버)를 사용하는 방법.esp32_nvs_basics 사용자 정의 NVS 파티션이있는 표준 ESP-IDF NVS (비 휘발성 저장소) 드라이버를 사용하는 방법.esp32_rmt_basics 표준 ESP-IDF RMT 드라이버를 사용하는 방법.esp32_spiffs_basics 표준 ESP-IDF 파일 시스템 드라이버를 사용하는 방법.esp32_sw180_tilt_sensor 이 틸트 센서와 인터페이스하는 방법 (추가 구성 요소가 필요 없음).esp32_timer_basics 표준 ESP-IDF 타이머 드라이버 사용 방법.esp32_uart_basics 표준 ESP-IDF UART 드라이버를 사용하는 방법.esp32_uart_do_output 표준 ESP-IDF UART 드라이버를 사용하는 방법.esp32_udp_client ESP-IDF 프레임 워크를 사용하여 UDP 클라이언트를 구현하는 기본 사항을 보여줍니다.ESP32 MJD 스타터 키트의 추가 구성 요소를 사용하는 방법을 보여주는 몇 가지 프로젝트를 강조하겠습니다.
esp32_ads1115_adc_using_lib ESP32에 MJD ESP-IDF 구성 요소 "MJD_ADS1115"를 사용하는 기본 사항과 TI ADS1115 초소형, 저전력, 860-SPS, 16- 비트 ADCS, OSTILLATOR, 및 OSTILLATOR, 및 Progrillator, 16- 비트 ADC의 인기있는 브레이크 아웃 보드를 사용하는 기본 사항을 보여줍니다.esp32_am2320_temperature_sensor_using_lib AOSONG AM2320 METEO 센서에서 데이터를 읽는 방법.esp32_bh1750fvi_lightsensor_using_lib BH1750 조명 강도 센서에서 데이터를 읽는 방법.esp32_bme280_sensor_using_lib BOSCH BME280 METEO 센서의 데이터를 읽는 방법.esp32_bmp280_sensor_using_lib BOSCH BMP280 METEO 센서의 데이터를 읽는 방법.esp32_dht11_temperature_sensor_using_lib AOSONG DHT11 온도 센서에서 데이터를 읽는 방법.esp32_dht22_temperature_sensor_using_lib AOSONG DHT22/AM2302 온도 센서에서 데이터를 읽는 방법.esp32_door_sensor_reed_switch 리드 스위치를 기반으로하는 자기 도어/창 센서를 사용하는 방법을 보여줍니다.esp32_ds3231_clock_using_lib DS3231 ZS042 RTC 실시간 클럭 보드에서 데이터를 수집하는 방법.esp32_hcsr501_pir_sensor_using_lib HC-SR501 PIR 인간 적외선 센서에서 데이터를 읽는 방법.esp32_huzzah32_battery_voltage_using_lib adafruit huzzah32 개발 보드의 특정 기능을 사용하는 방법. 예 : 배터리 전압 레벨을 읽으십시오.esp32_jsnsr04t_using_lib 이 프로젝트는 ESP32 개발 보드와 함께 JSN-SR04T-2.0 방수 초음파 센서 모듈의 모든 기능을 보여줍니다. 디버그 로그에 측정 값을 덤프합니다.esp32_jsnsr04t_oled_mosfet_using_lib 이 프로젝트는 JSN-SR04T-2.0 방수 초음파 센서 모듈의 모든 기능을 ESP32 개발 보드, OLED 디스플레이 모듈, 센서를 켜고 끄기위한 전력 MOSFET 및 딥 사이클을 켜는 전원 MOSFET을 보여줍니다.esp32_ky032_obstacle_sensor_using_lib KY-032 적외선 장애물 회피 센서에서 데이터를 읽는 방법.esp32_ledrgb_using_lib RGB LED 스트립 (예 : Adafruit NeoPixels 및 BTF-Lightning 제품)을 제어하는 방법.esp32_linked_list_basics 링크 된 목록 구성 요소를 사용하는 방법.esp32_lorabee_using_lib Sodaq Lorabee Breakout Board (Microchip RN2843 Lora Transceiver)와 상호 작용하는 방법. 이 프로젝트는 장치를 구성하고 NVM을 읽고 쓰는 기본 명령을 보여줍니다.esp32_lorabee_rx_using_lib Sodaq Lorabee Breakout Board (Microchip RN2843 Lora Transceiver)와 상호 작용하는 방법. 이 프로젝트는 LORA RX 수신 기능을 보여줍니다. 참고 : Lorawan이 아닌 Lora P2P를 사용합니다.esp32_lorabee_tx_using_lib Sodaq Lorabee Breakout Board (Microchip RN2843 Lora Transceiver)와 상호 작용하는 방법. 이 프로젝트는 LORA TX 전송 기능을 보여줍니다. 참고 : Lorawan이 아닌 Lora P2P를 사용합니다.esp32_lorabee_using_pc_usbuart 이 프로젝트는 Windows PC 및 USB-UART 보드 (예 : FTDI)를 사용하여 Lorabee 모듈에 기본 명령을 발행하는 방법을 보여줍니다. 이것은 Lorabee / Microchip RN2843A 보드의 기능에 익숙해지는 쉬운 방법입니다.esp32_mlx90393_using_lib Melexis MLX90393 자기장 센서를 사용하여 자기장 데이터를 얻는 방법.esp32_neom8n_gps_using_lib gps ublox neo-m8n 모듈에서 GPS 데이터를 얻는 방법.esp32_scd30_sensor_settings_using_lib SENSIRION SCD30 CO2 및 RH/T 센서 모듈 의이 프로젝트는 센서의 모든 설정 **을 표시하고 다양한 보정 모드를 실행하기 위해 센서가 올바르게 작동하는지 확인하는 데 사용됩니다.esp32_scd30_sensor_readings_using_lib Sensirion SCD30 CO2 및 RH/T 센서 모듈에 대한이 프로젝트는 CO2 측정, 관련 및 파생 측정 및 대기 질 인덱스를 지속적으로 읽습니다.esp32_sht3x_sensor_using_lib 이 프로젝트는 구성 요소 MJD_SHT3X를 보여줍니다. Sensirion SHT3X 디지털 습도 및 온도 센서의 MJD_SHT3X 구성 요소는 장치를 구성하고 출력 메트릭 (온도 CF, 상대 습도 % 및 이슬점 C F를 수집합니다.esp32_ssd1306_oled_using_lib SSD1306 OLED 드라이버 IC를 기반으로 인기있는 128x32 및 128x64 OLED 디스플레이에 대한이 프로젝트는 구성 요소 MJD_SSD1306을 보여주기 위해 OLED 디스플레이에 텍스트를 표시합니다.esp32_tmp36_sensor_ads1115_adc_using_lib 이 프로젝트는 구성 요소 MJD_ADS1115 및 MJD_TMP36을 보여줍니다. Ti ADS1115 아날로그-디지털-컨버터의 MJD_ADS1115 구성 요소는 아날로그 온도 센서의 전압 출력을 읽는 데 사용됩니다. TMP36 센서의 MJD_TMP36 구성 요소는 ADC의 원시 전압 판독을 섭씨 섭씨로 투명하게 변환하는 데 사용됩니다.esp32_wifi_device_scanner 모든 WiFi 채널을 스캔하고 장치를 발견하는 방법.esp32_wifi_ssid_cloner 기존 액세스 포인트를 복제하는 방법.esp32_wifi_ssid_scanner 모든 WiFi 채널을 스캔하고 액세스 포인트를 발견하는 방법.esp32_wifi_ssid_spammer 영역에서 추가 액세스 포인트를 만드는 방법.esp32_wifi_stress_test 이 앱은 WiFi 스테이션 역할에서 ESP32 DEV 보드에 대한 응력 테스트를 실행합니다. 목적은 ESP-IDF 프레임 워크의 특정 버전의 ESP32 WiFi 소프트웨어 드라이버의 안정성을 확인하는 것입니다. 다양한 공급 업체의 WiFi 액세스 포인트 제품으로 올바른 작동을 확인합니다.ESP32를 위해 개발 한 첫 번째 프로젝트에서 많은 코딩 패턴이 계속해서 돌아 왔음을 알았습니다.
그래서 얼마 후 나는 그 코딩 패턴을 별도의 라이브러리에 넣기 시작했습니다. ESP-IDF는 확장 가능한 프레임 워크이므로 이러한 라이브러리는 ESP-IDF 기반 프로젝트에서 쉽게 주입 할 수있는 새로운 ESP-IDF 구성 요소로 구현됩니다.
모든 ESP-IDF MJD 구성 요소는 프로젝트 esp32_mjd_components 에 중앙 집중식입니다.
구성 요소는 대략 3 개의 그룹으로 나눌 수 있습니다.
C 언어로의 프로그래밍과 관련이 있습니다 (자체의 다른 모든 프로그래밍 언어로 자체의 단점이 있음). 예 : 링크 된 목록.
ESP32 환경 및 임베디드 시스템의 세부 사항과 관련이 있습니다. 예 : 쉬운 Wi -Fi 구성 요소. ESP-IDF 기능을 쉽게 사용할 수 있습니다.
네트워킹과 관련이 있습니다. 몇 가지 예 : MQTT 서버 및 일부 DNS 기능과 인터페이스합니다. 구성 요소는 복잡성을 추상화하고 사용하기 쉽습니다.
ESP32 칩 또는 ESP32 모듈로 연결하는 주변 장치와 관련이 있습니다. 일부 예 : LORA 보드, RGB LED, 온도 센서, GPS 보드, RTC 시계, PIR 센서 및 장애물 센서. 구성 요소는 주변의 복잡성을 추상화합니다.
이것은 새로운 구성 요소 목록입니다.
mjd 범용 기능이 포함 된 기본 구성 요소입니다.mjd_ads1115 구성 요소.mjd_am2320 구성 요소.mjd_bh1750fvi 구성 요소.mjd_bme280 구성 요소.mjd_bmp280 구성 요소.mjd_dht11 구성 요소.mjd_dht22 구성 요소.mjd_ds3231 구성 요소.mjd_hcsr501 구성 요소.mjd_huzzah32 구성 요소 (배터리 전압 레벨 읽기).mjd_jsnsr04t 구성 요소.mjd_ky032 구성 요소.mjd_ledrgb 구성 요소 (Adafruit NeoPixels 제품 라인과 같은 WorldSemi WS28xx 칩).mjd_list 구성 요소.mjd_log 구성 요소 앱의 로깅을 용이하게합니다.mjd_lorabee 구성 요소 Sodaq Lorabee Microchip RN2483A 보드 (마이크로 칩 RN2843 868MHz LORA 칩 포함)와 상호 작용합니다.mjd_mlx90393 구성 요소.mjd_mqtt 구성 요소.mjd_nanopb 구성 요소 Google 프로토콜 버퍼와 함께 작동합니다. NANOPB 라이브러리 v0.3.9.2의 공통 C 파일이 포함됩니다. 또한 makefile.projbuild에서 NANOPB 특정 프로젝트 전체 편집 지시문 (-d)을 선언합니다.mjd_net 구성 요소 다양한 네트워킹 기능 (IP 주소, DNS가 호스트 이름을 해결하는 등)을 용이하게합니다.mjd_neom8n 구성 요소.mjd_scd30 구성 요소.mjd_sht3x 구성 요소.mjd_ssd1306 구성 요소.mjd_tmp36 아날로그 장치의 TMP36 아날로그 온도 센서의 구성 요소. ADC와 함께 사용합니다.mjd_wifi 구성 요소는 WiFi 스테이션으로서 WiFi 액세스 포인트에 연결됩니다.이러한 구성 요소를보다 자세히 분류하겠습니다.
이 구성 요소는 여러 RGB LED 패키지를 지원합니다. 데이터 시트, 회로도 및 개발 보드에 연결하는 방법에 대한 지침 및 결국 추가 전원 공급 장치와 같은 필수 문서가 제공됩니다.
이러한 구성 요소에는 데이터 시트, 회로도 및 개발 보드에 연결하는 방법에 대한 지침과 같은 필수 문서가 함께 제공됩니다.
절차:
git clone https://github.com/pantaluna/esp32-mjd-starter-kit.git./projects 에서 탐색하려는 프로젝트의 디렉토리로 cd .make menuconfig 실행하십시오 (예 : GPIO PIN#, WiFi Credentials, ...).make flash monitor 실행하여 예제를 Dev 보드에 빌드하고 업로드하고 직렬 터미널을 통해 실행을 모니터링합니다. ESP-IDF 프레임 워크 (및 문서)는 매우 강력하고 광범위합니다.
빨리 시작하기가 어렵다는 것을 알았습니다. 나는 임베디드 시스템을 사용하여 IoT 솔루션을 개발 한 경험이 많지 않은 양념 된 풀 스택 개발자 (백엔드/프론트 엔드) 일뿐입니다.
보다 구체적으로, 나는 ESP-IDF 프레임 워크의 모든 기능을 이해할 수 있었지만 모든 것을 함께 붙이는 데 어려움을 겪고 있으며 센서, LORA 보드, GPS 보드 및 LED 스트립과 같은 특정 주변 장치를 사용하여 실제 솔루션을위한 실제 프로젝트를 신속하게 개발했습니다. 예를 들어, 네트워크에서 다양한 센서를 제어하고 중앙 서버의 데이터 분석을 시작한 다음보다 복잡한 프로젝트로 넘어 가고 싶었습니다.
둘째, Meteo 센서, GPS 보드, RGB LED 등과 같은 다양한 주변 장치 장치의 우수한 문서 (데이터 시트, 다이어그램, 배선 사진) 및 ESP32 기반 개발 보드와 함께 이러한 장치를 사용하는 방법을 찾기가 어려웠습니다.
그래서 저는 시간이 지남에 따라 이러한 추가 구성 요소, 좋은 문서 및 IoT 프로젝트에 일반적으로 사용되는 전체 주변 장치를 목표로하는 많은 작업 프로젝트를 개발했습니다.
이제 ESP32 커뮤니티에 무언가를 돌려주고 오픈 소스로 배운 모든 것을 발표하기에 좋은시기입니다.
ESP32 칩 개발을 시작할 두 가지 옵션이 있습니다.
두 프레임 워크 모두 안정적이고 유용 할 수 있지만 Espressif에 의해 여전히 상당한 발전을 받고 있으며, 새로운 릴리스가 정기적으로 나오고 있음을 아는 것이 중요합니다. 나는 이것이 최소한 2018 년 4 분까지 계속 될 것으로 기대합니다.
두 프레임 워크를 실험 한 후 ESP-IDF 프레임 워크,보다 구체적으로 v3.1 이상을 사용하기로 결정했습니다. 나는 항상 마지막 안정적인 릴리스와 호환되는 라이브러리를 출시하려고합니다.
ESP32 스타터 키트를 사용하면 신속하게 시작합니다. 기존 구성 요소의 추가 기능이 필요하거나 새 구성 요소를 제안하려면 문제를 제출하십시오.
모든 MJD 구성 요소는 프로젝트 mjd_components 에서 중앙 집중식입니다.
이 키트는 ESP32 프로젝트의 상상할 수있는 모든 기능을 구현하도록 설계되지 않았습니다. 새로운 기능이 프로젝트에 매우 구체적이라면 가장 좋은 방법은 원하는 기능을 갖춘 ESP-IDF 구성 요소 묶음을 만드는 것입니다. 이 구성 요소를 기초로 사용할 수 있습니다. 이 스타터 키트에서 구성 요소를 얻었음을 언급하는 것을 잊지 마십시오.
"MJD"는 무엇을 의미합니까? 의미가없는 코드 워드이며 C 언어로 식별자를 독특하게 만들기 위해 사용됩니다. 이 접근 방식을 사용하면 다른 C 프로젝트에서 이러한 새로운 ESP-IDF 구성 요소를 사용할 수 있습니다.
모든 프로젝트와 구성 요소가 하나의 GitHub 리포지토리에 저장되어있는 이유 (각 프로젝트 및 각 구성 요소에 대해 GitHub 리포지어가있는 것에 반대)? 이것이 스타터 키트를 초보자에게 더 쉽게 사용할 수 있다고 생각합니다. 앞으로 키트는 git 서브 모듈을 사용하여 설정 될 수 있습니다.
Github를 확인하십시오.
가스 센서, 먼지 입자 센서, 4-20mA 전류 루프 구성 요소, TFT 디스플레이 및 RGB LED 매트릭스에 대한 추가 구성 요소를 해제하십시오.
추가 프로젝트를 출시하여 OTA 업데이트를 보여주기 위해 (펌웨어를 원격으로 업그레이드).
IoT 플랫폼을 대중에게 공개하여 현장의 장치를 관리하고 들어오는 데이터를 분석 할 수 있습니다.
이 키트의 기술 문서를위한 새로운 웹 사이트를 만들려면