บทความ

csv to firebase

 bool log_to_fb(){   String log_buf="";     if((Firebase.getString(firebaseData, on_path+"/lc"))){   String buf =  firebaseData.stringData();   fb_count = buf.toInt();     if ((log_count<= fb_count)){ return(false);}       if ((SPIFFS.exists("/log.csv"))){     File f = SPIFFS.open("/log.csv", "r");     if (!f){return(false);}         while(f.available()) {               log_buf = "";               log_buf = f.readStringUntil('\n');               log_buf +="\0";                 splitCommand(log_buf);                  }               f.close();               return(true);         }      }else{return(true);}          } //===================================================================================== bool splitCommand(String text) { String dt="",rh="",rt="",ft="",ct="",bt="",pw="",nw="",lc=""; int index =0; bool FB

Async IOT

 #include <stdio.h> #include <ESPAsync_WiFiManager.h> AsyncWebServer   server(80); DNSServer        dnsServer; #define host       "TMR01" String  station =  "TMR01"; #define OK         Serial.println("ok"); #define NOT_OK     Serial.println("Not ok"); #define MEM_INFO   MyMemInfo(); /*#include <FirebaseESP8266.h> #define tmr_debug  false #define FIREBASE_HOST "wt-.firebaseio.com" #define FIREBASE_AUTH "JpQKm0dK7vMYc86gaJKDQyquDMEPgPNQti8lAAA" FirebaseData fbdo; FirebaseJson json;*/ unsigned long stTime; unsigned long useTime; unsigned long total_mem; unsigned long total_use; FSInfo        fs_info; int           Year=21,Month=2,Day=9,Hour=0,Minute =0; float         Rh=0.00, Rt=0.00, Tp1=0.00, Tp2=0.00; String        fname, sTm, sRh,sRt,sT1,sT2; char          buf[200]; void MyMemInfo(){ //-----------------------------   useTime=millis()-stTime;   Serial.print ("Format time = ");   Serial.print(useTime
 #include <stdio.h> #include <WiFi.h> #include <FirebaseESP32.h> #define WIFI_SSID "WIFI_AP" #define WIFI_PASSWORD "WIFI_PASSWORD" #define FIREBASE_HOST "PROJECT_ID.firebaseio.com" #define FIREBASE_AUTH "DATABASE_SECRET" FirebaseData fbdo; FirebaseJson json; float Rh= 30.30; float Rt= 31.30; float Tp1=32.30; float Tp2=33.30; char buf[64]; void setup() {   Serial.begin(115200);   WiFi.begin(WIFI_SSID, WIFI_PASSWORD);   Serial.print("Connecting to Wi-Fi");   while (WiFi.status() != WL_CONNECTED)   {     Serial.print(".");     delay(300);   }   Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);   Firebase.reconnectWiFi(true);   Firebase.setReadTimeout(fbdo, 1000 * 60);   Firebase.setwriteSizeLimit(fbdo, "tiny");   Firebase.setFloatDigits(2);   Firebase.setDoubleDigits(6); String   path = "/TEST/Rh";     Firebase.setFloat(fbdo, path,Rh);      path = "/TEST/Rt";   Firebase.setFloat(fbdo, p

Firebase Google Chart

<html>   <head>    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>    <script src="https://www.gstatic.com/firebasejs/3.7.4/firebase.js"></script>    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>    <script src="https://www.google.com/jsapi"></script> <script type="text/javascript"> //===============================================================================================================   var firebaseConfig = {         apiKey: "AIzaSyDzsxMsTq4gkuI2in",         authDomain: "wt-vstr4.firebaseapp.com",         databaseURL: "https://wt-vstr4.firebaseio.com",         projectId: "wt-vstr4&qu

การตั้งค่า App Inventor

