前回Wio TerminalでMQTT Postまでできたはずなのだが、改めてWiFi接続させようとすると、あれこれモジュールが足りないと怒られる。再度、SeeedStudioのWikiを読み返して、どのようにインストールするのが正しいのかを確認
- Seeed_Arduino_rpcWiFi - search for "seeed rpcwifi"
- Seeed_Arduino_rpcUnified - search for "seeed rpcunified"
- Seeed_Arduino_mbedtls - search for "seeed mbedtls"
- Seeed_Arduino_FS - search for "seeed fs"
- Seeed_Arduino_SFUD - search for "seeed sfud"
エラーが発生
.pio/libdeps/seeed_wio_terminal/Seeed Arduino rpcUnified/src/erpc/erpc_threading.h:22:10: fatal error: FreeRTOS.h: No such file or directory
~/lang/platformIO/wioTerminal/wifi_test00$ platformio lib search "header:FreeRTOS.h" *skip* briscoetech/FreeRTOS_SAMD51 Library • 1.3.0 • Published on Tue Sep 1 05:13:37 2020 FreeRTOS ported for Arduino SAMD51 processors
workaround
briscoetech/FreeRTOS_SAMD51@^1.3.0
.pio/libdeps/seeed_wio_terminal/Seeed Arduino rpcUnified/src/esp/esp_event.h:19:10: fatal error: Seeed_Arduino_FreeRTOS.h: No such file or directory
Tutorial通りにいかないのは、バージョンが更新されている可能性と、Wio Terminalのデモでは、LCDに表示するルーチン込みで作られる場合が多くて、表示を全くしないプログラムにしてしまうと、暗黙的に呼び出されていたヘッダ類が不足するからではないかと推測
正常に動作したWiFi接続するだけの一番短いソース(rpcPing.hは不要だが・・・)
#include <Arduino.h> #include <rpcWiFi.h> #include <rpcPing.h> #define SERIAL_SPEED 115200 const char *SSID = "xxxxxx"; const char *PWD = "xxxxxxxxx"; WiFiClient wioClient; int wifi_setup(void); void setup() { Serial.begin(SERIAL_SPEED); delay(10); // put your setup code here, to run once: WiFi.mode(WIFI_STA); WiFi.disconnect(); WiFi.begin(SSID, PWD); while (WiFi.status() != WL_CONNECTED) { Serial.print("Connecting to "); Serial.println(SSID); WiFi.begin(SSID, PWD); delay(100); // wait for 100msec } Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); } void loop() { // put your main code here, to run repeatedly: Serial.println("zz.."); delay(1000); // wait for 1000msec }
file: platformio.ini の内容は以下。ポツンとSPIがあるのだけど、SPIのヘッダエラーが出て、検索すると、dependのリストに足したら治るとあったので加えた。根本原因まで調べておらず、場当たり的に対応
[env:seeed_wio_terminal] platform = atmelsam board = seeed_wio_terminal framework = arduino lib_deps = seeed-studio/Seeed Arduino rpcWiFi@^1.0.6 seeed-studio/Seeed Arduino FS@^2.1.1 seeed-studio/Seeed Arduino rpcUnified@^2.1.4 seeed-studio/Seeed_Arduino_mbedtls@^3.0.1 seeed-studio/Seeed Arduino SFUD@^2.0.2 adafruit/Adafruit Zero DMA Library@^1.1.1 SPI
addition
file: main.cpp
#include <Arduino.h> #include <rpcWiFi.h> //#include <rpcPing.h> #define SERIAL_SPEED 115200 const char *SSID = "upk_priv_24G"; const char *PWD = "1234?5Q63!"; WiFiClient wioClient; int wifi_setup(void); void setup() { Serial.begin(SERIAL_SPEED); delay(10); // put your setup code here, to run once: WiFi.mode(WIFI_STA); WiFi.disconnect(); WiFi.begin(SSID, PWD); while (WiFi.status() != WL_CONNECTED) { Serial.print("Connecting to "); Serial.println(SSID); WiFi.begin(SSID, PWD); delay(800); // wait for 800msec } Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); } void loop() { // put your main code here, to run repeatedly: Serial.println("zz.."); Serial.println(WiFi.localIP()); delay(1000); // wait for 1000msec }
file: platformio.ini
[env:seeed_wio_terminal] platform = atmelsam board = seeed_wio_terminal framework = arduino lib_deps = seeed-studio/Seeed Arduino rpcWiFi@^1.0.6 seeed-studio/Seeed Arduino FS@^2.1.1 seeed-studio/Seeed_Arduino_mbedtls@^3.0.1 adafruit/Adafruit Zero DMA Library@^1.1.1 SPI