前提・実現したいこと
HiLetGoで購入したNodeMCU 1.0 (ESP-12E Moduleを使ってWifi通信をしたい。
発生している問題・エラーメッセージ
exec: "C:\Users\浩和\Documents\Arduino\hardware\espressif\esp8266com/tools/xtensa-lx106-elf/bin/xtensa-lx106-elf-g++": file does not exist
ボードNodeMCU 1.0 (ESP-12E Module)に対するコンパイル時にエラーが発生しました。
該当のソースコード
#include <WiFi.h> #include <WebServer.h> const char ssid[] = "チョメチョメ"; const char password[] = "チョメチョメ"; WebServer server(80); IPAddress ipadr; #define LED_G 4 #define LED_R 5 void setup() { // put your setup code here, to run once: pinMode(LED_G, OUTPUT); // LED接続ポートを出力に設定 pinMode(LED_R, OUTPUT); // LED接続ポートを出力に設定 digitalWrite(LED_G, LOW); // 出力をLOWにしてLEDを消灯する digitalWrite(LED_R, LOW); // 出力をLOWにしてLEDを消灯する Serial.begin(9600); // シリアルモニタを115200bpsで初期化 WiFi.mode(WIFI_STA); // Wi-Fiのモードを設定 WiFi.begin(ssid, password); // 接続するSSID キーを指定してWi-Fiを開始 Serial.println("Now Connecting"); // シリアルプリントの出力改行のみ while (WiFi.status() != WL_CONNECTED) { // 接続が完了するまで待つ delay(500); // 各回500msの時間待つ Serial.print("."); // 待ち時間500msごとに1ドット表示 接続が完了すると抜ける } ipadr = WiFi.localIP(); Serial.println(""); Serial.print("Connected to "); // Wi-Fi接続を表示 Serial.println(ssid); // SSID表示 Serial.print("IP address: "); Serial.println(ipadr); // シリアルモニタにIPアドレスを表示 server.on("/", handleRoot); // IPアドレスのみのアクセス時はhandleRoot()を起動 server.on("/RH", handleon(LED_R)); // IPアドレス+/Hの時 handleon()関数の起動を設定 server.on("/RL", handleoff(LED_R)); // IPアドレス+/Lの時 handleoff()関数の起動を設定 server.on("/GH", handleon(LED_G)); // IPアドレス+/Hの時 handleon()関数の起動を設定 server.on("/GL", handleoff(LED_G)); // IPアドレス+/Lの時 handleoff()関数の起動を設定 server.begin(); // サーバを開始 Serial.println("HTTP server started"); } void loop() { // put your main code here, to run repeatedly: server.handleClient(); // ブラウザへのアクセスに応じて適切な関数を起動処理する } void handleRoot() { String temp = "Click <a href=\"/RH\">here</a> to turn the LED RED on.<br />"; temp += "Click <a href=\"/RL\">here</a> to turn the LED RED off.<br />\n"; temp += "Click <a href=\"/GH\">here</a> to turn the LED GREEN on.<br />"; temp += "Click <a href=\"/GL\">here</a> to turn the LED GREEN off.\n"; server.send(200, "text/HTML", temp); } void handleon(int led) { digitalWrite(led, HIGH); // GET /H turns the LED on handleRoot(); } void handleoff(int led) { digitalWrite(led, LOW); // GET /L turns the LED off handleRoot(); }
試したこと
サンプルプログラムに戻す。
⇒結果は自作プログラムコンパイル時と同じエラーが発生。
おそらく、プログラムそのもののエラーではなく、環境せて位のエラー
その後、ArduinoUnoにハードウェアとそのためのプログラム、ボード設定に変えたところ、
正常に動作しました。
なので、ESP8266の環境設定をうまくでいていないと思っています。
補足情報(FW/ツールのバージョンなど)
Windows10、
Arduino1.8.9
このままではコードが見づらいので、質門を編集し、<code>ボタンで、出てくる’’’の枠の中にコードを貼り付けてください
「試したこと」は、それでどんな変化があった(変化がなかった)、まで書かないと意味がないと思います。
エラーメッセージからすると、コンパイラが見つからないと言っているようなのでプログラム内容には関係なかったんじゃないかと予想はしますが。
それと、よりメジャーなESP8266/32でそういう例を聞かないので大丈夫なのかも知れませんが、日本語の文字を含むディレクトリはちょっと不安があります。以前は、開発ツール類が日本語のパス名を想定していなくてエラーになる、という事例は結構ありました。ツール(ArduinoIDEではなくそのデバイス用の)インストール位置を日本語の文字を含まないところに変えてみたらどうなるでしょう?
>y_waiwaiさま、
了解しました。
そういうことができるんですね、勉強になりました。
thkanaさん>
ありがとうございます。
確かに全角文字注意ですね。
一度試してみます。
「試したこと」の結果は試す前と全く同じです。
よって、ご推測の通りプログラムそのものではなく、
環境の問題だとは想像しています。
その後調べてみたら、ESP-12EってつまりESP8266を使ったボードなんですね。ついでに、技適を取ってないので日本でそのWiFiを使うと法に触れるとも...大丈夫ですか? (中身はESP-WROOM-02と相当だ、とか言ってもそういう問題ではないので)
それはともかく。
'xtensa-lx106-elf-g++ file does not exist' でググるだけでもなにやらいろいろ引っかかってきます。一通り確認してみて下さい。
探してみます。
Googleで検索して、そのリンクに飛ぶと
ここに戻ってきてしまいました。。
一つしかヒットしなかった、なんてことはないと思うのですけれど? (私の手元では約15900件...だそうです)
ESP32のも引っかかってますが、事情は同じかと思うので同様の対策が効くかも知れません。
ESP32もボード設定しているんですが、
ESP32はgitをインストールして、データをダウンロードしたら
うまくいきましたが、
ESP12はgitでデータをダウンロードしようとしたら途中でエラーになったので、
自分でzipをダウンロードして、ハードウェアのフォルダにコピーしました。
また、ESP32はget.exeがありましたが、ESP12はget.pyなので、
pythonがないと使えなさそうです。
ちなみに、get.pyはコマンドプロンプトなどで実行可能でしょうか?
やはりpythonが必要でしょうか?
とりあえず、Epressifのサイトから辿っていくとhttps://arduino-esp8266.readthedocs.io/en/2.5.2/installing.html にたどり着いたので、それを見る限りではgitからのintallではPythonを使え、となっています。
gitがエラーになるのなら、無理に我流でやらずに上記URLの最初の方のやり方、ボードマネージャから入れたらどうでしょう?
ところで、codeの囲みはどうなったのですか?
thkanaさん、
ご連絡ありがとうございます。
gitでやるのは我流なんですね?
実はこの前に間違がえて(ESP12とESP32の違いがわからず)環境設定した時には
gitを使えって書いてあったのでgitを使うのが正しいと思っていました。
インストールではPython必須なんですね。
コードの囲み対応しました。
申し訳ないです。このスレッドはもう編集できないと思ってました。
試したことも追記しておきました。
ちなみにボードマネージャーからは毎回エラーになります。
なので、こちらは別のスレッドを立ててみます。
先のドキュメントにEspressifからのリンクというのは私の勘違い。でも、https://github.com/esp8266/Arduino ではintall方法のドキュメントでinstallのUsing git version の説明ではgitでファイルを取得した後pythonスクリプトでバイナリをダウンロードする? 話になっているので、その流れでやっていないとすれば我流(あなたの我流じゃなくて誰かの我流をまねたのかも知れませんが)ということじゃないんですか? なにか公式に近いドキュメントにその方法があるのなら、それで正式ということかも知れませんが。

回答2件
あなたの回答
tips
プレビュー