電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>一款支持WiFi的體重秤

一款支持WiFi的體重秤

2023-02-08 | zip | 0.62 MB | 次下載 | 2積分

資料介紹

描述

概括

這是一款支持 WiFi 的體重秤,主要用于稱重食物和追蹤卡路里。如果您正在節(jié)食,如果您跟蹤卡路里攝入量以保持體重,或者如果您正在健身并且只是想通過關(guān)注營養(yǎng)來改善您的結(jié)果,這將非常有用。

它可以非常精確地稱量食物,最高可達十分之一克,計算卡路里能量,在 LCD 上顯示此信息,使用 RESTful API,您可以傳輸重量信息、調(diào)整設(shè)置或遠程控制秤。

基本原理

我開始這個項目的原因是因為我想幫助我的妻子追蹤食物。我們都有 FitBit 智能設(shè)備,我們喜歡 FitBit 幫助實現(xiàn)這些目標的方式。他們擅長追蹤能量消耗,但不擅長記錄食物。由于一些煩人的錯誤、缺乏功能和不完整的食物數(shù)據(jù)庫,我剛剛創(chuàng)建了一個網(wǎng)絡(luò)應(yīng)用程序,我們從那里記錄我們的食物,然后通過他們的 REST API 將這些數(shù)據(jù)發(fā)送到 FitBit。基本上我為它創(chuàng)建了一個更好的界面,允許我們創(chuàng)建一個共享的食物數(shù)據(jù)庫。我目前沒有使用該網(wǎng)絡(luò)應(yīng)用程序來記錄我的食物(不再節(jié)食),即使我仍然戴著 FitBit 追蹤器,但我的妻子喜歡每天使用它(即使她只是想保持體重)。

我們這樣做的方法是用傳統(tǒng)的廚房秤稱重食物,然后將重量手動輸入到網(wǎng)絡(luò)應(yīng)用程序中。在我們在電話上輸入信息之前,我們不知道食物實際含有多少卡路里。所以我告訴我的妻子:“如果我告訴你我可以給你做一個能夠?qū)⒛愕氖澄镉涗浀?FitBit 的體重秤,你會怎么說,這樣你就不需要手動輸入體重,而且你將能夠?qū)崟r查看卡路里,以便您可以添加或刪除東西以將東西控制在預算之內(nèi)?:)?!弊畛跷疫€想顯示當天消耗/剩??余的能量,但我決定在秤 LCD 上包含最少的信息。

我不得不決定是購買一個稱重傳感器并自己制作外殼,還是購買一個便宜的秤,并將其用于內(nèi)部的稱重傳感器和穩(wěn)定的底座。

我選擇購買便宜的秤,其中只保留稱重傳感器和帶按鈕的外殼。如果您認為它看起來或效果更好,您可以決定創(chuàng)建自己的案例。我對結(jié)果很滿意,即使它看起來不太好,但是嘿,這是一個 DIY 的東西......

它有什么可惡的?

哦,好吧......你會親眼看到它的:) 它有一種很好的態(tài)度。

?
20180924_192814_rSbNyJgZmM.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
?
?
20180924_192848_vhgbVv6kNz.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
?
?
20180924_192736_3ldIDJEGts.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
?

產(chǎn)品說明書

開機/關(guān)機

右側(cè)有一個機械開/關(guān)開關(guān),靠近充電端口。確保它已打開。

您可以通過短按紅色(左)按鈕打開體重秤。

要關(guān)閉電源,請長按黑色(右)按鈕至少 3 秒鐘。

您也可以從 API 關(guān)閉電源。

開機時,標志 LED 亮起,然后在網(wǎng)絡(luò)連接后變暗到 20% 左右,然后在 5 秒內(nèi)完全變暗。

省電:自動關(guān)機

如果 90 秒不活動,體重秤會自動關(guān)機。不活動意味著在此期間未檢測到體重變化。此外,作為電池的保護措施,體重秤有一個設(shè)置為 5 分鐘的通用關(guān)機定時器,無論是否處于活動狀態(tài)。這些計時器可通過 API 自定義。

2022.2 中的新增功能:如果您不構(gòu)建花哨的閉鎖電路,體重秤將關(guān)閉其大部分組件并進入深度睡眠以節(jié)省能源。使用閉鎖電路,一切都會關(guān)閉。

