• 日本語
    • English (英語)
Avinton JapanAvinton JapanAvinton JapanAvinton Japan
  • サービス
    • Avinton Data Platform
    • エッジAIカメラ
      • 自動車ナンバープレート自動認識システム
    • プライベートクラウド
    • AIサービス開発
    • AIカメラ/画像解析無料体験版
  • 最新情報
    • ニュースリリース&イベント情報
    • 技術ブログ&インタビュー
  • アカデミー
    • Avintonアカデミー
    • Academy on Campus
    • Academy with Platform
  • 採用情報
    • Avintonジャパン 採用ページ
    • 求人一覧
    • よくある質問
    • 新卒採用
  • 企業情報
    • 会社概要
    • 代表からご挨拶
    • SDGsへの貢献
  • お問い合わせ

ESP32とArduino IDE/PlatfromIOでHello Worldアプリケーションの実行

  • ルーティング
  • データベースの命名規則
  • 三目並べ – 2.〇×を交互にゲーム盤に入るようにしよう
  • 三目並べ – 3.勝敗がつくようにしよう
  • クリーンコード(Clean Code)
  • 三目並べ – 4.「スタート」「リセット」ボタンをつけよう
  • 三目並べ – 5.先攻後攻を決めて、コンピュータ対戦にしよう(前編)
  • インフラストラクチャー(サーバー、コンポーネント、RAID)
  • 機械学習入門者向け Support Vector Machine (SVM) に触れてみる
  • YOLOv8を用いた物体検出
  • 正規表現とパイプ
  • 機械学習エンジニアに必要なスキル
  • 軽量版Kubernetesディストリビューション – k0s クラスターの構築
  • ファイル操作コマンド
  • グループとユーザー
  • 困った時に使うコマンド
  • 一般グループのユーザーとグループ
  • プライバシーポリシー
  • 三目並べ – 6.先攻後攻を決めて、コンピュータ対戦にしよう(後編)
  • フロントエンド開発のための環境構築
  • ファイル検索コマンド
  • 質問
  • 仮想化環境のディスク容量を拡張する
  • ユーザー権限とアクセス権
  • データ分析基礎 – Part1
  • 三目並べ – 0.導入
  • テキスト処理
  • データベースへのデータロード
  • 機械学習概要1
  • 機械学習入門者向け Naive Bayes(単純ベイズ)アルゴリズムに触れてみる
  • ファイル管理
  • SSHを使用してホストOSからゲストOSに接続する
  • 機械学習入門者向け ChainerRLでブロック崩しの学習
  • 機械学習入門者向け ランダムフォレストによる Kaggle Titanic生存者予測
  • 機械学習概要2
  • データ分析基礎 – Part 2
  • 機械学習入門者向け 分類と回帰の違いをプログラムを書いて学ぼう
  • フロントエンドのWeb開発について
  • ダイナミックルーティング
  • 三目並べ – 1.ゲーム盤を作ろう
  • 【Python入門】Python Numpy チュートリアル
  • Amazon EC2 インスタンスの初期設定をしよう
  • AmazonEC2とVPCでネットワークとサーバーを構築しよう
  • Apache NiFi Exercise
  • Apache NiFi データパイプライン基礎
  • Apache NiFiの環境設定
  • Apache Spark 基礎
  • Apache SparkとApache Zeppelinの概要と環境構築
  • Apache Superset maptoolの使い方
  • Apache Superset 基礎
  • Apache Superset 概要と環境構築
  • Apache Zeppelin 基本機能
  • APIのデモンストレーション
  • Avinton Academy コンテンツガイド
  • AWS CLIをインストールしてコマンド操作しよう
  • AWS CLIを使ってEC2のファイルをS3へアップロードしよう
  • AWS Route 53を使って独自ドメインのWebページを表示させてみよう
  • AWSアカウントの作成と必ずやるべきセキュリティ対策
  • AWSのEC2インスタンスでWordPressブログを公開してみよう
  • AWS入門者向け 初心者が最初に理解すべきEC2とVPCの基本的な用語解説
  • CCNA
  • Certbotを使ってSSL証明書を発行し、HTTP通信を暗号化しよう
  • CISCO 1800ルータセットアップ
  • CSV import & export – Node.js, mySQL – 1
  • CSV import & export – Node.js, mySQL – 2
  • Docker Compose(Nginx + Flask + MySQL)演習
  • Docker Engineのubuntu上へのinstall
  • Docker 概要とセットアップ
  • Docker, Kubernetesの学び方について
  • Dockerコンテナイメージの最適化/ベストプラクティス
  • DockerとApacheを使ってWebサーバーを構築しよう
  • EC2からS3へ自動でぽいぽいアップロードするスクリプトの作成
  • ESP32-CAMのサンプルアプリケーションを実行する
  • 01 – Sparkfun Inventor’s Kit の準備
  • 02 – Sparkfun Inventor’s KitでLチカ
  • 03 ポテンショメータでLEDの点滅間隔をアナログ入力する
  • 04 フォトレジスタで明るさに反応するシステムをつくる
  • 05 LCDに文字列を表示する
  • 06 – BME280とLCDを組み合わせて温度計をつくる
  • ESP32とArduino IDE/PlatfromIOでHello Worldアプリケーションの実行
  • ESP32と超音波センサー HC-SR04 で物体の距離を計測する
  • ESXi – Switchの追加とVLAN
  • ESXi – VyOS
  • ESXi – 小規模ネットワーク 構築
  • Gitとは
  • VS CodeでGitHub Copilotを設定する
  • VSCode リモート開発環境
  • GNS3のセットアップ
  • Kubernetesクラスター上へのOpenVINOモデルサーバーを使用したサンプルアプリケーションのデプロイ
  • Linuxとは
  • NAT
  • NodeJSでWebアプリケーション開発 – React編
  • NodeJSでWebアプリケーション開発 – React編
  • NodeJSでWebアプリケーション開発 – React編
  • NodeJSでWebアプリケーション開発 – Socket.IO編
  • NVIDIA Cumulus VX + GNS3でBGPネットワークのシミュレーション
  • OpenCVのテストプログラム
  • PacketTracerのセットアップ
  • Pandasによる構造化データ分析
  • PCからルータ、スイッチへのSSH接続設定
  • PostGIS exercise
  • PostgreSQL – Python – Apache – Bootstrap
  • MySQLとMySQL Workbench のセットアップ
  • PostgreSQL Setup
  • PostgreSQL – インデックスを利用したパフォーマンス改善方法
  • PostgreSQL – パーティショニングを利用したパフォーマンス改善方法
  • PostgreSQLによるデータ分析
  • postgreSQLへのshp fileのimport
  • Python2.7とOpenCVのインストール
  • Python3.8 と OpenCV のインストール (Ubuntu20.04LTS)
  • Pythonでデータベースを操作する
  • Pythonで画像を分類するプログラムを作成する
  • Pythonによるマルチスレッドプログラミング実践
  • Raspberry Pi 4B のセットアップ
  • Raspberry PiとBME280を使用して温度と湿度、気圧を読み取る
  • REDIS
  • Redux基礎 – 主要な概念と用語
  • Ruby on Rails を MySQLでセットアップ
  • Ruby on Railsによる簡単なウェブアプリケーション
  • SampleアプリケーションのKubernetes上へのデプロイ
  • Scala 基礎
  • scikit-learnとは
  • Spark SQL エクササイズ
  • SparkMLによるKaggle Titanic生存者予測
  • SparkMLによる住宅価格予測
  • SQL 便利な関数
  • Ubuntuの基本設定
  • uhubctlでUSBデバイスのオンオフをコントロール
  • Terraform入門 2 – Terraformのstate管理
  • Terraform入門 1 – TerraformでAWS上にEC2インスタンスを作成する
  • Virtualisation and Container (仮想化とコンテナ) – Ansible, Docker and Kubernetes
  • viエディタ
  • VLAN
  • VMware ESXi サーバー構築
  • Webアプリ開発に欠かせないGoogle Chrome DevToolsの基本
  • Windows Server 2012 R2 Hyper-V
  • YOLOv5を用いた物体検出
