###Arduino M0 ProとESP-WROOM-02(を用いたwifiへの接続ができません
Arduino M0 Proに以下に示すプログラムをArduino IDE 1.8.0で書き込み、
Wifiへ接続を試みているのですが、
シリアルモニタ上に「......」と表示されるのみ(待機中の意味)でwifiへの接続が確率出来ません。
解決のために試したことを以下に示しているので、ご参照いただけますと幸甚に存じます。
###発生している問題
Arduino M0 ProとESP-WROOM-02を用いたwifiへの接続ができないです。
何か解決のアイデアなどございましたらぜひご教授ください。
###該当のソースコード
// ライブラリの読み込み #include "ESP8266.h" #include "Milkcocoa.h" #include "Client_ESP8266.h" // 転送スピード #define SERIAL_SPEED 115200 /************************* WiFi Access Point *********************************/ // Wi-Fi SSID #define WLAN_SSID "Daimon5" // Wi-Fi PASSWORD #define WLAN_PASS "Admiral2128" /************************* Your Milkcocoa Setup *********************************/ // MilkcocoaのアプリID #define MILKCOCOA_APP_ID "uniixstvro4" // Data Store名 #define MILKCOCOA_DATASTORE "toilet" /************* Milkcocoa Setup (you don't need to change this!) ******************/ #define MILKCOCOA_SERVERPORT 1883 /************ Global State (you don't need to change this!) ******************/ // Create an ESP8266Client class to connect to the MQTT server. ESP8266Client wifi; const char MQTT_SERVER[] PROGMEM = MILKCOCOA_APP_ID ".mlkcca.com"; const char MQTT_CLIENTID[] PROGMEM = __TIME__ MILKCOCOA_APP_ID; Milkcocoa milkcocoa = Milkcocoa(&wifi, MQTT_SERVER, MILKCOCOA_SERVERPORT, MILKCOCOA_APP_ID, MQTT_CLIENTID); // センサーを接続するピン const int sensorPin = A0; // 光センサーの閾値 const int threshold = 500; // 現在の明るさを保持 boolean nowSensorState = false; // 切り替え前の明るさを保持する boolean sensorState = false; void setup() { // パソコンとのシリアル通信のポートを開ける Serial.begin(SERIAL_SPEED); // Wi-Fiモジュールとのシリアル通信のポートを開ける Serial1.begin(SERIAL_SPEED); // Wi-Fi設定 setupWiFi(); // Milkcocoaへ光センサーの値がpushされた milkcocoa.on(MILKCOCOA_DATASTORE, "push", milkcocoaPushDataHandler); } /* Wi-Fiを設定します */ void setupWiFi() { Serial.print("Connecting to "); Serial.println(WLAN_SSID); // シリアルポートの指定 wifi.begin(Serial1); // Wi-Fiへ接続(成功するまで処理を繰り返す) while (!wifi.joinAP(WLAN_SSID, WLAN_PASS)) { delay(500); Serial.print("."); } Serial.println("Wi-Fi connected"); Serial.println("IP address: "); // Wi-FiのローカルIPアドレスをシリアルモニターへ表示 Serial.println(wifi.getLocalIP().c_str()); } /** * ループ処理 */ void loop() { // Milkcocoaのループ処理を実行 milkcocoa.loop(); // センサーの値 int sensorValue = analogRead(sensorPin); Serial.print("Sensor Value : "); Serial.println(sensorValue); // センサーの値と閾値を比較 nowSensorState = sensorValue > threshold; // 明るさに変化がなければloop()関数の始めに戻る if (sensorState && nowSensorState || !sensorState && !nowSensorState) { return; } // Milkcocoaへ送信するデータを作成 DataElement elem = DataElement(); // lightというデータ名で値を追加 elem.setValue("lightState", nowSensorState); // Milkcocoaへデータを送信 milkcocoa.push(MILKCOCOA_DATASTORE, &elem); // 1秒処理を止める delay(1000); } /* * Milkcocoaへ光センサーの値がpushされた */ void milkcocoaPushDataHandler(DataElement *pelem) { // 明るさの状態を更新 sensorState = nowSensorState; }
###試したこと
(2017.1.17)
1.スマートフォンのテザリング
2.自宅のwifi
複数のwifiに対し通信を試みたのですが、いずれもシリアルモニタには「……」と接続待機中の表示のみが表示され、接続完了後の動作を行ってくれません。
(2017.1.19)
matobaa様からのご回答を参考に、
WROOM-02とPCを繋げてATコマンドで速度を9600に下げてやってからArduinoに接続いたしました。Arduinoと接続した状態で、プログラムも速度を9600に書き換えた際のシリアルモニタ上でプログラムの実行内容「……」が表示されたので、ATコマンドによる設定速度がWROOM-02に保存されている状態だと思いますが、症状変わらず、自宅のwifi,スマホのテザリング共に接続されませんでした。
そこで、試しに以下URLの通りにWROOM-02で自宅のwifiおよびスマホのテザリングに接続しようとすると下の結果に示すようにERRORと表示されたため、WROOM-02に何か原因があるのかと考えております。お手数おかけいたしますが、上記を踏まえたご意見をいただけますと幸甚に存じます。
WROOM-02の速度変更(http://www.mkbtm.jp/?p=618)
AT OK AT+CWJAP="bobby bobby","555512345" ERROR AT+CWJAP="Daimon5","e9799b94b2f9" ERROR
(2017.1.21追記)
・CH340G USB to TTL(converter module)というケーブルを用いてESP-WROOM-02へ3.3vの電源供給をしながら、電流値も80mA付近まで流れていることを確認いたしました。
・AT+CWLAPによって、ESP-WROOM-02が認識している利用可能なWifiを一覧表示させようと試みましたが、以下にに示すようにERRORと返ってきました。
AT+CWLAP ERROR
CH340G USB to TTL
https://www.google.co.th/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwjP_P_Iz9PRAhUBLI8KHUfZBcYQFggYMAA&url=http%3A%2F%2Fwww.thaieasyelec.com%2Fen%2Fhome%2Fch340g-usb-to-ttl-converter-module-detail.html%3Ftmpl%3Dcomponent%26flexiblelayout%3Dprint&usg=AFQjCNEqD07AFWnMVDN1Cfam3Tqb9-_pSg
###補足情報(言語/FW/ツール等のバージョンなど)
Arduino M0 ProとESP-WROOM-02(ピッチ変換済みモジュール)は
日本のスイッチサイエンスで購入し、現在タイ(バンコク)で使用しているのですが、それが問題なのでしょうか。。。(自分で調べたところ、ESP-WROOM-02は802.11 b/n/g)に対応しているのでそこは問題ではないとは思うのですが…
回答3件
あなたの回答
tips
プレビュー