質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

解決済

ボードESP32 Dev Moduleに対するコンパイル時にエラーが発生しました

robotKR
robotKR

総合スコア32

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

1回答

0リアクション

0クリップ

2040閲覧

投稿2021/04/25 12:27

困っていること

Arduino IDE (Windows10 PC)にて,ESP32に書き込むプログラムのコンパイルをしています.

このプログラムをコンパイルするとエラーが出てきてしまいます。
原因が分からず困っています。

Arduino:1.8.13 (Windows 10), ボード:"ESP32 Dev Module, Disabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 921600, None"

エラーメッセージ

C:\Arduino sketch\Arduino\libraries\xoseperez-fauxmoesp-985880034f3a\src\fauxmoESP.cpp: In member function 'unsigned char fauxmoESP::addDevice(const char*)': C:\Arduino sketch\Arduino\libraries\xoseperez-fauxmoesp-985880034f3a\src\fauxmoESP.cpp:345:80: error: format '%X' expects argument of type 'unsigned int', but argument 5 has type 'long unsigned int' [-Werror=format=] snprintf_P(uuid, sizeof(uuid), PSTR("%02X%06X46584D\0"), device_id, chip_id); // DEV_ID + CHIPID + "FXM" ^ C:\Arduino sketch\Arduino\libraries\xoseperez-fauxmoesp-985880034f3a\src\fauxmoESP.cpp:345:80: error: embedded '\0' in format [-Werror=format-contains-nul] C:\Arduino sketch\Arduino\libraries\xoseperez-fauxmoesp-985880034f3a\src\fauxmoESP.cpp:345:80: error: format '%X' expects argument of type 'unsigned int', but argument 5 has type 'long unsigned int' [-Werror=format=] C:\Arduino sketch\Arduino\libraries\xoseperez-fauxmoesp-985880034f3a\src\fauxmoESP.cpp:345:80: error: embedded '\0' in format [-Werror=format-contains-nul] C:\Arduino sketch\Arduino\libraries\xoseperez-fauxmoesp-985880034f3a\src\fauxmoESP.cpp:350:46: error: format '%X' expects argument of type 'unsigned int', but argument 3 has type 'long unsigned int' [-Werror=format=] sprintf(serial, "221703K0%06X\0", chip_id); // "221703K0" + CHIPID ^ C:\Arduino sketch\Arduino\libraries\xoseperez-fauxmoesp-985880034f3a\src\fauxmoESP.cpp:350:46: error: embedded '\0' in format [-Werror=format-contains-nul] C:\Arduino sketch\Arduino\libraries\xoseperez-fauxmoesp-985880034f3a\src\fauxmoESP.cpp:350:46: error: format '%X' expects argument of type 'unsigned int', but argument 3 has type 'long unsigned int' [-Werror=format=] C:\Arduino sketch\Arduino\libraries\xoseperez-fauxmoesp-985880034f3a\src\fauxmoESP.cpp:350:46: error: embedded '\0' in format [-Werror=format-contains-nul] C:\Arduino sketch\Arduino\libraries\xoseperez-fauxmoesp-985880034f3a\src\fauxmoESP.cpp: In member function 'bool fauxmoESP::renameDevice(unsigned char, const char*)': C:\Arduino sketch\Arduino\libraries\xoseperez-fauxmoesp-985880034f3a\src\fauxmoESP.cpp:370:11: warning: comparison is always true due to limited range of data type [-Wtype-limits] if (0 <= id && id <= _devices.size()) { ^ C:\Arduino sketch\Arduino\libraries\xoseperez-fauxmoesp-985880034f3a\src\fauxmoESP.cpp: In member function 'char* fauxmoESP::getDeviceName(unsigned char, char*, size_t)': C:\Arduino sketch\Arduino\libraries\xoseperez-fauxmoesp-985880034f3a\src\fauxmoESP.cpp:380:11: warning: comparison is always true due to limited range of data type [-Wtype-limits] if (0 <= id && id <= _devices.size()) { ^ C:\Arduino sketch\Arduino\libraries\xoseperez-fauxmoesp-985880034f3a\src\fauxmoESP.cpp: In member function 'void fauxmoESP::setState(unsigned char, bool)': C:\Arduino sketch\Arduino\libraries\xoseperez-fauxmoesp-985880034f3a\src\fauxmoESP.cpp:387:11: warning: comparison is always true due to limited range of data type [-Wtype-limits] if (0 <= id && id <= _devices.size()) { ^ cc1plus.exe: some warnings being treated as errors 「WiFi.h」に対して複数のライブラリが見つかりました 使用済:C:\Users\kaika\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\WiFi 未使用:D:\Program Files (x86)\Arduino\libraries\WiFi 次のフォルダのライブラリWiFiバージョン1.0を使用中:C:\Users\kaika\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\WiFi 次のフォルダのライブラリxoseperez-fauxmoesp-985880034f3aバージョン2.4.4を使用中:C:\Arduino sketch\Arduino\libraries\xoseperez-fauxmoesp-985880034f3a 次のフォルダのライブラリAsyncTCP-masterバージョン1.1.1を使用中:C:\Arduino sketch\Arduino\libraries\AsyncTCP-master exit status 1 ボードESP32 Dev Moduleに対するコンパイル時にエラーが発生しました。

プログラム

C++

#include <Arduino.h> #include <WiFi.h> #include "fauxmoESP.h" #define SERIAL_BAUDRATE 115200 #define LED 2 fauxmoESP fauxmo; char ssid[] = ""; char password[] = ""; // ----------------------------------------------------------------------------- // Wifi // ----------------------------------------------------------------------------- void wifiSetup() { // Set WIFI module to STA mode WiFi.mode(WIFI_STA); // Connect Serial.printf("[WIFI] Connecting to %s ",ssid); WiFi.begin(ssid, password); // Wait while (WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(100); } Serial.println(); // Connected! Serial.printf("[WIFI] STATION Mode, SSID: %s, IP address: %s\n", WiFi.SSID().c_str(), WiFi.localIP().toString().c_str()); } void setup() { // Init serial port and clean garbage Serial.begin(SERIAL_BAUDRATE); Serial.println(); Serial.println(); // Wifi wifiSetup(); // LED pinMode(LED, OUTPUT); digitalWrite(LED, HIGH); // You have to call enable(true) once you have a WiFi connection // You can enable or disable the library at any moment // Disabling it will prevent the devices from being discovered and switched fauxmo.enable(true); // Add virtual devices fauxmo.addDevice("照明"); // fauxmoESP 2.0.0 has changed the callback signature to add the device_id, // this way it's easier to match devices to action without having to compare strings. fauxmo.onSetState([](unsigned char device_id, const char * device_name, bool state) { Serial.printf("[MAIN] Device #%d (%s) state: %s\n", device_id, device_name, state ? "ON" : "OFF"); digitalWrite(LED, state); }); // Callback to retrieve current state (for GetBinaryState queries) fauxmo.onGetState([](unsigned char device_id, const char * device_name) { return digitalRead(LED); }); } void loop() { // Since fauxmoESP 2.0 the library uses the "compatibility" mode by // default, this means that it uses WiFiUdp class instead of AsyncUDP. // The later requires the Arduino Core for ESP8266 staging version // whilst the former works fine with current stable 2.3.0 version. // But, since it's not "async" anymore we have to manually poll for UDP // packets fauxmo.handle(); static unsigned long last = millis(); if (millis() - last > 5000) { last = millis(); Serial.printf("[MAIN] Free heap: %d bytes\n", ESP.getFreeHeap()); } }

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。