Home Avintonアカデミー ESP32とArduino IDE/PlatfromIOでHello Worldアプリケーションの実行

はじめに

ESP32は小型かつ安価で入手しやすく、WiFiやBluetoothも使用できることから、IoTプロジェクトで人気があります。ESP32のアプリケーション開発を行う際に使用される開発環境のセットアップ方法とHello Worldアプリケーションの実行方法を説明します。

ESP32の画像

ESP32向けの開発環境

ESP32の開発環境として、以下のようなものがあります。

  • ESP-IDF: ESP32の公式開発環境。VSCodeなどIDE上のプラグインとして利用できる。セットアップや使用方法はやや複雑で上級者向け。
  • Arduino IDE: Arduino向けのIDE。操作がシンプルで初心者向けで扱いやすい。ESP32などの互換ボードもサポートしている。
  • PlatformIO: VSCodeのプラグインとして利用可能。ビルドやライブラリのバージョン管理などを効率的に行うことができる。中級者向け。

今回は、Arduino IDEとPlatform IOの2つの使い方を説明します。

ESP32とPCの接続

どの開発環境を使う場合でも、最初にESP32をPCに接続する手順を行います。ESP32のドキュメントに従って、必要なドライバをインストールします。

今回はWindows上でのセットアップ方法を説明しますが、ドライバのバージョンや種類などは使用するPC環境に合わせてください。

