2019年8月。
また、人気のある会社EspressifのESP32チップ、またはESP32ベースのモジュールを使用する革新的なIoTプロジェクトを作成したいですか?まあ、私はやりました。そして、私もあなたもそうすることを願っています。
この適切に文書化されたスターターキットの目的は、ESP-IDFフレームワークを使用してESP32ハードウェアのIoTプロジェクトの開発を加速することです。
すぐに始める方法を発見する準備はできていますか?
mkdir ~/esp
cd ~/esp
git clone -b v3.2.2 --recursive https://github.com/espressif/esp-idf.git esp-idf
この部分には、最初に使用したESP32開発ボードに関する基本情報が含まれています。
ESP32開発ボードは、そのようなアダプターによって(簡単に)プログラムすることができます。
この部品には、いくつかの製品とそれらの構成方法を文書化します。
充電式バッテリーは、IoTプロジェクトでよく使用されます。
このパートでは、人気のあるバッテリー充電器、自作のバッテリー放電器、ライオンバッテリーやLifePo4バッテリーなどの人気のあるバッテリーの詳細です。また、過酷な条件で使用するために、プロのリソシ2リチウム - チオニル - 塩化非塩化バッテリーに関するいくつかの仕様も含まれています。
ESP32開発ボードと組み合わせてよく使用される主にNチャネル電源MOSFETに関するいくつかのドキュメント。
TP4056モジュールに関するドキュメント。
ESP32開発ボードの一部であるLDO電圧レギュレーターに関するいくつかのドキュメント。
スターターキットには、即座に実行できるさまざまな作業プロジェクトが含まれています。初心者にとっては簡単ではないスニペットとは対照的です。
これらのプロジェクト:
公式のESP-IDFフレームワークを実際に効率的に使用する方法についての洞察を与えます。
大量の最高のコーディングプラクティスと構成プラクティスを含めます。
RGB LEDストリップやメテオセンサーなど、このスターターキットの新しいESP-IDFコンポーネントを使用する方法を示します。
特別プロジェクトesp32_mjd_components :
コア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 SPIFFSファイルシステムドライバーの使用方法。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 ULTRA-SMALL、低電力、低電力、I2Cに満ちたI2Cに満足している、860-SPSを使用して、16-BIT ADCSを使用して、16-BIT ADPSを使用することの基本を示しています。バス。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を組み合わせて組み合わせて実証します。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 BROAKOUT BOARDと対話する方法(MicroChip RN2843 LORAトランシーバー)。このプロジェクトは、LORA RX受信機能を示しています。注:LorawanではなくLora P2Pを使用しています。esp32_lorabee_tx_using_lib SODAQ LORABEE BROAKOUT 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、相対湿度%、ALOS DEW POINT C F.esp32_ssd1306_oled_using_lib SSD1306 OLEDドライバーICに基づく人気のある128x32および128x64 OLEDディスプレイのこのプロジェクトは、OLEDディスプレイにテキストを表示するコンポーネントMJD_SSD1306を示しています。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環境と組み込みシステムの詳細に関連しています。例:簡単なWiFiコンポーネント。これらのESP-IDF機能を使いやすくします。
ネットワークに関連しています。いくつかの例:MQTTサーバーといくつかのDNS機能とのインターフェース。コンポーネントは複雑さを抽象化し、使いやすくします。
ESP32チップまたはESP32モジュールに配線する周辺機器に関連しています。いくつかの例:LORAボード、RGB LED、温度センサー、GPSボード、RTCクロック、PIRセンサー、障害物センサー。コンポーネントは、周辺の複雑さを抽象化します。
これは新しいコンポーネントのリストです。
mjd汎用関数を含むベースコンポーネント。mjd_ads1115 TI ADS1115のアナログからデジタルコンバーター16ビットのコンポーネント。mjd_am2320コンポーネント。mjd_bh1750fviコンポーネント。mjd_bme280コンポーネント。mjd_bmp280コンポーネント。mjd_dht11コンポーネント。mjd_dht22コンポーネント。mjd_ds3231コンポーネント。mjd_hcsr501コンポーネント。mjd_huzzah32コンポーネント(バッテリー電圧レベルの読み取り)。mjd_jsnsr04tコンポーネント。mjd_ky032コンポーネント。mjd_ledrgbコンポーネント。mjd_listコンポーネント。mjd_logコンポーネント。mjd_lorabeeコンポーネントSODAQ LORABEE MICROCHIP RN2483Aボードと相互作用するコンポーネント(MicroChip RN2843 868MHz Loraチップが含まれています)。mjd_mlx90393 MELEXISのコンポーネントMLX90393磁場センサー(XYZ軸と温度メトリック)。mjd_mqttコンポーネント(MQTTクライアントとして)。mjd_nanopbコンポーネントは、Googleプロトコルバッファーを使用して動作します。 Nanopbライブラリv0.3.9.2の一般的なCファイルが含まれています。また、makefile.projbuildでnanopb固有のプロジェクト全体のコンピレーションディレクティブ(-d)を宣言しますmjd_netコンポーネントさまざまなネットワーク機能を容易にします(IPアドレスの取得、DNS Resolve HostNamesなど)。mjd_neom8nコンポーネント。mjd_scd30コンポーネント。mjd_sht3xコンポーネント。mjd_ssd1306コンポーネント。mjd_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資格情報など)。make flash monitor実行して、DEVボードに例を構築およびアップロードし、シリアル端末を介して実行を監視します。 ESP-IDFフレームワーク(およびそのドキュメント)は非常に強力で広範です。
すぐに始めるのは難しいと感じました。私は、組み込みシステムを使用してIoTソリューションを開発した経験がなく、味付けされたフルスタック開発者(バックエンド/フロントエンド)です。
より具体的には、ESP-IDFフレームワークのすべての機能を理解できましたが、すべてを接着するのに苦労し、センサー、ロラボード、GPSボード、LEDストリップなどの特定の周辺機器を使用して、実際のソリューションの実際のプロジェクトをすばやく開発しました。たとえば、ネットワーク内のさまざまなセンサーを制御し、中央サーバー上のデータを分析してから、より複雑なプロジェクトに進むプロジェクトから始めたいと思いました。
第二に、メテオセンサー、GPSボード、RGB LEDなど、さまざまな周辺機器の優れたドキュメント(データシート、図、配線の写真)を見つけることは困難でした。
そこで、これらの追加コンポーネント、優れたドキュメント、およびIoTプロジェクトで通常使用される周辺機器のスイート全体を対象とした多くの作業プロジェクトを時間の経過とともに開発しました。
今こそ、ESP32コミュニティに何かを返して、私が学んだすべてをオープンソースに関してリリースする良い時期です。
ESP32チップの開発を開始する2つのオプションがあります。
両方のフレームワークが安定して使用可能であるが、それらはまだespressifによる重要な開発中であり、主要な新しいリリースが定期的に発表されていることを知ることが重要です。これは、少なくとも2018Q4まで続くと予想しています。
両方のフレームワークを実験した後、ESP-IDFフレームワーク、より具体的にはv3.1以降を使用することにしました。私は常に、最後の安定したリリースと互換性のあるライブラリをリリースしようとしています。
ESP32スターターキットはすぐに始めます。既存のコンポーネントの追加機能が必要な場合、または新しいコンポーネントを提案する場合は、問題を提出してください。
すべてのMJDコンポーネントは、プロジェクトmjd_componentsに集中しています。
このキットは、ESP32プロジェクトのすべての考えられる機能を実装するようには設計されていません。新機能がプロジェクトに非常に具体的である場合、最良のアプローチは、必要な機能を使用してESP-IDFコンポーネントの独自のバンドルを作成することです。これらのコンポーネントを基礎として使用できます。このスターターキットからコンポーネントを入手したことを忘れないでください。
「MJD」は何の略ですか?それは意味のないコードワードであり、識別子をユニークにするためにC言語で使用されます。このアプローチにより、これらの新しいESP-IDFコンポーネントを他のCプロジェクトで使用できるようになります。
すべてのプロジェクトとコンポーネントが1つのGitHubリポジトリに保存されているのはなぜですか(各プロジェクトと各コンポーネントにGitHubリポジトリを持っていることとは反対ですか?これにより、スターターキットが初心者に使いやすくなると思います。将来、キットはGitサブモジュールを使用してセットアップされる可能性があります。
Githubを確認してください。
ガスセンサー、ダスト粒子センサー、4-20MA電流ループコンポーネント、TFTディスプレイ、RGB LEDマトリックス用の追加コンポーネントをリリースします。
OTAの更新を示すための追加プロジェクトをリリースします(ファームウェアをリモートでアップグレードします)。
IoTプラットフォームを公開して、フィールド内のデバイスを管理し、着信データを分析できるようにします。
このキットの技術文書のための新しいWebサイトを作成します。