Download presentation
Presentation is loading. Please wait.
Published byFinn Dahl Modified 5年之前
1
第二組 體重計連接wifi 組員:S 羅翊甄 S 江德輝 S 江鴻儀 S 陳彥任
2
分工 體重計訊號傳輸:羅翊甄,江德輝 wifi模組:陳彥任 手機app:江鴻儀
3
流程圖 INA125 體重計 arduino 電腦 手機APP wifi
4
體重計訊號 體重計(四個負重傳感器)+計算晶片
5
體重計訊號 簡單來說,體重計就是由四個負重傳感器還一組片組成 load cell
6
INA125的接腳
7
體重計訊號-INA125
8
體重計訊號 再將load cell 接到晶片INA125
9
體重計訊號
10
wifi
11
更改鮑率 使用Realterm、PL2303HX、ESP燒錄軟體
12
設定wifi 使用AT指令 AT+CWMODE=1 AT+CIPMUX=0 AT+CWJAP= "SSID","PASS"
13
接上Arduino
14
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;
15
Arduino 程式 String param="&field1=" + (String)h;
String cmd="AT+CIPSTART=\"TCP\",\" \",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); ////////////////////////////////////////////////////////////////////////////////
16
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 *analogValue; if(millis() > time + timeBetweenReadings) float weigth = analogToLoad(analogValue); time = millis(); return weigth;
17
成品圖
18
Thinkspeak 運用雲端儲存wifi傳的值
19
手機app 手機app顯示雲端接收到的值
20
改善空間 因為Thinkspeak更新一次需要16秒的時間,所以沒辦法無 時無刻取得體重的數值
因為一站上去體重計就會傳值,所以會不準,所以要有第 二次的測量
21
謝謝
Similar presentations