收費

該秤包含一塊 1000 mAh 可充電鋰離子電池。充滿電后,體重秤通??梢允褂?1-2 個月。LCD 上有電量指示器。當電量低于 15% 時,內(nèi)部 LED 會持續(xù)閃爍,建議將充電器插入右側(cè) USB 插座。您可以使用任何 USB 充電器,但建議使用 5V/1A 充電器。

該電池應(yīng)在 1 小時 45 分內(nèi)充滿電。

充電期間,紅色 LED 燈會亮起。充滿電后,藍色 LED 燈亮起。

使用USB充電器時有短路保護和過充保護。

最大輸入電壓:8V(USB 端口的規(guī)格為 5V,誤差范圍為 5%)。

注意事項

鋰離子電池可能很危險,尤其是舊電池。如果您發(fā)現(xiàn)它有任何變熱(甚至不應(yīng)該變熱)或腫脹的跡象,請停止充電并更換新的。您可以用 1000mAh - 2000mAh 電池更換它,對于給定的充電電路永遠不會更低。

請勿嘗試將USB線插入esp8266的usb口給電池充電,USB線連接esp8266進行調(diào)試時,請勿將充電器插入充電口。該端口僅用于調(diào)試和編程,并且只能在機械開關(guān)處于關(guān)閉位置時使用。使用此端口時不要關(guān)閉開關(guān),您將為電池提供電流,繞過充電電路,從而防止過度充電,并且很有可能損壞電池。鋰離子電池過度充電會引起火災和爆炸!

即使計算機在 USB 端口上提供低電流(通常為 250mA),所以電流還可以,但電壓對于鋰離子電池來說太高了(它會在 4.8V - 5V 之間,因為它通過肖特基二極管),而鋰離子電池的絕對最大電壓應(yīng)為 4.2V。

聯(lián)網(wǎng)

該秤可以連接到現(xiàn)有的 WiFi b/g/n 網(wǎng)絡(luò),或者在網(wǎng)絡(luò)設(shè)置模式下可以充當熱點。

默認網(wǎng)絡(luò)設(shè)置:

當秤啟動時,它會嘗試連接到最后一個已知網(wǎng)絡(luò)。LCD 將顯示“連接到 ”并顯示進度指示器。如果連接成功,您會在 LCD 右上角看到信號強度指示器。連接錯誤時,會出現(xiàn)帶有刪除線 WiFi 的指示器。您仍然可以在沒有 WiFi 的情況下使用體重秤,但只能在基本稱重模式下使用。

網(wǎng)絡(luò)配置門戶

第一次使用時,如果您的 WiFi 或身份驗證的 SSID 發(fā)生變化,您需要重新配置連接設(shè)置。您可以通過雙擊 Wemos R1 Mini 芯片的重置按鈕來啟動配置門戶。打開體重秤后,您基本上需要以 5 秒的間隔按兩次重置按鈕。

進入該模式時,秤的標志 LED 燈會閃爍兩次,并在屏幕上顯示“ Configure me ”。

要使用配置門戶,請連接到體重秤創(chuàng)建的公共“Healthzuilla-Scale”WiFI 網(wǎng)絡(luò)。然后訪問入口:http: //192.168.4.1

如果您不配置秤,則使用門戶有 5 分鐘的超時時間。

從配置門戶中,您可以選擇 SSID、設(shè)置密碼和身份驗證類型。每次更改設(shè)置時,都會打開 DHCP 客戶端。您需要使用 API 通過將useStaticIP設(shè)置false和靜態(tài) IP 配置來禁用 DHCP。

之前的靜態(tài) IP 設(shè)置被禁用并啟用 DHCP 以便能夠連接到該網(wǎng)絡(luò),因為它可能與您已有的 IP 設(shè)置沖突。連接后,建議設(shè)置一個靜態(tài) IP,這樣您就知道如何使用 API 訪問秤。或者您可以指示路由器始終為秤的物理網(wǎng)絡(luò)地址分配相同的 IP。

使用體重秤

體重秤開機后,當體重秤完成初始化,顯示屏顯示 0g 時,將物品放在綠色稱重區(qū)。重量以 1 秒的間隔采樣并顯示在顯示屏上。