まず、以下のリンクからCP210xのドライバのダウンロードを行います。
取得したZIPファイルを展開しておきます。

  • CP210x: CP210x USB to UART Bridge VCP Drivers

CP210xのドライバのダウンロード

取得したZIPファイルを展開する

同様に、以下のリンクからVirtual COM Port ドライバのダウンロードを行います。 取得したZIPファイルを展開しておきます。

  • FTDI Virtual COM Port Drivers

Virtual COM Port ドライバのダウンロード

次にWindowsのデバイスマネージャーを開きます。 赤枠のボタンから各ドライバをインストールします。

Windowsのデバイスマネージャーを開き各ドライバをインストール

ドライバのインストールが完了したら、ESP32をPCに接続します。
次のように接続したデバイスが表示されたら成功です。ポート番号は使用しているPCによって異なります。

(以下の例では”USB-SERIAL CH340 COM4″)

接続したデバイスが表示される

Arduino IDE

Arduino IDEは、Arduinoボード上で動作するアプリケーションを開発するための統合開発環境(IDE)です。Arduinoボードとのシリアル通信や、ライブラリ管理などを行うことができます。本家のArduinoボードだけではなく、ESP32などの互換性のあるボードにも対応しています。

こちらのリンクからダウンロードしてインストールしてください。

PCにESP32を接続した状態でArduino IDEを開きます。

Arduino IDEを開く

新規のスケッチを作成します。

新規のスケッチを作成

以下のコードを貼り付けます。

1
2
3
4
5
6
7
8
void setup() {
  Serial.begin(115200);
}
 
void loop() {
  Serial.println("Hello World!");
  delay(5000);
}

その後、デバイスへのアップロードを行います。コンパイルとアップロードが始まります。

デバイスへのアップロードを行う

右上のSerial Monitorを開くと、”Hello World!”という文字列が5秒おきに表示されます。

Serial Monitorを開く

Arduino IDEを使用して、ESP32上に簡単なコードをアップロードして、動作確認を行うことができました。

Platform IO

Platform IOはVSCodeのプラグインとして利用します。VSCodeは別途こちらからダウンロードしてインストールしてください。

VSCodeを起動して、拡張機能のタブから”Platform IO”を検索してインストールします。

"Platform IO"をインストール

インストールが完了後、VSCodeを再起動する必要があります。
正常にインストールできたら、左のサイドバーにPlatform IOのロゴが出現します。

サイドバーにPlatform IOのロゴが出現する

新規のプロジェクトを作成し、以下の項目を指定します。ご自身の環境に合わせて設定してください。

  • プロジェクト名
  • ボード名
  • フレームワーク
  • プロジェクトのパス

新規のプロジェクトを作成し項目を指定

