前提・実現したいこと
Grid-EYE(ROBOBA041)という温度センサの出力温度データを,ESP-WROOM-02をWebサーバとして用いて,ブラウザに表示したいと考えております.
ArduinoIDEを用いて,ESPに以下のようなプログラムを書き込んだところ,毎秒ごとに温度データの更新と表示を行うことに成功しました.
しかし,現段階ではブラウザの更新により,温度データの更新を行っている状態であり,今後温度データ以外の要素(ラジオボタンなど)もブラウザ表示するとなった場合,温度データのみ更新を行うようにしたいと考えました.
どうにかして,ブラウザの中での温度データ部分のみ更新を繰り返すようにはできないでしょうか.
よろしくお願いいたします。
該当のソースコード
Arduino
1#include <WiFiClient.h> 2#include <ESP8266WiFi.h> 3#include <ESP8266WebServer.h> 4#include <Wire.h> 5#include <GridEye.h> 6 7GridEye myeye = GridEye(GridEye_DeviceAddress_1); 8ESP8266WebServer server(80); 9 10void onroot() { 11 String msg ; 12 int pixel[64]; 13 msg += "<!DOCTYPE html>"; 14 msg += "<html><head><meta http-equiv=\"refresh\" content=\"1\" charset=\"utf-8\">"; 15 msg += "<meta http-equiv=\"content-type\" content=\"text/html; 16 charset=UTF-8\">"; 17 msg += "<title>Temperature</title><body>"; 18 myeye.pixelOut(pixel); // Grid-EYEの温度データ読み出し 19 for (int i = 0; i < 64; i++) { 20 if (i && ((i % 8) == 0)) { 21 msg += "<br>"; 22 } 23 msg += "<font size='3'>" + String(pixel[i]* 0.25) + "</font>"; //温度デー 24 タを表示 25 msg += " "; 26 } 27 msg += "<p id=\"LED\"></p>"; 28 msg += "</body></html>"; 29 server.send(200, "text/html", msg); 30} 31 32void setup() { 33 Serial.begin(115200); 34 Wire.begin(); 35 WiFi.config(IPAddress(***, ***, ***, ***), WiFi.gatewayIP(), 36 WiFi.subnetMask());//使いたいIPアドレスを指定 37 WiFi.begin("*******", "********"); 38 39 WiFi.mode(WIFI_STA); 40 41 // Web server setting 42 server.on("/", onroot); 43 server.begin(); 44} 45 46void loop() { 47 server.handleClient(); 48}
試したこと
上記のプログラムを実行すると,このようなデータが表示され,毎秒ごとに更新されます.
補足情報
Grid-EYEは二次元温度データを88要素の数値として出力する赤外線アレイセンサです.なので出力される温度データも88(64)となっています.
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/17 01:14