要讓秤同時顯示體重和卡路里,請使用 API 發(fā)送食物信息。電子秤會實時顯示食物名稱、重量和卡路里。秤會記住食物,直到斷電或您發(fā)送另一個食物信息。

去皮功能

例如,當一個空容器放在稱重平臺上時,去皮功能會重置秤顯示器的零位,以便隨后僅顯示容器內(nèi)容物的重量。這實際上是通過將當前秤上的內(nèi)容歸零來工作的,因此您可以在向同一接收者添加不同食物時使用此功能,但想要單獨稱重它們。

秤總是從去皮開始,所以如果你在開始秤之前放置一個空盤子,它會顯示 0。

顯示背光

LCD 背光根據(jù)環(huán)境照明自動控制。秤正面有一個傳感器,在按鈕按鈕的左側(cè)。

技術(shù)信息

?
20180822_220141_WdBpHXLNxS.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
?

這個項目需要良好的焊接技能、一些創(chuàng)建更簡單電路的背景、對電子學的基本了解以及一些 Arduino IDE 的經(jīng)驗。如果您是新手,我建議您先嘗試一個更簡單的項目,以掌握它的竅門。

電源電路

我建議在電池的正極線上安裝一個機械開關(guān),以防您想切斷電池的電源。該電路依賴于一個軟開關(guān)(一個按鈕),因此秤能夠自行關(guān)閉。僅使用機械開關(guān),這是不可能的。

來自電池的電流由一個 47uF 大容量電解電容器 (C2) 和一個 100nF 去耦陶瓷電容器 (C1) 過濾,它們都與電池的輸入并聯(lián) 大容量電容器非常重要,因為它就像一個能量庫對于饑餓的 esp8266 芯片,在啟動時是必不可少的。esp8266 在啟動時會產(chǎn)生 70-150 mA 的突發(fā)電流,并可能產(chǎn)生 300-400mA 的尖峰電流。結(jié)果,穩(wěn)壓器輸入端的電壓下降。如果電壓下降太多,則可能會導致掉電。大容量電容器將平滑這些尖峰并避免穩(wěn)壓器輸入端的電壓下降,從而為穩(wěn)壓器提供能量緩沖。較小的陶瓷去耦電容器有助于消除 WiFi 操作產(chǎn)生的高頻噪聲,并在這些情況下提供更快的響應(yīng)。

在穩(wěn)壓器輸出端,即 HX711 和 LCD 輸入端,使用了兩個去耦陶瓷電容器,一個為 100nF (C4),另一個為 10nF (C5)。它們有助于隔離這些組件,尤其是應(yīng)獲得穩(wěn)定電壓的稱重傳感器放大器 (HX711),并且它們抑制試圖覆蓋更廣泛頻率范圍的高頻噪聲,并在需要時提供即時能量儲備。

軟鎖存電路采用1個P溝道場效應(yīng)管(NDB6020P)-Q2,1個N溝道場效應(yīng)管(2N7000)-Q1,2個10K電阻(R1和R2)。

您可以使用任何 P 通道邏輯電平 Mosfet 代替 NDB6020P,能夠在 -3.3V 時提供至少 500mA 的電流。這個額定電流高達 24 安培,所以有點笨重,但沒有更小的。您也可以用類似的 N 通道 Mosfet 甚至 NPN 晶體管替換 N 通道 Mosfet。如果換成三極管,通過10K電阻連接三極管的基極,限制基極電流。使用 Mosfet 的優(yōu)點是功耗低得多,但它只在秤打開時消耗電流
?
latching-circuit_schem_7IeUicoAcO.png?auto=compress%2Cformat&w=740&h=555&fit=max
鎖存電路原理
?

Wemos D1 Mini 由用作開關(guān)的紅色(左)按鈕供電。一旦啟動,它將數(shù)字引腳 GPIO16 設(shè)置為高電平,將 3.3V 饋入 N 溝道 Mosfet 柵極,從而使電流從漏極流向負側(cè)的源極。Q1 的柵極被 R1 下拉,因此 FET 最初不導通。這使得 Q2 在漏極和源極之間導通,因為 Q2 的柵極現(xiàn)在被拉到地。Q2 是一個 P 溝道 Mosfet,工作方式相反——默認情況下它被 10K 電阻 R2 拉高,并且只允許電流在沒有電壓施加到它的柵極時流動。

