第二組 體重計連接wifi 組員:S0453013 羅翊甄 S0453025 江德輝 S0453015 江鴻儀 S0453022 陳彥任
分工 體重計訊號傳輸:羅翊甄,江德輝 wifi模組:陳彥任 手機app:江鴻儀
流程圖 INA125 體重計 arduino 電腦 手機APP wifi
體重計訊號 體重計(四個負重傳感器)+計算晶片
體重計訊號 簡單來說,體重計就是由四個負重傳感器還一組片組成 load cell
INA125的接腳
體重計訊號-INA125
體重計訊號 再將load cell 接到晶片INA125
體重計訊號
wifi
更改鮑率 使用Realterm、PL2303HX、ESP燒錄軟體
設定wifi 使用AT指令 AT+CWMODE=1 AT+CIPMUX=0 AT+CWJAP= "SSID","PASS"
接上Arduino
Arduino 程式 #include <SoftwareSerial.h> String api_key="HHZDRM0GQJAHXUY6"; SoftwareSerial sSerial(4,5); float loadA = 10.4; int analogvalA = 156; float loadB = 15.3; int analogvalB = 184; float analogValueAverage = 0; long time = 0; int timeBetweenReadings = 1000; void setup() { Serial.begin(9600); sSerial.begin(9600); } void loop() { //////////////////////////////////////////////////// float h=getload(); if(h>0.001) { if (isnan(h)){ Serial.println("Failed to read from sensor!"); return;
Arduino 程式 String param="&field1=" + (String)h; String cmd="AT+CIPSTART=\"TCP\",\"184.106.153.149\",80"; sSerial.println(cmd); if (sSerial.find("Error")) { Serial.println("AT+CIPSTART error!"); return; } Serial.println(cmd); String GET="GET /update?api_key=" + api_key + param + "\r\n\r\n"; Serial.println(GET); cmd="AT+CIPSEND=" + String(GET.length()); if (sSerial.find(">")) sSerial.print(GET); else sSerial.println("AT+CIPCLOSE"); Serial.println("AT+CIPCLOSE"); delay(16000); ////////////////////////////////////////////////////////////////////////////////
Arduino 程式 float analogToLoad(float analogval){ float load = mapfloat(analogval, analogvalA, analogvalB, loadA, loadB); return load; } //////////////////////////////////////////////////////////////////////////////// float mapfloat(float x, float in_min, float in_max, float out_min, float out_max){ return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; float getload() { int analogValue = analogRead(0); analogValueAverage = 0.99*analogValueAverage + 0.01*analogValue; if(millis() > time + timeBetweenReadings) float weigth = analogToLoad(analogValue); time = millis(); return weigth;
成品圖
Thinkspeak 運用雲端儲存wifi傳的值
手機app 手機app顯示雲端接收到的值
改善空間 因為Thinkspeak更新一次需要16秒的時間,所以沒辦法無 時無刻取得體重的數值 因為一站上去體重計就會傳值,所以會不準,所以要有第 二次的測量
謝謝