プロジェクトを作成すると新しく”platformio.ini”ファイルが作成されます。 (初めてプロジェクトを作成すると、必要なライブラリなどのインストールが行われます。このインストールはやや時間がかかります。)

新しく"platformio.ini"ファイルが作成される

“src”ディレクトリ以下にある、”main.cpp”を編集します。 5秒おきに”Hello World!”をシリアルコンソールに出力します。

1
2
3
4
5
6
7
8
9
10
#include <Arduino.h>
 
void setup() {
  Serial.begin(9600);
}
 
void loop() {
  Serial.println("Hello, World!");
  delay(5000);
}

コードをビルドします。初めて実行すると、必要なライブラリなどがダウンロードされます。

コードをビルドする

ビルドが成功するとターミナルにSUCCESSと表示されます。

ビルドが成功するとターミナルにSUCCESSと表示される

コードをESP32にアップロードします。”Auto”モードでは、自動的にESP32を認識してアップロードします。失敗する場合は”Auto”ではなく明示的に”COM4″などポート番号を指定してください。

コードをESP32にアップロード

シリアルコンソールに”Hello World!”が表示されます。

シリアルコンソール

以上でVSCodeのPlatform IOプラグインを使用して、Hello Worldアプリケーションの実行ができました。

エラー “Error: Detected a whitespace character in project paths”が表示される場合

プロジェクトのパスや.platformioが配置されているパスに空白が含まれると上記のエラーが出ます。プロジェクトと.platformioの両方を、Cドライブ直下に移動することでエラーが解消されます。

こちらのGitHub issuesで報告されています。

まとめ

ESP32向けの統合開発環境であるArduino IDEとPlatform IOのそれぞれのセットアップ方法を紹介しました。Arduino IDEではシンプルで簡単にESP32のプロジェクトを始めることができます。Platform IOではVSCodeの拡張機能として、より多機能で柔軟にプロジェクト管理を行うことができます。

ESP32やIoTデバイスの開発では試行錯誤して、いろいろな実験を行うことが重要です。実験を行う際に効率的にプログラムを書くことができるように、自分にあう開発環境を構築してみてください。

採用情報

採用情報

Categories

  • 相互学習
  • 採用
  • 社員インタビュー
  • 学習&資格取得
  • 技術解説
  • イベント告知
  • 学内説明会&講義
  • 産学連携
  • 就職活動
  • イベントレポート
  • その他
  • 技術ブログ&インタビュー
  • mainpage
  • New Graduates Interviews
  • 中途エンジニア
  • カテゴリーなし
  • ニュースリリース&イベント

Avinton SDGs

SDGsへの貢献

Search

タグ

albumentations Apache AvintonAcademy on Campus DQN FINOLAB Fintech Flutter IoT IoT James Cauchi LPIC LPIC-2 MVI試験 PostgreSQL Predictive Maintenance Raspberry Pi Society 5.0 Sound Analysis SSD インターン インターンシップ インフラ エリクソン クラウトネイティブ サーバークラスター スマート農業 セミナー データ データ生成 データ解析 ファンダフルリレーマラソン モブワーク 中瀬幸子 企業説明会 大学&専門学校 強化学習、機械学習 技術ブログ 採用 未経験 機械学習 環境構築 田中 研之輔 研究開発 第一級陸上特殊無線技士 講義
© 2023 Avinton | All Rights Reserved | プライバシーポリシー
  • サービス
    • Avinton Data Platform
    • エッジAIカメラ
      • 自動車ナンバープレート自動認識システム
    • プライベートクラウド
    • AIサービス開発
    • AIカメラ/画像解析無料体験版
  • 最新情報
    • ニュースリリース&イベント情報
    • 技術ブログ&インタビュー
  • アカデミー
    • Avintonアカデミー
    • Academy on Campus
    • Academy with Platform
  • 採用情報
    • Avintonジャパン 採用ページ
    • 求人一覧
    • よくある質問
    • 新卒採用
  • 企業情報
    • 会社概要
    • 代表からご挨拶
    • SDGsへの貢献
  • お問い合わせ
  • 日本語
    • English (英語)
Avinton Japan