微控制器可以通過將 GPIO16 設(shè)置為低電平,從 Q1 柵極移除電壓,Q1 現(xiàn)在被 R1 拉低,從而中斷到 Q2 柵極的接地路徑,Q2 再次被 R2 拉高。

實體按鍵

秤有兩個物理按鈕。還有一個開關(guān)用于中斷從電池到連接板的電源。

位于左側(cè)的第一個按鈕無法使用微控制器讀取。它僅用作電源開關(guān)。微控制器上電后,該按鈕沒有任何作用。我更喜歡一種簡單的方法,我通過一個按鈕打開電源,然后通過軟件或通過讀取另一個按鈕來關(guān)閉電源。您可以在長按時按下/關(guān)閉按鈕,但需要更復雜的電路。

右側(cè)的第二個按鈕具有雙重作用:

  • 長按關(guān)閉體重秤
  • 短按去皮重

與嘗試重復使用“開”按鈕相比,將開和關(guān)按鈕分開對我來說更容易。

基本上只有第二個按鈕被微控制器讀取。為了區(qū)分短按和長按,我只存儲按鈕改變狀態(tài)的時間,并測量是否有足夠的時間考慮長按(3 秒)。您可以研究在 loop() 中執(zhí)行的函數(shù)handleTareButton()中的代碼。

秤校準

在做任何事情之前校準秤非常重要。為此,使用了所謂的校準因子如果您將秤置于校準模式,則此校準系數(shù)可由秤確定要將秤置于校準模式,請使用 HTTP API:

校準模式會要求您在秤上放置一個已知的重量。一旦檢測到重量,它就會計算校準系數(shù),應(yīng)用它,將其保存到 EEPROM 中以備下次啟動時再次使用。

已知重量設(shè)置為152g。這可能聽起來很奇怪,但這實際上是我的三星 S7手機的重量。使用手機本身來校準秤非常方便。該值取自規(guī)格(我猜他們已經(jīng)用校準秤測量了該值:))并且我通過稱重幾個硬幣來確認校準正確。硬幣也是可以作為校準砝碼的東西,因為它們都有官方的重量,但是你需要一串硬幣至少稱重 50 克才能進行一種準確的校準。

閱讀重量

為了測量重量,我們需要兩個組件

  • LoadCell我使用的是直桿稱重傳感器,也稱為應(yīng)變計
  • LoadCell放大器我用的是HX711放大器模塊

使用的這種直桿稱重傳感器的額定重量為 5 千克,這意味著它可以將高達 5 千克的壓力(力)轉(zhuǎn)化為電信號。稱重傳感器能夠測量響應(yīng)于應(yīng)變(例如壓力或力)并與其成比例變化的電阻。

有關(guān)稱重傳感器的更多信息。

為了能夠讀取這些微小的電阻波動,您需要非常精確且昂貴的儀器,或者像 HX711 這樣的優(yōu)質(zhì)放大器,它可以將這些微小的變化轉(zhuǎn)化為可讀的內(nèi)容。

讀數(shù)應(yīng)該非常準確,因為使用的稱重傳感器放大器 (HX711) 包含一個 24 位 ADC。要獲得準確的結(jié)果,請確保秤具有穩(wěn)定的底座。您可以使用橡膠腿。

從稱重傳感器上的惠斯通電橋引出的四根電線通常是:

  • 勵磁+(E+)或VCC為紅色
  • 勵磁-(E-)或接地為黑色。
  • 輸出+ (O+)、信號+ (S+)+ 或放大器+ (A+) 為白色
  • O-、S- 或 A- 為綠色或藍色
從我使用的廉價秤中出來的白色和藍色電線實際上是顛倒的,但我注意到這是因為它們在現(xiàn)有 PCB 上的標簽。

我讀過 HX711 在 5V 下工作得更好,但在 3.3V 下我得到了令人滿意的結(jié)果。您的模塊可能具有用于模擬數(shù)字電源的專用電源輸入,例如來自 Sparkfun 的模塊。這種分離允許用 5V 為模擬部分供電,用 3.3V 為邏輯部分供電,因此您可以使用 3.3V 微控制器。我的模塊沒有這些選項。

