Atom lite を使用してBlynk 経由でオンラインでマイクロサーボを回転させる指示を出したいと考えています。
なお、Blynk Legacy でなく、Blynk IoTでやろうとしています。
(Blynk Legacy を利用してBLEでの操作は実行できました。)
下記のコードで実行しています。
connectwifi()にて、wifiに接続できることは確認しています。
arduino
1#include "M5Atom.h" 2#include "WiFi.h" 3#include "BlynkSimpleEsp32.h" 4 5const uint8_t Srv0 = 25;//GPIO No. 6const uint8_t srv_CH0 = 0; //チャンネル 7const double PWM_Hz = 50; //PWM周波数 8const uint8_t PWM_level = 16; //PWM 16bit(0~65535) 9 10bool IMU6886Flag = false; 11 12char auth[] = "***"; 13char ssid[] = "***"; 14char pass[] = "***"; 15 16void setup(){ 17 M5.begin(true, false, true); 18 delay(50); //delay 50ms. 19 M5.dis.drawpix(0, 0x00ff00); 20 21 pinMode(Srv0, OUTPUT); 22 ledcSetup(srv_CH0, PWM_Hz, PWM_level); 23 ledcAttachPin(Srv0, srv_CH0); 24 25 //connectWiFi(); 26 Blynk.begin(auth, ssid, pass); 27} 28 29/* 30void connectWiFi(){ 31 WiFi.disconnect(); // reset 32 for (int i = 0; WiFi.status() != WL_CONNECTED; i++) 33 { 34 if (i % 10 == 0) { 35 WiFi.begin(ssid, pass); 36 } 37 delay(1000); // wait a second for connection 38 } 39 M5.dis.drawpix(0, 0x0000f0); //BLUE 40}*/ 41 42BLYNK_WRITE(V0){ 43 int val = param[0].asInt(); 44 if(val == 0){ 45 M5.dis.drawpix(0, 0x00ff00); //GREEN 46 for (int i = 4900; i <= 8190; i=i+50) { //500μsec -> 2500μsec 0deg -> 90deg 47 ledcWrite(srv_CH0, i); 48 delay(10); 49 } 50 } 51 if(val == 1){ 52 M5.dis.drawpix(0, 0xff0000); //RED 53 for (int i = 8190; i > 4900; i=i-50) { //2500μsec -> 500μsec 90deg -> -90deg 54 ledcWrite(srv_CH0, i); 55 delay(10); 56 } 57 } 58} 59 60uint8_t FSM = 0; //Store the number of key presses. 61 62void loop(){ 63 if (M5.Btn.wasPressed()){ //Check if the key is pressed. 64 switch (FSM){ 65 case 0: 66 M5.dis.drawpix(0, 0x00ff00); //GREEN 67 for (int i = 4900; i <= 8190; i=i+50) { //500μsec -> 2500μsec 0deg -> 90deg 68 ledcWrite(srv_CH0, i); 69 delay(10); 70 } 71 break; 72 case 1: 73 M5.dis.drawpix(0, 0xff0000); //RED 74 for (int i = 8190; i > 4900; i=i-50) { //2500μsec -> 500μsec 90deg -> -90deg 75 ledcWrite(srv_CH0, i); 76 delay(10); 77 } 78 break; 79 default: 80 break; 81 } 82 FSM++; 83 if (FSM >= 2){ 84 FSM = 0; 85 } 86 } 87 delay(50); 88 M5.update(); //Read the press state of the key. 89 Blynk.run(); 90}
開発環境
母艦: windows 10
arduino IDE : 1.8.19
ライブラリのバージョンはいずれも質問投稿時点の最新。
ログを取って色々確認してみましたが、wifiには接続できるものの、その先のblynkと接続できていないようで、blynkからみても端末がオンラインとなっていません。
ルータやファイヤウォールの問題でしょうか?
しかし検索してもどこもルータの設定を変更する必要があるなどの記述が見つけられず、設定するにもどうすればよいかわからない状態です。
参考にしたサイトは下記などです。
https://next.rikunabi.com/journal/20180207_t21_iq/
アドバイス、不明点ありましたら教えていただけますと幸いです。
よろしくおねがいします。
あなたの回答
tips
プレビュー