ESP32 とは
ESP32 は、Raspberry Pi や Arduino に続く、新たな IoT マイコンとして注目されています。Wi-Fi, Bluetooth を内蔵しているため、追加の部品なしで、ネットワークに接続することができます。ESP32 の開発ボードである、ESP-DevKitC は、USB-シリアル変換回路を搭載しているので、パソコンから USB 経由でプログラムを書き込むことができます。入手性もよく、秋葉原や電子部品のネット通販を利用して、千数百円程度で入手できます。
本記事では、ESP-DevKitC を使って、FIWARE Orion のバージョンを取得して、ESP32 のシリアルモニタに出力するプログラムを紹介します。ESP32 は、Arduino ではありませんが、Arduino core for ESP32 を利用すると、Arduino IDE を使用して、プログラムを作成して、ESP32に書き込むことができます。プログラムの実行の前に、Arduino IDE の ボードマネージャで、Arduino core for ESP32 をインストールしてください。
FIWARE Orion のバージョンを取得
FIWARE Orion のバージョンを取得するためには、Orion に対して以下のリクエストを実行します。
GET /version
crul で実行結果は以下のようになります。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | curl -sS orion:1026/version | jq . {   "orion": {     "version": "2.0.0",     "uptime": "0 d, 5 h, 2 m, 5 s",     "git_hash": "485128e135f4225040841f5ab3b85d42cfe68f55",     "compile_time": "Fri Sep 28 09:56:56 UTC 2018",     "compiled_by": "root",     "compiled_in": "4852e5bea506",     "release_date": "Fri Sep 28 09:56:56 UTC 2018",     "doc": "https://fiware-orion.readthedocs.org/en/2.0.0/"   } } | 
ESP32 で Orion のバージョンを取得
ESP32 で Orion のバージョンを取得するためには、最初に、Orion にアクセスできるネットワークに接続して、その後、Orion にリクエストを実行します。実際のプログラムは以下です。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | #include <WiFi.h> #include <HTTPClient.h> char essid[] = "your essid"; char passphrase[] = "your passphrase"; char orion[] = "http://192.168.1.2:1026/version"; void setup() {   Serial.begin(115200);   Serial.print("start");   connectWifi();   getOrionVersion(orion);   disconnectWifi(); } void loop() { } void connectWifi() {   WiFi.mode(WIFI_STA);   WiFi.begin(essid, passphrase);   while (WiFi.status() != WL_CONNECTED) {     Serial.print(".");     delay(100);   }   Serial.println("");   Serial.println("Connected");   Serial.print("IP address: ");   Serial.println(WiFi.localIP());   Serial.print("Subnet Mask: ");   Serial.println(WiFi.subnetMask());   Serial.print("Gateway IP: ");   Serial.println(WiFi.gatewayIP());   Serial.print("DNS: ");   Serial.println(WiFi.dnsIP());   Serial.print("Mac Address: ");   Serial.println(WiFi.macAddress()); } void disconnectWifi() {   WiFi.disconnect();   Serial.println("disconnected"); } void getOrionVersion(char url[]) {   HTTPClient http;   http.begin(url);   int httpCode = http.GET();   if(httpCode > 0) {     Serial.printf("httpCode: %d\n", httpCode);     if(httpCode == HTTP_CODE_OK) {       String payload = http.getString();       Serial.println(payload);     }   } else {     Serial.printf("POST failed, error: %s\n", http.errorToString(httpCode).c_str());   }   http.end(); } | 
このプログラムのポイントは以下の2点です。
- connectWiFi() – WiFi ネットワークに接続
- getOrionVersion() – Orion のバージョンを取得
connectWiFi() では、ESP32 の WiFi ライブラリを使用して、ESP32 を WiFi ネットワークに接続しています。getOrionVersion() では、HTTPClient ライブラリを使用して、Orion に対して GET リクエストを実行しています。
プログラムの実行
プログラムの実行の前に、環境に依存するパラメータを変更する必要があります。WiFi ルータに接続するための、ssid とpassword、および、Orion の IP アドレスを設定してください。
char ssid[] = “your ssid”;
char password[] = “your password”;
char orion[] = “http://ip address:1026/version”;
実行結果は、シリアルモニタに表示されます。以下のようなものです。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | Start.................... Connected IP address: 192.168.1.16 Subnet Mask: 255.255.255.0 Gateway: 192.168.1.1 DNS: 192.168.1.1 Mac Address: 24:0A:C4:00:00:00 httpCode: 200 { "orion" : {   "version" : "2.0.0",   "uptime" : "0 d, 4 h, 7 m, 12 s",   "git_hash" : "485128e135f4225040841f5ab3b85d42cfe68f55",   "compile_time" : "Fri Sep 28 09:56:56 UTC 2018",   "compiled_by" : "root",   "compiled_in" : "4852e5bea506",   "release_date" : "Fri Sep 28 09:56:56 UTC 2018",   "doc" : "https://fiware-orion.readthedocs.org/en/2.0.0/" } } disconnected | 
トラブルシューティング
プログラムがうまく動作しない時は、次の点を確認させてください。
Start が表示されない
プログラムの書き込みに失敗しているか、シリアルが未接続の可能性あります。プログラムが正しく書き込めているか確認してください。シリアル接続は Upload speed などを確認してください。
Connected が表示されない
WiFi 接続が失敗している可能性があります。ssid や その password および、WiFi ルーター等の設定を確認してください。
Orion のバージョンが表示されない
Orion へのリクエストが失敗している可能性があります。Orion の IP アドレスやポートを確認してください。また、WiFi で接続したネットワークから Orion にアクセスできるか確認してください。



 
											 
							
							
							
															 
							
							
							
															 
							
							
							
															 
										
					 
									