關(guān)于使用 HX711 的 Sparkfun 教程。

標有DATDOUTCLK的引腳可以連接到任何數(shù)字引腳。我使用GPIO5作為DOUT ,GPIO4作為CLK。

使用的庫應(yīng)該負責通信我使用bogde/HX711作為庫,大多數(shù)人都在使用

經(jīng)過幾次試驗,我能得出的最好的讀取體重的算法是:

  • 在計時器中每秒讀取一次刻度
  • 在每次讀數(shù)時獲取 7 個樣本并使用平均值
  • 在權(quán)重穩(wěn)定后使用移動平均算法,減少異常變化,提高準確性。移動平均線基于那些 1 秒讀數(shù)的歷史記錄。

您可以研究函數(shù)readScale()中的代碼。

您可以使用 API 檢索重量:

讀取電池充電狀態(tài)

鋰離子電池的充電狀態(tài)是根據(jù)電壓計算的。我為不同的電壓值組裝了穩(wěn)定的充電百分比。你會在網(wǎng)上找到不同的表格,或多或少準確,我所做的是查看鋰離子電池數(shù)據(jù)表中的 SoC 與電壓曲線,并嘗試遵循它。可以通過研究代碼 ( getLiPoBatteryLevel())找到轉(zhuǎn)換表。

您不能直接讀取電池電壓,但可以使用 ADC(模數(shù)轉(zhuǎn)換)來獲取已知間隔內(nèi)的值。ADC 只能讀取特定范圍內(nèi)的電壓,因此如果讀取電壓高于 ADC 范圍,則必須使用分壓器將其縮小以適應(yīng)范圍。

ESP8266 有一個 10 位 ADC 引腳。1 伏特是內(nèi)部 ADC 的最大輸入,原始讀數(shù)為 1023。Wemos D1 Mini 已經(jīng)在 ADC 引腳上包含一個分壓器。這是 100 k 電阻上的 220 k 電阻。只要電壓低于 3.3V,您就可以將電池直接連接到裸露的 ADC 引腳。

?
wemosvoltagedivider_Ch8bul40jB.png?auto=compress%2Cformat&w=740&h=555&fit=max
WemosD1 Mini 內(nèi)部分壓器
?

但是充滿電的電池的 4.2V 超出了裸露的引腳所能承受的范圍。通過在電池正極端子和 ADC 引腳之間連接一個額外的 220k 電阻,由于存在分壓器,我們將在暴露引腳上獲得小于 3.3V 的電壓,在 ESP8266 的 ADC 引腳上獲得小于 1V 的電壓。

通過添加一個 220k 電阻,實際上總電阻為 220k + 220k + 100k = 540k。因此,如果充滿電的電池電壓為 4.2 伏,則 ESP8266 的 ADC 將獲得 4.2 * 100/540= 0.77 伏,當 ADC 為 1V 時允許輸入電壓高達 5.4V,因此輸入引腳和 ADC將在過電壓(施加直接 USB 電壓)的情況下受到保護。

我在 ADC 引腳和地之間添加了一個 100nF 的陶瓷電容器,以平滑讀數(shù)并降低噪聲。我只是在草圖開始時取了 1 個樣本,然后將其乘以一個已知的校準因子,因為讀數(shù)非常穩(wěn)定。如果您的讀數(shù)不同,您可以嘗試使用更大的電容器,讀取多個樣本并取平均值。但是如果你有噪音,你應(yīng)該首先檢查連接并確保你有短線(如 10cm)以最小化電感。

諾基亞5110 顯示屏

這些舊顯示器仍然在那里。諾基亞 5110 LCD 是一個 84 x 48 像素的單色顯示器,它很便宜并且可以很容易地與 Adafruit GFX 庫一起使用。它可以讓您顯示文本、形狀和單色圖像。它還具有 LED 背光。在沒有背光的情況下,它僅消耗 6-7 毫安。