รูปภาพ
การตั้งค่า App Inventor         ผู้ใช้งานสามารถตั้งค่า App Inventor และเริ่มต้นสร้างแอปได้ภายในไม่กี่นาที ตัวแก้ไขออกแบบและบล็อกทำงานได้สมบูรณ์ในเบราว์เซอร์ (aka the cloud) หากต้องการดูแอปพลิเคชันของคุณบนอุปกรณ์ในขณะที่สร้างแอป (เรียกอีกอย่างว่า "การทดสอบแบบสด") คุณจะต้องทำตามขั้นตอนต่อไปนี้ คุณมีตัวเลือกสามอย่างสำหรับการตั้งค่าการทดสอบสดขณะที่คุณสร้างแอป             กรณีที่ใช้อุปกรณ์แอนดรอยด์และมีการเชื่อมต่ออินเทอร์เน็ตไร้สาย ผู้ใช้สามารถเริ่มต้นสร้างแอปโดยไม่ต้องดาวน์โหลดซอฟต์แวร์ลงในคอมพิวเตอร์ของคุณ แต่จะต้องติดตั้ง App App Inventor Companion ลงบนอุปกรณ์แอนดรอย์          กรณีที่ไม่มีอุปกรณ์แอนดรอยด์ ผู้ใช้จะต้องติดตั้งซอฟต์แวร์ในคอมพิวเตอร์  เพื่อให้สามารถใช้เครื่องจำลองแอนดรอยด์บนหน้าจอได้         กรณีไม่มีการเชื่อมต่ออินเทอร์เน็ตไร้สาย ผู้ใช้จะต้องติดตั้งซอฟต์แวร์ในคอมพิวเตอร์ เพื่อให้สามารถเชื่อมต่อกับอุปกรณ์ Android ผ่าน USB ได้    ในกรณีนี้ USB Connection อาจเป็นเรื่องยุ่งยากโดยเฉพาะใน Windows ควร ใช้วิธีนี้เป็นทางเลือกสุดท้าย
รูปภาพ
Screen     คอมโพเนนต์ระดับบนสุดประกอบด้วยส่วนประกอบอื่น ๆ ทั้งหมดในโปรแกรม คุณสมบัติ (Properties)   AboutScreen      ข้อมูลเกี่ยวกับหน้าจอ ปรากฏขึ้นเมื่อเลือก "About this Application" จากเมนูระบบ ใช้เพื่อบอกผู้ใช้เกี่ยวกับแอปของคุณ ในหน้าจอหลายหน้าจอแต่ละหน้าจอจะมีข้อมูลเกี่ยวกับ AboutScreen ของตัวเอง   AlignHorizontal      หมายเลขที่เข้ารหัสว่าเนื้อหาของหน้าจอเรียงตามแนวนอน ตัวเลือกคือ: 1 = ชิดซ้าย, 2 = แนวนอนกึ่งกลาง, 3 = ชิดขวา   AlignVertical      หมายเลขที่เข้ารหัสว่าเนื้อหาของการจัดวางเรียงตามแนวตั้ง ตัวเลือกคือ: 1 = จัดชิดขอบด้านบน, 2 = ตรงกลาง, 3 = เรียงชิดกันที่ด้านล่าง การจัดแนวแนวตั้งไม่มีผลถ้าสามารถเลื่อนหน้าจอได้ สีพื้นหลัง   AppName (ผู้ออกแบบเท่านั้น)      นี่คือชื่อที่ปรากฏของแอพพลิเคชันที่ติดตั้งไว้ในโทรศัพท์ หาก AppName ว่างเปล่าชื่อจะถูกตั้งค่าเป็นชื่อของโครงการเมื่อสร้างโครงการ   BackgroundImage      ภาพพื้นหลังของหน้าจอ   CloseScreenAnimation      ภาพเคลื่อนไหวสำหรับปิดหน้าจอปัจจุบันและกลับไปยังหน้าจอก่อนหน้า ตัวเลือกที่ถูกต้องคือค่าเริ่มต้น,