IoTに向けて Wi-Fi対応マイコン

IoTに向けて,Wi-Fi付きマイコンボードを取り上げます。
実際にIoTの実現を考えると,使用環境によって電源をどうするか,省電力をどうするか,通信経路をどのように確保するかなど適用によって解決すべき課題は多くあります。
それらの問題は,別途解決するとして,ここではプログラミングや通信相手の例について解説したいと思います。
使用例として,I2C接続の温度センサの情報をWi-Fiで通信先に伝えるケースを示します。
Wi-Fiの利用と言っても,マイコンをサーバにするのか,クライアントにするのかによって扱い方が次に示すように異なります。

(1)無線LAN環境でマイコンをWebサーバにする場合
マイコンと同じLAN内(無線LAN内)のPCやスマホのWebブラウザがWebクライアントとなり,http://[マイコンのIPアドレス]のようにWebサーバとして動作中のマイコンにアクセスして,情報を受け取ります。
PCやスマホのWebブラウザがクライアントですと,そのデータを表示するだけで終わってしまうので,情報を活用する場合はhttpアクセスするアプリがPCやスマホに必要になります。アプリは0から作成してもよいのですが,簡易なシステムはExcelのVBAで作成することも出来ます。
別のLAN内のPCやスマホのクライアントから,このLAN内のマイコンサーバにアクセスする場合は。ゲイトウェイの設定が必要になります。(ちょっと面倒です)

    "マイコンのサーバ"と"PCのWebブラウザ"のふるまい
    閲覧するのはスマホやタブレットのWebブラウザでもよい

(2)無線LAN環境でマイコンをクライアントにする場合
Webクライアントになったマイコンは,Webサーバにhttp://[webブラウザのURL]のように,アクセスし,同時にpostメソッドで情報も送ります。
Webサーバ(同じLAN内にあってもよいし,インターネットの先にあってもよい)には,情報を受け取る受け皿が必要です。この受け皿は,例えばphpで書かれた動的Webページになります。

    "マイコンのクライアント"と"Webサーバ","PCのWebブラウザ"のふるまい
    閲覧するのはスマホやタブレットのWebブラウザでもよい

(2-A)無線LAN環境でマイコンをクライアントにする(セキュリティ対応)
インターネット先のWebサーバに関しては,セキュリティの確保のためhttp://....でアクセスできる場所は少なくなっています。
安全のためにSSL/TLSを使ったhttps://....が一般的になってきました。
マイコンクライアントのSSL/TLS対応は重要になってきました。

    "マイコンのクライアント"と"Webサーバ","PCのWebブラウザ"のSSL通信
    閲覧するのはスマホやタブレットのWebブラウザでもよい

(3)無線LAN環境が使えない(使わない)場合
無線LAN環境が使えない場合はBluetoothで1対1通信を使います。
移動先で無線LAN環境がどうなっているのかわからない場合もBluetooth通信の方が使いやすい場合があります。
ここではBluetooth Low Energy通信を取り上げます。(Bluetooth classic通信ではありません)

  "マイコンのPeripheral"と"スマートフォンのCentral"でのBluetooth通信(上)
  "マイコンのPeripheral"と"WindowsPCのCentral"でのBluetooth通信(下)


1.Wi-FiマイコンESP-WROOM-02(ESP8266)+温度センサADT7410
● ESP-WROOM-02を無線LAN上のWebサーバにする 2023.9.11 
Webブラウザ,ExcelからマイコンにHTTP GETアクセス
● ESP-WROOM-02を無線LAN上のWebクライアントにする 2023.9.11 
マイコンからWebサーバにHTTP PUTアクセス

2.Wi-FiマイコンXIAO ESP32S3(ESP32S3)+温度センサBMP280
● XIAO ESP32S3を無線LAN上のWebサーバにする 2023.9.11 
Webブラウザ,ExcelからマイコンにHTTP GETアクセス
● XIAO ESP32S3を無線LAN上のWebサーバにする 2023.10.1 
WebブラウザからマイコンにHTTP GETアクセス(パラメタあり)
Webブラウザから1アクセス連続データ収集表示

● XIAO ESP32S3を無線LAN上のWebクライアントにする 2023.9.11 
マイコンからWebサーバにHTTP PUTアクセス
● XIAO ESP32S3を無線LAN上のWebクライアント(SSL/TLS)にする 2023.9.11 
マイコンからWebサーバにHTTPS(SSL/TLSセキュリティ対応) PUTアクセス

● XIAO ESP32S3のBluetooth通信(BLE_Uart) 無線LAN環境不要
 〇 XIAO ESP32S3 ⇔ Android 2023.9.28 
XIAO ESP32S3がBLE(Bluetooth Low Energy)でandroidデバイスのターミナルアプリと交信
 〇 XIAO ESP32S3 ⇔ iOS 2023.9.28 
XIAO ESP32S3がBLE(Bluetooth Low Energy)でiOSデバイスのターミナルアプリと交信
 〇 XIAO ESP32S3 ⇔ WindowsPC 2023.10.30 
XIAO ESP32S3がBLE(Bluetooth Low Energy)でWindowsPCのターミナルアプリと交信

3.Wi-FiマイコンESP32-DevKitC-32E+温度センサBMP280
● ESP32-DevKitC-32EのBluetooth通信(BLE_Uart) 無線LAN環境不要
 〇 ESP32-DevKitC-32E ⇔ Android  2023.9.29 
ESP32-DevKitC-32EがBLE(Bluetooth Low Energy)でandroidのターミナルアプリと交信