LCD 需要從 2.7 - 3.3V 供電。背光由 4 個 LED 組成。我不能讓那些 LED 在我的模塊中消耗超過 20mA。它可以有一個限流電阻,或者它們可以有更高的正向電壓。一些模塊聲明它們可以使用高達 100mA 的電流,這確實是可能的,因為典型的白色 LED 可以消耗 30mA,所以看到背光消耗 120mA 我不會感到驚訝。與顯示器所需的 6-7mA 相比,您應(yīng)該注意這一點。這就是為什么在電池供電的設(shè)備上我只會在需要時打開背光燈。

我看到一些模塊要求 LED BLT 引腳為邏輯低電平。這就是為什么您應(yīng)該始終閱讀數(shù)據(jù)表,如果它直接需要電源,請始終放置一個限流電阻。例如,為了安全起見,我使用了一個 22 歐姆的電阻器。

此 LCD 中內(nèi)置了飛利浦 PCD8544 顯示控制器,可將原始 LCD 的大量并行接口轉(zhuǎn)換為更方便的串行接口。PCD8544 通過類似于SPI 的同步串行接口進行控制。時鐘 ( SCLK ) 和數(shù)據(jù) ( DN ) 輸入線,以及低電平有效的片選 ( SCE ) 輸入。

在這三個串行線之上,還有另一個輸入——D/ C——它告訴顯示器它接收的數(shù)據(jù)是命令還是可顯示數(shù)據(jù)。

對于數(shù)據(jù)傳輸引腳——SCLK 和 DN(MOSI)——我使用了 Arduino 的硬件SPI 引腳,這將有助于實現(xiàn)更快的數(shù)據(jù)傳輸。片選(SCE)接地,復位(RST)通過一個10K的電阻連接到Wemos R1 Mini復位管腳,以便微控制器復位時復位顯示。數(shù)據(jù)/命令 (D/C) 引腳可以連接到任何數(shù)字 I/O 引腳,因此我使用了通常用于 SPI MISO 的GPIO12 ,未使用,在 D1 Mini上標記為D6 。

Sparkfun 創(chuàng)建了一個關(guān)于使用此 LCD 的精彩教程。

汽車液晶背光

由于背光 LCD 可能很耗電并且并不總是需要,我創(chuàng)建了一個電路來根據(jù)光照條件調(diào)整背光。

我使用的自動背光電路由一個 NPN 晶體管、一個 LDR(光敏電阻)和兩個電阻組成。使用的NPN三極管為2N3904 ,可提供200mA電流。由于所需的電流很低,您有很多選擇可以用任何 NPN 晶體管替換它。在此設(shè)置中,NPN 沒有像通常用作低側(cè)開關(guān)那樣使用,而是用作高側(cè)開關(guān)。由于 BLT 引腳需要正電壓才能打開,因此無法在低端使用它(負饋電),因為接地已經(jīng)連接到模塊上

沒有LDR,電路使背光完全點亮。使用 LDR,晶體管基極將獲得或多或少的電流,這取決于 LDR 獲得多少光,因為 LDR 電阻隨著光從黑暗中的非常高的電阻降低到光線中的非常低的電阻。晶體管基極在光照環(huán)境下會獲得非常低的電流,因為大部分電流會流過 LDR 的電阻較小的路徑,因此從集電極到發(fā)射極(3.3V 到 BLT 引腳)的電流會很低,并且背-光線會非常暗或關(guān)閉。在較暗的環(huán)境中,LDR 電阻增加,允許更多電流到達晶體管的基極,從而允許更多電流從集電極傳輸?shù)桨l(fā)射極(3.3V 到 BLT 引腳)并點亮LED。

我選擇了從 3.3V 到晶體管基極的固定 1K 電阻,以及從發(fā)射極到 BLT 的 22ohms 保護電阻。保護并不是真正必要的,但始終建議在 LED 之前使用電阻器。

標志燈

每個產(chǎn)品都需要一個標志,還有什么比發(fā)光標志更漂亮的呢?

為此,我只是Wemos D1 Mini上使用了標記為D3的GPIO 0 ,當徽標應(yīng)點亮時將其設(shè)置為高電平,當徽標應(yīng)關(guān)閉時將其設(shè)置為低電平。我還使用 PWM 和 analogWrite 將其調(diào)暗。當然,我加了一個幾歐的保護電阻(我實際用的是1.2ohm,但是如果你不確定led的正向電壓,我推薦一個更大的,比如22ohm)來保證led的安全。

