Arduino EEPROM的使用

EEPROM

斷電後可記錄數據。通常用於單片機的初始化數據參數的保存或系統數參數的保存。

EEPROM的使用

  • EEPROM的配置
  1. include <EEPROM.h>
  2. EEPROM.Begin(512)會佔用內存使用完畢後釋放內存EEPROM.End()此點在示例中未得到進一步的證實,需在使用中遇到後進一步的驗證。
  3. EEPROM.read(addr,byte); EEPROM.write(addr, byte);
  4. 對於複雜數據EEPROM.get(addr,obj); EEPROM.put(addr,obj);
  5. myobj cusVar={ String field1; const char* field2;}

字符串與char的處理

1.String 轉爲 char[](const char* pp)
pp=Str.c_str();
2.char[] 轉爲 String()
String(pp);
3.const char* t;
String f=“abcde”;
t=&f[0];
4.在struct中用char m[20];來定義字符串
在使用中strcpy(customVar2.sname,assid.c_str());

預置頁面

前綴加入此句

String(“HTTP/1.1 200 OK\r\n”) +
“Content-Type: text/html\r\n” +
“Connection: close\r\n” + // the connection will be closed after completion of the response
“\r\n” +

"

函數可以寫成這樣

“function su(F,args){\n”+
“var saction=’’;\n”+
“for(var i=0;i<args.length;i++){\n”+
“var m0=F.concat(’-’).concat(args[i]).concat(’-’);\n”+
“var m1=(’-’).concat(F).concat(’-’).concat(args[i]);\n”+
“var s=document.getElementById(F.concat(’-’).concat(args[i])).value;\n”+
“saction=saction.concat((m0.concat(s)).concat(m1).concat(’|’));\n”+
“}\n”+
“console.log(saction);\n”+
“document.getElementById((‘F-’).concat(F)).action=saction;\n”+
“document.getElementById((‘F-’).concat(F)).submit();\n”+
“}\n”+

表單可以寫成這樣

“<form id='F-N1' action='N1'>"+
           "<label>主機名稱:</label><input id='N1-1' type='text'><br>"+
           "<label>主機密碼:</label><input id='N1-2' type='text'><br>"+            
           "<input class='button button-off' type='button' value='保存主機信息'  onclick='javascript:su(\"N1\",[\"1\",\"2\"]);' >"+
           </form>\n”+

在操作EEPROM時爲了不礙單機片的日常使用速度需做初始化設置處理

此處初始化設置處理採用的 ArduinoOTA

ArduinoOTA的使用

開機初始化參數

WiFiServer server(80); //創建tcp server

1.在setup中設置

 a.EEPROM.begin(128);
 b.設置查看系統初始化參數的函數,當然這個函數的設置是用來讀取EEPROM中的數據
    EEPROM.get(addr,customVar1);
     賦值給單片機,如是wifi模塊則對熱點參,路由參數數據進行賦值
     WiFi.mod(WIFI_AP_STA);
     WiFi.softAP(assid,asecret);
     server.begin();啓動tcp服務
 c.設置 ArduinoOTA服務
    ArduinoOTA.setHostname(""xyWebOTA");
    ArduinoOTA.begin();

2.在運行中進行監測

通過監測初始化的配置狀態來讀取初始化數據,爲防置在setup中漏檢初始化數據。
通過監測設備初始化設置狀態來決定是否要執行OTA()
通過以上的監測過後可進行常規的單片機運轉。

3.OTA()的執行

1.先開啓 ArduinoOTA.handle()
2.WiFiClient client=server.available();監測客戶端的訪問

if(client){
while(client.connected()){ //不斷監測請求內容,
if(client.available()){ //如果有請求
//取得請求地址
String line=client.readStringUntil(’\r’);
//如果含有某個參數說明是表單提交了 ,對得參數數據後調用writeEEPROM
line.indexOf("")>0{}
//如果無請求的參數(line.length()1) && line[0]’\n’){client.println(調用預置頁函數)}
}
}
delay(1) //給瀏覽器接收數據的時間
client.flush();//然後關閉本次連接,釋放資源

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章