• 日本語
    • 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生存者予測
  • KNIME, AutoMLライブラリによる住宅価格予測
  • 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

タグ

AI EXPO AIカメラ AvintonAcademy Big Data ccna ChatGPT Digital Transformation Edge AI GUGA Imagine Analysis K3s LPIC-1 mikei Planet OS PM6PMO Ruby技術者認定試験 SSL エッジAI エンジニア キャリア クラウド コンテナ技術 スマートマニュファクチャリング セキュリティ ソフトウェア開発 データベース ニュース ネットワーク プログラマー プログラミングスクール 仮想化 仮想化、ネットワーク、サーバー、インフラ 協働 地域貢献 地引網 場作り 就職活動 新年のご挨拶 森部好樹 深層学習 生成AI 統計学 自社開発 資格 連携
© 2023 Avinton | All Rights Reserved | プライバシーポリシー
  • サービス
    • Avinton Data Platform
    • エッジAIカメラ
      • 自動車ナンバープレート自動認識システム
    • プライベートクラウド
    • AIサービス開発
    • AIカメラ/画像解析無料体験版
  • 最新情報
    • ニュースリリース&イベント情報
    • 技術ブログ&インタビュー
  • アカデミー
    • Avintonアカデミー
    • Academy on Campus
    • Academy with Platform
  • 採用情報
    • Avintonジャパン 採用ページ
    • 求人一覧
    • よくある質問
    • 新卒採用
  • 企業情報
    • 会社概要
    • 代表からご挨拶
    • SDGsへの貢献
  • お問い合わせ
  • 日本語
    • English (英語)
Avinton Japan