以下の参考記事を参考に、M5stackで家内の無線LAN(Wi-Fi)に接続し、ローカルIPを取得できました。
(参考ページ)M5Stack その7 WiFi(SimpleServer)
http://hato-robo.boy.jp/wordpress/archives/tag/m5stack
しかし、同じネットワーク内のPCのブラウザからローカルIPアドレス(M5stack)にアクセスできず、簡易サーバー化ができません。
※ブラウザに「http://192.168.128.xxx」もしくは「192.168.128.xxx」と入力しています
コードは以下のとおりです。家内の無線LANルーターのセキュリティ設定(ファイアウォールやフィルタリング)を観ましたが、特に有効になっている設定はありませんでした。
解決方法があればご教示いただけますと幸いです。
コード
arduino
1#include <WiFi.h> 2#include <M5Stack.h> 3 4const char* ssid = "SSID"; 5const char* password = "PASSWORD"; 6WiFiServer server(80); 7 8void setup() 9{ 10 M5.begin(); 11 delay(100); 12 13 M5.Lcd.println("Connecting to..."); 14 15 // wifi接続開始 16 WiFi.begin(ssid, password); 17 18 while (WiFi.status() != WL_CONNECTED) { 19 delay(500); 20 M5.Lcd.print("."); 21 } 22 23 M5.Lcd.println("Connected..."); 24 M5.Lcd.println("IP: "); 25 M5.Lcd.println(WiFi.localIP()); 26 27 server.begin(); 28 29} 30 31void loop(){ 32 //M5.Lcd.println(". "); 33 WiFiClient client = server.available(); // listen for incoming clients 34 if (client) { // if you get a client, 35 M5.Lcd.println("New Client."); // print a message out the serial port 36 String currentLine = ""; // make a String to hold incoming data from the client 37 while (client.connected()) { // loop while the client's connected 38 if (client.available()) { // if there's bytes to read from the client, 39 char c = client.read(); // read a byte, then 40 M5.Lcd.write(c); // print it out the serial monitor 41 if (c == '\n') { // if the byte is a newline character 42 // if the current line is blank, you got two newline characters in a row. 43 // that's the end of the client HTTP request, so send a response: 44 if (currentLine.length() == 0) { 45 // HTTP headers always start with a response code (e.g. HTTP/1.1 200 OK) 46 // and a content-type so the client knows what's coming, then a blank line: 47 client.println("HTTP/1.1 200 OK"); 48 client.println("Content-type:text/html"); 49 client.println(); 50 51 // the content of the HTTP response follows the header: 52 client.print("Click <a href=\"/H\">here</a> to turn the LCD GREEN.<br>"); 53 client.print("Click <a href=\"/L\">here</a> to turn the LCD RED.<br>"); 54 55 // The HTTP response ends with another blank line: 56 client.println(); 57 // break out of the while loop: 58 break; 59 } else { // if you got a newline, then clear currentLine: 60 currentLine = ""; 61 } 62 } else if (c != '\r') { // if you got anything else but a carriage return character, 63 currentLine += c; // add it to the end of the currentLine 64 } 65 66 // Check to see if the client request was "GET /H" or "GET /L": 67 if (currentLine.endsWith("GET /H")) { 68 M5.Lcd.fillScreen(GREEN); // GET /H turns the LCD GREEN 69 } 70 if (currentLine.endsWith("GET /L")) { 71 M5.Lcd.fillScreen(RED); // GET /L turns the LCD RED 72 } 73 } 74 } 75 // close the connection: 76 client.stop(); 77 M5.Lcd.println("Client Disconnected."); 78 } 79 M5.update(); 80}
回答1件
あなたの回答
tips
プレビュー