資料介紹
描述
概括
這是一款支持 WiFi 的體重秤,主要用于稱重食物和追蹤卡路里。如果您正在節(jié)食,如果您跟蹤卡路里攝入量以保持體重,或者如果您正在健身并且只是想通過關(guān)注營養(yǎng)來改善您的結(jié)果,這將非常有用。
它可以非常精確地稱量食物,最高可達(dá)十分之一克,計算卡路里能量,在 LCD 上顯示此信息,使用 RESTful API,您可以傳輸重量信息、調(diào)整設(shè)置或遠(yuǎn)程控制秤。
基本原理
我開始這個項目的原因是因為我想幫助我的妻子追蹤食物。我們都有 FitBit 智能設(shè)備,我們喜歡 FitBit 幫助實現(xiàn)這些目標(biāo)的方式。他們擅長追蹤能量消耗,但不擅長記錄食物。由于一些煩人的錯誤、缺乏功能和不完整的食物數(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查看卡路里,以便您可以添加或刪除東西以將東西控制在預(yù)算之內(nèi)?:)?!弊畛跷疫€想顯示當(dāng)天消耗/剩??余的能量,但我決定在秤 LCD 上包含最少的信息。
我不得不決定是購買一個稱重傳感器并自己制作外殼,還是購買一個便宜的秤,并將其用于內(nèi)部的稱重傳感器和穩(wěn)定的底座。
我選擇購買便宜的秤,其中只保留稱重傳感器和帶按鈕的外殼。如果您認(rèn)為它看起來或效果更好,您可以決定創(chuàng)建自己的案例。我對結(jié)果很滿意,即使它看起來不太好,但是嘿,這是一個 DIY 的東西......
它有什么可惡的?
哦,好吧......你會親眼看到它的:) 它有一種很好的態(tài)度。
產(chǎn)品說明書
開機(jī)/關(guān)機(jī)
右側(cè)有一個機(jī)械開/關(guān)開關(guān),靠近充電端口。確保它已打開。
您可以通過短按紅色(左)按鈕打開體重秤。
要關(guān)閉電源,請長按黑色(右)按鈕至少 3 秒鐘。
您也可以從 API 關(guān)閉電源。
開機(jī)時,標(biāo)志 LED 亮起,然后在網(wǎng)絡(luò)連接后變暗到 20% 左右,然后在 5 秒內(nèi)完全變暗。
省電:自動關(guān)機(jī)
如果 90 秒不活動,體重秤會自動關(guān)機(jī)。不活動意味著在此期間未檢測到體重變化。此外,作為電池的保護(hù)措施,體重秤有一個設(shè)置為 5 分鐘的通用關(guān)機(jī)定時器,無論是否處于活動狀態(tài)。這些計時器可通過 API 自定義。
2022.2 中的新增功能:如果您不構(gòu)建花哨的閉鎖電路,體重秤將關(guān)閉其大部分組件并進(jìn)入深度睡眠以節(jié)省能源。使用閉鎖電路,一切都會關(guān)閉。
收費(fèi)
該秤包含一塊 1000 mAh 可充電鋰離子電池。充滿電后,體重秤通??梢允褂?1-2 個月。LCD 上有電量指示器。當(dāng)電量低于 15% 時,內(nèi)部 LED 會持續(xù)閃爍,建議將充電器插入右側(cè) USB 插座。您可以使用任何 USB 充電器,但建議使用 5V/1A 充電器。
該電池應(yīng)在 1 小時 45 分內(nèi)充滿電。
充電期間,紅色 LED 燈會亮起。充滿電后,藍(lán)色 LED 燈亮起。
使用USB充電器時有短路保護(hù)和過充保護(hù)。
最大輸入電壓:8V(USB 端口的規(guī)格為 5V,誤差范圍為 5%)。
注意事項
鋰離子電池可能很危險,尤其是舊電池。如果您發(fā)現(xiàn)它有任何變熱(甚至不應(yīng)該變熱)或腫脹的跡象,請停止充電并更換新的。您可以用 1000mAh - 2000mAh 電池更換它,對于給定的充電電路永遠(yuǎn)不會更低。
請勿嘗試將USB線插入esp8266的usb口給電池充電,USB線連接esp8266進(jìn)行調(diào)試時,請勿將充電器插入充電口。該端口僅用于調(diào)試和編程,并且只能在機(jī)械開關(guān)處于關(guān)閉位置時使用。使用此端口時不要關(guān)閉開關(guān),您將為電池提供電流,繞過充電電路,從而防止過度充電,并且很有可能損壞電池。鋰離子電池過度充電會引起火災(zāi)和爆炸!
即使計算機(jī)在 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è)置模式下可以充當(dāng)熱點。
默認(rèn)網(wǎng)絡(luò)設(shè)置:
- IP:192.168.1.11
- 網(wǎng)關(guān):192.168.1.1
- 子網(wǎng)掩碼:255.255.255.0
當(dāng)秤啟動時,它會嘗試連接到最后一個已知網(wǎng)絡(luò)。LCD 將顯示“連接到 ”并顯示進(jìn)度指示器。如果連接成功,您會在 LCD 右上角看到信號強(qiáng)度指示器。連接錯誤時,會出現(xiàn)帶有刪除線 WiFi 的指示器。您仍然可以在沒有 WiFi 的情況下使用體重秤,但只能在基本稱重模式下使用。
網(wǎng)絡(luò)配置門戶
第一次使用時,如果您的 WiFi 或身份驗證的 SSID 發(fā)生變化,您需要重新配置連接設(shè)置。您可以通過雙擊 Wemos R1 Mini 芯片的重置按鈕來啟動配置門戶。打開體重秤后,您基本上需要以 5 秒的間隔按兩次重置按鈕。
進(jìn)入該模式時,秤的標(biāo)志 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。
使用體重秤
體重秤開機(jī)后,當(dāng)體重秤完成初始化,顯示屏顯示 0g 時,將物品放在綠色稱重區(qū)。重量以 1 秒的間隔采樣并顯示在顯示屏上。
要讓秤同時顯示體重和卡路里,請使用 API 發(fā)送食物信息。電子秤會實時顯示食物名稱、重量和卡路里。秤會記住食物,直到斷電或您發(fā)送另一個食物信息。
去皮功能
例如,當(dāng)一個空容器放在稱重平臺上時,去皮功能會重置秤顯示器的零位,以便隨后僅顯示容器內(nèi)容物的重量。這實際上是通過將當(dāng)前秤上的內(nèi)容歸零來工作的,因此您可以在向同一接收者添加不同食物時使用此功能,但想要單獨(dú)稱重它們。
秤總是從去皮開始,所以如果你在開始秤之前放置一個空盤子,它會顯示 0。
顯示背光
LCD 背光根據(jù)環(huán)境照明自動控制。秤正面有一個傳感器,在按鈕按鈕的左側(cè)。
技術(shù)信息
這個項目需要良好的焊接技能、一些創(chuàng)建更簡單電路的背景、對電子學(xué)的基本了解以及一些 Arduino IDE 的經(jīng)驗。如果您是新手,我建議您先嘗試一個更簡單的項目,以掌握它的竅門。
我建議在電池的正極線上安裝一個機(jī)械開關(guān),以防您想切斷電池的電源。該電路依賴于一個軟開關(guān)(一個按鈕),因此秤能夠自行關(guān)閉。僅使用機(jī)械開關(guān),這是不可能的。
來自電池的電流由一個 47uF 大容量電解電容器 (C2) 和一個 100nF 去耦陶瓷電容器 (C1) 過濾,它們都與電池的輸入并聯(lián) 大容量電容器非常重要,因為它就像一個能量庫對于饑餓的 esp8266 芯片,在啟動時是必不可少的。esp8266 在啟動時會產(chǎn)生 70-150 mA 的突發(fā)電流,并可能產(chǎn)生 300-400mA 的尖峰電流。結(jié)果,穩(wěn)壓器輸入端的電壓下降。如果電壓下降太多,則可能會導(dǎo)致掉電。大容量電容器將平滑這些尖峰并避免穩(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 的電流。這個額定電流高達(dá) 24 安培,所以有點笨重,但沒有更小的。您也可以用類似的 N 通道 Mosfet 甚至 NPN 晶體管替換 N 通道 Mosfet。如果換成三極管,通過10K電阻連接三極管的基極,限制基極電流。使用 Mosfet 的優(yōu)點是功耗低得多,但它只在秤打開時消耗電流
Wemos D1 Mini 由用作開關(guān)的紅色(左)按鈕供電。一旦啟動,它將數(shù)字引腳 GPIO16 設(shè)置為高電平,將 3.3V 饋入 N 溝道 Mosfet 柵極,從而使電流從漏極流向負(fù)側(cè)的源極。Q1 的柵極被 R1 下拉,因此 FET 最初不導(dǎo)通。這使得 Q2 在漏極和源極之間導(dǎo)通,因為 Q2 的柵極現(xiàn)在被拉到地。Q2 是一個 P 溝道 Mosfet,工作方式相反——默認(rèn)情況下它被 10K 電阻 R2 拉高,并且只允許電流在沒有電壓施加到它的柵極時流動。
微控制器可以通過將 GPIO16 設(shè)置為低電平,從 Q1 柵極移除電壓,Q1 現(xiàn)在被 R1 拉低,從而中斷到 Q2 柵極的接地路徑,Q2 再次被 R2 拉高。
實體按鍵
秤有兩個物理按鈕。還有一個開關(guān)用于中斷從電池到連接板的電源。
位于左側(cè)的第一個按鈕無法使用微控制器讀取。它僅用作電源開關(guān)。微控制器上電后,該按鈕沒有任何作用。我更喜歡一種簡單的方法,我通過一個按鈕打開電源,然后通過軟件或通過讀取另一個按鈕來關(guān)閉電源。您可以在長按時按下/關(guān)閉按鈕,但需要更復(fù)雜的電路。
右側(cè)的第二個按鈕具有雙重作用:
- 長按關(guān)閉體重秤
- 短按去皮重
與嘗試重復(fù)使用“開”按鈕相比,將開和關(guān)按鈕分開對我來說更容易。
基本上只有第二個按鈕被微控制器讀取。為了區(qū)分短按和長按,我只存儲按鈕改變狀態(tài)的時間,并測量是否有足夠的時間考慮長按(3 秒)。您可以研究在 loop() 中執(zhí)行的函數(shù)handleTareButton()中的代碼。
秤校準(zhǔn)
在做任何事情之前校準(zhǔn)秤非常重要。為此,使用了所謂的校準(zhǔn)因子。如果您將秤置于校準(zhǔn)模式,則此校準(zhǔn)系數(shù)可由秤確定。要將秤置于校準(zhǔn)模式,請使用 HTTP API:
校準(zhǔn)模式會要求您在秤上放置一個已知的重量。一旦檢測到重量,它就會計算校準(zhǔn)系數(shù),應(yīng)用它,將其保存到 EEPROM 中以備下次啟動時再次使用。
已知重量設(shè)置為152g。這可能聽起來很奇怪,但這實際上是我的三星 S7手機(jī)的重量。使用手機(jī)本身來校準(zhǔn)秤非常方便。該值取自規(guī)格(我猜他們已經(jīng)用校準(zhǔn)秤測量了該值:))并且我通過稱重幾個硬幣來確認(rèn)校準(zhǔn)正確。硬幣也是可以作為校準(zhǔn)砝碼的東西,因為它們都有官方的重量,但是你需要一串硬幣至少稱重 50 克才能進(jìn)行一種準(zhǔn)確的校準(zhǔn)。
閱讀重量
為了測量重量,我們需要兩個組件
使用的這種直桿稱重傳感器的額定重量為 5 千克,這意味著它可以將高達(dá) 5 千克的壓力(力)轉(zhuǎn)化為電信號。稱重傳感器能夠測量響應(yīng)于應(yīng)變(例如壓力或力)并與其成比例變化的電阻。
為了能夠讀取這些微小的電阻波動,您需要非常精確且昂貴的儀器,或者像 HX711 這樣的優(yōu)質(zhì)放大器,它可以將這些微小的變化轉(zhuǎn)化為可讀的內(nèi)容。
讀數(shù)應(yīng)該非常準(zhǔn)確,因為使用的稱重傳感器放大器 (HX711) 包含一個 24 位 ADC。要獲得準(zhǔn)確的結(jié)果,請確保秤具有穩(wěn)定的底座。您可以使用橡膠腿。
從稱重傳感器上的惠斯通電橋引出的四根電線通常是:
- 勵磁+(E+)或VCC為紅色
- 勵磁-(E-)或接地為黑色。
- 輸出+ (O+)、信號+ (S+)+ 或放大器+ (A+) 為白色
- O-、S- 或 A- 為綠色或藍(lán)色
從我使用的廉價秤中出來的白色和藍(lán)色電線實際上是顛倒的,但我注意到這是因為它們在現(xiàn)有 PCB 上的標(biāo)簽。
我讀過 HX711 在 5V 下工作得更好,但在 3.3V 下我得到了令人滿意的結(jié)果。您的模塊可能具有用于模擬和數(shù)字電源的專用電源輸入,例如來自 Sparkfun 的模塊。這種分離允許用 5V 為模擬部分供電,用 3.3V 為邏輯部分供電,因此您可以使用 3.3V 微控制器。我的模塊沒有這些選項。
關(guān)于使用 HX711 的 Sparkfun 教程。
標(biāo)有DAT或DOUT和CLK的引腳可以連接到任何數(shù)字引腳。我使用GPIO5作為DOUT ,GPIO4作為CLK。
使用的庫應(yīng)該負(fù)責(zé)通信。我使用bogde/HX711作為庫,大多數(shù)人都在使用
經(jīng)過幾次試驗,我能得出的最好的讀取體重的算法是:
- 在計時器中每秒讀取一次刻度
- 在每次讀數(shù)時獲取 7 個樣本并使用平均值
- 在權(quán)重穩(wěn)定后使用移動平均算法,減少異常變化,提高準(zhǔn)確性。移動平均線基于那些 1 秒讀數(shù)的歷史記錄。
您可以研究函數(shù)readScale()中的代碼。
您可以使用 API 檢索重量:
讀取電池充電狀態(tài)
鋰離子電池的充電狀態(tài)是根據(jù)電壓計算的。我為不同的電壓值組裝了穩(wěn)定的充電百分比。你會在網(wǎng)上找到不同的表格,或多或少準(zhǔn)確,我所做的是查看鋰離子電池數(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 引腳。
但是充滿電的電池的 4.2V 超出了裸露的引腳所能承受的范圍。通過在電池正極端子和 ADC 引腳之間連接一個額外的 220k 電阻,由于存在分壓器,我們將在暴露引腳上獲得小于 3.3V 的電壓,在 ESP8266 的 ADC 引腳上獲得小于 1V 的電壓。
通過添加一個 220k 電阻,實際上總電阻為 220k + 220k + 100k = 540k。因此,如果充滿電的電池電壓為 4.2 伏,則 ESP8266 的 ADC 將獲得 4.2 * 100/540= 0.77 伏,當(dāng) ADC 為 1V 時允許輸入電壓高達(dá) 5.4V,因此輸入引腳和 ADC將在過電壓(施加直接 USB 電壓)的情況下受到保護(hù)。
我在 ADC 引腳和地之間添加了一個 100nF 的陶瓷電容器,以平滑讀數(shù)并降低噪聲。我只是在草圖開始時取了 1 個樣本,然后將其乘以一個已知的校準(zhǔn)因子,因為讀數(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。它可以有一個限流電阻,或者它們可以有更高的正向電壓。一些模塊聲明它們可以使用高達(dá) 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 的同步串行接口進(jìn)行控制。有時鐘 ( SCLK ) 和數(shù)據(jù) ( DN ) 輸入線,以及低電平有效的片選 ( SCE ) 輸入。
在這三個串行線之上,還有另一個輸入——D/ C——它告訴顯示器它接收的數(shù)據(jù)是命令還是可顯示數(shù)據(jù)。
對于數(shù)據(jù)傳輸引腳——SCLK 和 DN(MOSI)——我使用了 Arduino 的硬件SPI 引腳,這將有助于實現(xiàn)更快的數(shù)據(jù)傳輸。片選(SCE)接地,復(fù)位(RST)通過一個10K的電阻連接到Wemos R1 Mini復(fù)位管腳,以便微控制器復(fù)位時復(fù)位顯示。數(shù)據(jù)/命令 (D/C) 引腳可以連接到任何數(shù)字 I/O 引腳,因此我使用了通常用于 SPI MISO 的GPIO12 ,未使用,在 D1 Mini上標(biāo)記為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 引腳需要正電壓才能打開,因此無法在低端使用它(負(fù)饋電),因為接地已經(jīng)連接到模塊上
沒有LDR,電路使背光完全點亮。使用 LDR,晶體管基極將獲得或多或少的電流,這取決于 LDR 獲得多少光,因為 LDR 電阻隨著光從黑暗中的非常高的電阻降低到光線中的非常低的電阻。晶體管基極在光照環(huán)境下會獲得非常低的電流,因為大部分電流會流過 LDR 的電阻較小的路徑,因此從集電極到發(fā)射極(3.3V 到 BLT 引腳)的電流會很低,并且背-光線會非常暗或關(guān)閉。在較暗的環(huán)境中,LDR 電阻增加,允許更多電流到達(dá)晶體管的基極,從而允許更多電流從集電極傳輸?shù)桨l(fā)射極(3.3V 到 BLT 引腳)并點亮LED。
我選擇了從 3.3V 到晶體管基極的固定 1K 電阻,以及從發(fā)射極到 BLT 的 22ohms 保護(hù)電阻。保護(hù)并不是真正必要的,但始終建議在 LED 之前使用電阻器。
標(biāo)志燈
每個產(chǎn)品都需要一個標(biāo)志,還有什么比發(fā)光標(biāo)志更漂亮的呢?
為此,我只是在Wemos D1 Mini上使用了標(biāo)記為D3的GPIO 0 ,當(dāng)徽標(biāo)應(yīng)點亮?xí)r將其設(shè)置為高電平,當(dāng)徽標(biāo)應(yīng)關(guān)閉時將其設(shè)置為低電平。我還使用 PWM 和 analogWrite 將其調(diào)暗。當(dāng)然,我加了一個幾歐的保護(hù)電阻(我實際用的是1.2ohm,但是如果你不確定led的正向電壓,我推薦一個更大的,比如22ohm)來保證led的安全。
GPIO 0 是 ESP8266 的一個特殊引腳,用于啟動過程,因此它在啟動時始終為高電平,但這完全沒問題。啟動后,您可以將其用作輸出并隨心所欲地使用它。
圖書館
- WiFi Manager - 用于網(wǎng)絡(luò)配置門戶
- Adafruit GFX - 圖形庫
- Adafruit PCD8544 。- 諾基亞 5110 LCD 內(nèi)部芯片庫。在此處將其與 Wemos D1 Mini 一起使用的信息。
- Pull Request for ESP8266 support into Adafruit-PCD8544-Nokia-5110-LCD-library (在我寫這篇文章的時候沒有合并。如果還沒有合并,你需要手動復(fù)制更改)。
- SimpleTimer - 用于非阻塞定時器
- 雙復(fù)位檢測器- 檢測芯片復(fù)位按鈕上的兩次按壓
- MovingAverage - 平滑刻度讀數(shù)的??算法。
API參考
RESTful HTTP API 可在http://healthzuilla-scale.local/api/
或通過 IP 在http://
healthzuilla-scale.local
由于秤上安裝了 mDNS 響應(yīng)器,因此可以正常工作。有些設(shè)備可能無法識別此主機(jī)名,例如 Android 設(shè)備,因為它們?nèi)狈?mDNS 支持。在這種情況下,使用 IP 地址
不支持 SSL
在 v 2022.2 中嘗試使用自簽名的 2048 位證書,但事實證明即使在 160 Mhz 時鐘下,這對于 ESP8266 芯片來說也太慢了。所以此更改已在 v 2022.3 中恢復(fù)
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
}
}
校準(zhǔn)ADC
POST /api/device/calibrate-adc
校準(zhǔn)內(nèi)部 ADC 以讀取電池電壓。為此,您需要將測得的電池電壓作為參數(shù)發(fā)送。
必需的參數(shù):
-
電壓值必須介于 3 和 4.35 之間
float
關(guān)機(jī)_
POST/api/device/poweroff
重置
POST/api/device/reset
確保在進(jìn)行軟重置時按住電源按鈕,否則它會在重置過程中自行斷電。如果您正在使用插入 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
校準(zhǔn)秤
POST /api/calibrate
啟動交互式校準(zhǔn)模式。秤會要求您放置一個已知的重量,然后它會自動校準(zhǔn)。
檢索上次設(shè)置的食物 ID 的重量
GET /api/weight
回復(fù):
{
“foodId”:123,
“weight”:90.5,
“unit”:“g”
}
設(shè)置食物信息
POST/api/weight
必需的參數(shù):
-
foodId
string
一個唯一的 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
- IP6862?是一款支持一芯多充的無線充電發(fā)射端控制SOC?芯片
- 升壓充電IC:IP2320是一款支持雙節(jié)串聯(lián)的升壓充電芯片
- 一款支持多種不同配置的banime40鍵盤
- 一款支持LORA通信的便攜手持終端PDA設(shè)備 12次下載
- 一款支持LORA-4G的智慧盒子 26次下載
- 一款電路簡潔的膽石混合功放的制作 45次下載
- 一款前膽后石的新甲類功放 39次下載
- 一款表現(xiàn)不俗的電流輸出型功放 21次下載
- 一款優(yōu)秀的土炮功放電路 24次下載
- H3 Android4.4.2平臺移植wifi模塊文檔 10次下載
- PuTTY Plus一款可支持Android adb的putty工具軟件免費(fèi)下載 69次下載
- 如何吧體重秤的上云服務(wù)的詳細(xì)資料說明
- 基于ESP8266芯片方案的WIFI開發(fā)板的詳細(xì)介紹和使用說明資料概述 62次下載
- 電子秤帶語音系統(tǒng)原理圖 7次下載
- NodeMCU基于ESP8266的一款wifi開發(fā)板 525次下載
- 分享一款別樣的ssh客戶端-PortX 448次閱讀
- inSSIDer:一款功能強(qiáng)大的WiFi掃描工具 3644次閱讀
- 分享一款精小調(diào)試支持庫:dbuglib 524次閱讀
- 開發(fā)一款segmentation標(biāo)記的工具 1682次閱讀
- 一款支持弱口令爆破的內(nèi)網(wǎng)資產(chǎn)探測漏洞掃描工具SweetBabyScan 4419次閱讀
- 實現(xiàn)一款高可用的TCP數(shù)據(jù)傳輸服務(wù)器(Java版) 773次閱讀
- dfrobotWiDoArduino的WIFI主控板簡介 1701次閱讀
- 卓嵐信息科技多功能串口轉(zhuǎn)WIFI模塊ZLSN7046概述 1902次閱讀
- 友堅科技UT_WIFI_G簡介 2092次閱讀
- STM32 OTA例程中的WiFi芯片ESP8266 1.2w次閱讀
- 如何制作一個簡易的磁力秤? 6076次閱讀
- 電子秤設(shè)計電路圖匯總(六款模擬電路設(shè)計原理圖詳解) 25.2w次閱讀
- 基于stm32的電子秤方案大全(二款stm32的電子秤設(shè)計方案) 3.4w次閱讀
- 基于微信平臺的體重健康管理系統(tǒng)設(shè)計 3171次閱讀
- 以高整合度混合信號單片機(jī)實現(xiàn)電子計價秤應(yīng)用 1775次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計實例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動電路設(shè)計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評論
查看更多