GPIO 0 是 ESP8266 的一個特殊引腳,用于啟動過程,因此它在啟動時始終為高電平,但這完全沒問題。啟動后,您可以將其用作輸出并隨心所欲地使用它。

圖書館

API參考

RESTful HTTP API 可在http://healthzuilla-scale.local/api/或通過 IP 在http://

healthzuilla-scale.local由于秤上安裝了 mDNS 響應(yīng)器,因此可以正常工作。有些設(shè)備可能無法識別此主機名,例如 Android 設(shè)備,因為它們?nèi)狈?mDNS 支持。在這種情況下,使用 IP 地址
不支持 SSL
在 v 2022.2 中嘗試使用自簽名的 2048 位證書,但事實證明即使在 160 Mhz 時鐘下,這對于 ESP8266 芯片來說也太慢了。所以此更改已在 v 2022.3 中恢復

API 接收表單編碼的輸入參數(shù)卷曲示例:

curl -XPATCH /api/settings --data "useStaticIP=1&ip=192.168.1.11"

成功的 POST/PATCH 操作返回 HTTP 狀態(tài)代碼 200 和如下所示的 JSON:

{"success": true}

失敗的請求返回一個非 200 的 HTTP 狀態(tài)代碼和一個帶有兩個鍵的 JSON 對象:

  • 錯誤:bool (始終為真)
  • 消息:字符串

例子:

{"error": "true", "message": "Invalid voltage. Must be between 3 - 4.35v"}

以下所有路徑均與秤 IP 地址相關(guān)。

設(shè)備接口

檢索信息

GET /api/device/info

示例響應(yīng):

{
	"battery":{
		"voltage":4.09,
		"chargeLevel":90
	},
	"network":{
		"deviceMac":"84:F3:EB:B3:86:75",
		"ip":"192.168.1.11",
		"subnetMask":"255.255.255.0",
		"gateway":"192.168.1.1",
		"dnsIP":"192.168.1.1",
		"SSID":"tplink-est",
		"BSSID":"64:66:B3:64:1D:A9",
		"signalStrength":-71
	}
}

校準ADC

POST /api/device/calibrate-adc

校準內(nèi)部 ADC 以讀取電池電壓。為此,您需要將測得的電池電壓作為參數(shù)發(fā)送。

必需的參數(shù):

  • 電壓值必須介于 3 和 4.35 之間float

關(guān)機_

POST/api/device/poweroff

重置

POST/api/device/reset

確保在進行軟重置時按住電源按鈕,否則它會在重置過程中自行斷電。如果您正在使用插入 Wemos D1 Mini 的 USB 電纜調(diào)試體重秤,這僅在不按下按鈕的情況下有效。

設(shè)置接口

檢索設(shè)置

GET /api/settings

示例響應(yīng):

{
	"useStaticIp":true,
	"ip":"192.168.1.11",
	"gateway":"192.168.1.1",
	"subnetMask":"255.255.255.0",
	"zeroFactor":131702,
	"calibrationFactor":414.19,
	"calibrationWeight":152.00,
	"powerOffTimerSec":300,
	"idlePowerOffTimerSec":90,
	"voltageCalibrationFactor":0.005226
}

帶有 curl 的示例請求:

$ curl -XPATCH http://192.168.1.11/api/settings --data "useStaticIp=1&ip=192.168.0.10"

更改設(shè)置

PATCH /api/settings

比例函數(shù) API

校準

POST /api/calibrate

啟動交互式校準模式。秤會要求您放置一個已知的重量,然后它會自動校準。

檢索上次設(shè)置的食物 ID 的重量

GET /api/weight

回復:

{
   “foodId”:123,
   “weight”:90.5,
   “unit”:“g”
}

設(shè)置食物信息

POST/api/weight

必需的參數(shù):

  • foodIdstring一個唯一的 id 來識別這個食物
  • 名稱string在秤 LCD 上顯示的食物名稱
  • 卡路里熱量float/100g

樣品要求:

curl -XPOST http://192.168.1.11/api/weight --data "foodId=123&name=Banana&calories=89.2"

皮重

POST /api/tare


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關(guān)電源設(shè)計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設(shè)計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費