2018-6-14 09:37:26 [显示全部楼层]
24801浏览
查看: 24801|回复: 31

[项目] 用ESP8266 开发板,制作WiFi物联网智能体重秤

[复制链接]
如果你居住的地方已经是夏天,那么可能正是户外健身活动的好时节。跑步、骑行或者慢跑都是非常棒的运动,可以让您保持体形。

用ESP8266 开发板,制作WiFi物联网智能体重秤图5


如果你希望减肥或者保持当前体重,那么坚持记录体重是至关重要的。例如,使用运动品牌可以让您确认是否处在正轨并且保持积极性。但是非常重要的是坚持记录你的体重变化。通过正确的工具和使用一些电子元件和编程,你就能够制作自己的互联网体重秤!你可以在网上找到来自不同制造商的多款智能体重秤。但是与其购买一个,为什么不通过制造自己的体重秤来减肥呢?

用ESP8266 开发板,制作WiFi物联网智能体重秤图6



在这个项目中,我使用3D打印,一个FireBeetle ESP8266开发板,IFTTT和Adafruit.IO设计制造了一个智能体重秤。你可以通过这个教程练习多项技能:3D打印和激光切割技能,焊接,电子技术,编程等等。在接下来的步骤里,我将向你展示如何使用3D打印外壳,连接电路,以及编写代码。在完成本教程后,你将能够测量体重并在线记录!

准备工具和材料
硬件清单


用ESP8266 开发板,制作WiFi物联网智能体重秤图11


我是采用了FireBeetle ESP8266作为主板,一方面它用Arduino IDE编程方便,还配备内置的Wi-Fi模块,该主板带有一个用于3.7V电池的连接器,这对于本项目的组装是非常有用的。此外它还配备一个内置的电池充电器,当连接USB插头时,该充电器可以为电池充电。

体重计的显示部分,我是用了FireBeetle 24x8 LED矩阵,它的显示颜色很多,可以自己选择,我用它显示微控制器的测量值,以及显示一些状态等。
HX711模块:它被用作称重传感器放大器。四个应变式称重传感器被连接到该模块,并通过串行通信与FireBeetle ESP8266控制器进行通信。
50kg称重传感器(x4):它们被用于测量用户的体重。4个称重传感器可测量的最大重量为200kg。


3D建模
智能体重秤采用Fusion 360 CAD软件设计。模型由3个不同的3D打印零件组成:盖板、机箱和支脚。
机箱为电子元件提供了保护外壳,防止它们受到物理接触影响。电子元件被安装在盖板中(使用螺栓),盖板上配有一个前护罩,其中安装了显示器。
称重传感器被安装在支脚中,这使得传感器能够与基座连接。



用ESP8266 开发板,制作WiFi物联网智能体重秤图8

用ESP8266 开发板,制作WiFi物联网智能体重秤图7


3D打印

下载所有STL文件我在PLA中打印了全部结构件,使用了两种不同颜色。整个打印工作花费了我大约5个半小时,使用0.2mm分辨率和10%填料率。无需支架。
这是一个实验模型。请注意,该模型是专为FireBeetle ESP8266 设计的。

STL文件下载:下载附件DIY_Wi-Fi_Smart_Scale.zip

用ESP8266 开发板,制作WiFi物联网智能体重秤图9

用ESP8266 开发板,制作WiFi物联网智能体重秤图3

用ESP8266 开发板,制作WiFi物联网智能体重秤图2

用ESP8266 开发板,制作WiFi物联网智能体重秤图4

木工


用ESP8266 开发板,制作WiFi物联网智能体重秤图10


我们体重秤的基座由两块15mm 30 x 30 cm胶合板制成。
我用一把螺丝刀钻出了一些开孔,用于穿过称重传感器的电线,以及连接3D打印零件。


电子元器件连接

1、将FireBeetle ESP8266 和LED矩阵进行焊接

我将一个插头-插座引脚板焊接到FireBeetle ESP8266模块上




通过这种方式,我可以通过连接插座连接罩在该模块上方的LED矩阵,并通过插头引脚连接HX-711模块(用于传感器)





我还必须在LED矩阵上焊接了一个插头引脚板,以便它可以连接到FireBeetle ESP8266模块。



2、HX711和称重传感器进行焊接

大多数HX711板上没有焊接引脚,我焊接了一个插头引脚板,用于随后连接ESP8266开发板和称重传感器。




焊接称重传感器信号端子称重传感器通常配有三根导线(黑色,白色和红色)。红色导线是信号线,我将其连接到HX711模块。为此,我使用两根插座-插座跳线。我切开跳线一端,并将其焊接到称重传感器红色导线上。随后使用一段热缩管包裹焊接接头,以实现更好的隔离。我还必须焊接称重传感器的白色和黑色导线,但是只有在传感器安装并固定在结构件上之后才能完成。



用ESP8266 开发板,制作WiFi物联网智能体重秤图12

组装体重秤-Pt1

首先我必须将称重传感器装入3D打印的支脚内,它们被锁定在这个支脚架内,然后通过一些螺钉固定在结构件上。





我使用了4个M2x1.6mm螺钉来将显示器安装到3D打印的盖板上,另外两个螺栓用于连接HX-711模块,ESP8266通过插座引脚板与显示器模块连接,一跟四芯导线将HX-711连接到ESP8266模块,更多细节请参见后续步骤。




用ESP8266 开发板,制作WiFi物联网智能体重秤图15


盖板组件安装在3D打印机箱内,机箱上还有另外两个矩形孔:一个用于HX-711模块与称重传感器之间的电缆,另一个用于给电路供电和上载代码的USB电缆。




用ESP8266 开发板,制作WiFi物联网智能体重秤图13


机箱只有在传感器连接完成后(如下个步骤所示)才能够封闭。


用ESP8266 开发板,制作WiFi物联网智能体重秤图14



组装体重秤 - Pt2


一旦3D打印零件和木板准备就绪,就是时候组装结构件了,按照以下步骤进行:


1.安装称重传感器到第一块木板上。我使用螺钉固定各个称重传感器。


2.每个传感器正上方的木板上已经提前开孔。电缆穿过这些开孔连接到木板的另一侧。

用ESP8266 开发板,制作WiFi物联网智能体重秤图20

3.按照下一个步骤9中所示的接线图焊接电线。

  • Upper left white wire <=> Upper right white wire
  • Lower left white wire <=> Lower right white wire
  • Upper left black wire <=> Lower left black wire
  • Upper right black wire <=> Lower right black wire

使用一些热缩管来隔离电线。

用ESP8266 开发板,制作WiFi物联网智能体重秤图17


用ESP8266 开发板,制作WiFi物联网智能体重秤图18

4.连接3D打印机箱。将红色导线穿过机箱上的一个开孔,然后连接到HX711模块。

用ESP8266 开发板,制作WiFi物联网智能体重秤图19

5.在第一块木板上方安装第二块木质面板,使用4个螺钉紧固。

用ESP8266 开发板,制作WiFi物联网智能体重秤图16


最终装饰

我用油漆刷涂了两块模板,并在机箱上增添了一些细节,以获得更好的装饰效果。你可以选择两种不同颜色,甚至在表面上增加其他材料。

用ESP8266 开发板,制作WiFi物联网智能体重秤图23


用ESP8266 开发板,制作WiFi物联网智能体重秤图21



连接电路






每个装置都按照接线原理图连接。


HX711—输入:
  • Upper left load cell signal (red wire) => HX711 E- pin
  • Lower left load cell signal (red wire) => HX711 A+ pin
  • Upper right load cell signal (red wire) => HX711 A- pin
  • Lower right load cell signal (red wire) => HX711 E+ pin


HX711- 输出 (使用双母头跳线):
  • HX711 Vcc pin => ESP8266 3.3V pin
  • HX711 GND pin => ESP8266 GND pin
  • HX711 SCK pin => ESP8266 GPIO 12 (pin D9)
  • HX711 DT pin => ESP8266 GPIO 0 (pin D8)


显示模块:
  • 连接到FireBeetle(萤火虫)ESP8266顶部。


当完成所有接线后,封闭机箱,将一根USB电缆插入ESP8266并准备好上载代码。



在Arduino IDE上设置FireBeetle ESP8266

对于本项目,我使用Arduino IDE来编程我的ESP8266开发板。如果你以前曾经使用过Arduino,那就要简单许多,你无需学习新的编程语言,例如Python或者Lua。





如果你从未用过Arduino,那么首先你需要在Arduino软件中添加ESP8266开发板支持。

1.下载并安装最新版本的Arduino IDE
你可以在Arduino网站上找到适用于Windows、Linux或者MAC OSX的最新版本。
免费下载后安装在你的计算机上并启动软件。

2.增加ESP8266开发板
Arduino IDE现已支持多种不同主板:Arduino Nano、Mine、Uno、Mega、Yún等等。不幸的是ESP8266并不属于这些默认支持的开发板。因此为了上载代码到ESP8266主板,你必须首先在Arduino软件中增加ESP8266的属性。

  • 导航到文件 > 首选项(File > Preferences)(在Windows OS上为Ctrl +);
  • 将下列URL添加到额外主板管理器文本框(位于首选项窗口底部):
  • 如果文本框并不是空的,则意味着之前已将在Arduino IDE上添加了其他主板。在先前存在的URL和上述URL的末尾增加一个逗号。
  • 点击“OK”按钮并关闭首选项窗口。
  • 导航到工具 > 主板 > 主板管理器(Tools > Board > Boards Manager),以添加你的Firebeetle ESP8266主板。
  • 在搜索文本框中输入“Firebeetle-ESP8266”,选择“FireBeetle-ESP8266 by DFRobot”并安装。


现在Arduino IDE软件已经可以用于Firebeetle ESP8266开发板。

3、添加资源库 以下资源库将被用于我们的Arduino代码。下载下列资源库:
在Arduino IDE软件中导航到略图-> 包括资源库 -> 管理资源库(Sketch -> Include Library -> Manage Libraries...),然后添加上述资源库。


Adafruit.IO配置

有许多数据记录服务可以用于微控制器与网络间的通信。通过这些服务,你可以上载/下载数据到云,并做到很多有趣的事情。请观看我的其他教程,例如关于如何使用Arduino + ESP8266从迷你气象站发送到Thinkgspeak。

用ESP8266 开发板,制作WiFi物联网智能体重秤图24



Adafruit.IO就是这些免费服务之一。它非常易于使用,并致力于将物联网带给所有人!

创建Adafruit IO Web反馈

  • https://io.adafruit.com/登录
  • 在反馈 > 创建一个新反馈(Feeds >Create a new Feed)下添加一个名为“我的体重”的新反馈。它将创建一个数据库,我们将使用该数据库存储送从体重秤接收的命令。


复制你的Adafruit.IO密钥,该密钥稍后将用于允许你的设备访问数据库。导航到设置 > 显示AIO密钥(Settings > View AIO key)并复制激活密钥代码。后面你的Arduino(NodeMCU)代码将需要使用该密钥代码。

在接下来的步骤里,我将向你展示如何配置 IFTTT,这是我在本项目中使用的另一个平台。每当NodeMCU测量你的体重时,它都会将体重值保存在Adafruit.IO数据库中。IFTTT平台随后会将体重值发送到健康监测平台(Fitbit、Strava、iOS Health或者Misfit)。



IFTTT配置

用ESP8266 开发板,制作WiFi物联网智能体重秤图25


IFTTT是一个免费平台,可帮助你连接app应用程序与装置。例如,你可以使用该平台连接你的智能手机与其他装置,或者在你喜欢的网络服务(如Google、Facebook、Twitter、Instagram等)与其他物理设备之间共享数据。最棒的一点是它真的非常易于使用!IFTTT采用“if this then that如果那么”逻辑,其中“this”代表触发“that”指定动作的服务。通过这种方式,你可以创建连接网络服务与设备的小程序。
在本项目中,我使用IFTTT将测量的体重值从Adafruit.io数据库推送到Fitbit。

首先,你必须在网站登录:https://ifttt.com/https://ifttt.com/
然后在你的手机上安装IFTTT应用程序。你可以在Google Play Store中找到该应用:
你也可以在Apple store(对于iPhone用户)中找到该应用:
在网站上,进入新程序(点击你用户名旁边的箭头按钮进入菜单)。在接下来的步骤里,我将向你展示我是如何创建我的小程序的。


IFTTT Applet - IOS Health


用ESP8266 开发板,制作WiFi物联网智能体重秤图26


用ESP8266 开发板,制作WiFi物联网智能体重秤图27


在网站上创建程序:

  • 点击+This;在搜索服务文本框中输入“adafruit”,选择Adafruit.IO > 任意新数据。正如IFTTT网站上所述,这将创建一个触发器,在你的反馈接收到新数据时触发。选择“我的体重”反馈;
  • 现在选择+That;
  • 输入“ios health”并选择iOS Health > 记录你的体重。这将保存一个新体重测量值到iOS Health。点击添加一个要素并选择数值。
  • 完成小程序并打开。

测试:
  • 在Adafruit.io上选择你的反馈,动作 > 添加数据;
  • 输入你的当前体重(或者其他任意值)。该数值将存储在Adafruit.io数据库中。IFTTT将接收该值并将其上载到Fitbit数据库;
  • 登录你的Fitbit账号,并检查你的当前体重是否已经更新。


IFTTT Applet - Fitbit

用ESP8266 开发板,制作WiFi物联网智能体重秤图28


在网站上创建程序:
  • 点击+This;在搜索服务文本框中输入“adafruit”,选择Adafruit.IO > 任意新数据。正如IFTTT网站上所述,这将创建一个触发器,在你的反馈接收到新数据时触发。选择“我的体重”反馈;
  • 现在选择+That;
  • 输入“fitbit”并选择Fitbit > 记录你的体重。这将保存一个新体重测量值到Fitbit。点击添加一个要素并选择数值。
  • 完成小程序并启动。


测试
  • 在Adafruit.io上选择你的反馈,动作 > 添加数据;
  • 输入你的当前体重(或者其他任意值)。该数值将存储在Adafruit.io数据库中。IFTTT将接收该值并将其上载到Fitbit数据库;
  • 登录你的Fitbit账号,并检查你的当前体重是否已经更新。



ESP8266代码



这时候,小程序已经基本完成了!
下载Arduino带吧,并在Arduino IDE软件中打开。一些参数将必须更新(WIFI_SSID、WIFI_PASS、IO_USERNAME、IO_KEY以及 calibration_factor)。更新这些参数,然后上载代码到ESP8266。代码将立即开始运行。
为了校准体重秤,在体重秤上放置一个砝码,然后调整校准系数直到显示正确的重量值。你可以在另一台可信的体重秤上测量自己的体重,然后在智能秤上再次测量体重并相应调整校准系数。
智能秤将尝试连接WiFi网络并开始进行测量。如果测量的体重值超过阈值(THRESHOLD),则它将读取给定次数(NUM_MEASUREMENTS)的重量值并计算平均重量。如果两次连续测量的重量变化超过阈值(THRESHOLD),则过程将重新开始。
确定平均值后,它将显示在LED矩阵上,并被传送给Ardafruit.io。体重秤将等待用户离开,然后重启。


开始使用


用ESP8266 开发板,制作WiFi物联网智能体重秤图22


用ESP8266 开发板,制作WiFi物联网智能体重秤图29



智能秤将尝试连接WiFi网络并开始进行测量。如果测量的体重值超过阈值(THRESHOLD),则它将读取给定次数(NUM_MEASUREMENTS)的重量值并计算平均重量。如果两次连续测量的重量变化超过阈值(THRESHOLD),则过程将重新开始。确定平均值后,它将显示在LED矩阵上,并被传送给Ardafruit.io。体重秤将等待用户离开,然后重启。


作者:IgorF2


代码: 用ESP8266 开发板,制作WiFi物联网智能体重秤图29





有有有  学徒

发表于 2018-8-22 00:00:54

您好,方便看看代码吗?我也准备做一个类似的,但是碰到了些问题 ,用arduino HX711库串口收到一堆看不懂的东西 ets Jan  8 2013,rst cause:2, boot mode:(3,6)

load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v614f7c32
~ld
ready
回复

使用道具 举报

luna  初级技神
 楼主|

发表于 2019-6-20 17:07:37

Axinice 发表于 2019-6-20 16:22
很棒的教程哦,但是最后的代码我买了还是没有权限下载,诚心请问可以私发给我吗 ...

我试了一下都可以的,如果实在不行,你可以点击英文原版找一下文件:https://www.instructables.com/id ... rduino-IDE-Adafrui/
回复

使用道具 举报

DFSJ7U1sO1S  学徒

发表于 2019-6-22 13:48:05

诚心询问 东西很棒 为什么代码编译有问题 In file included from E:\Documents\Arduino\libraries\Adafruit_IO_Arduino-master\src/wifi/AdafruitIO_ESP8266.h:18:0,
回复

使用道具 举报

dsweiliang  初级技神

发表于 2018-6-14 15:50:11

虽然自己折腾很有趣,但是看到脚边积尘的小米体重计还是算了
回复

使用道具 举报

hnyzcj  版主

发表于 2018-6-14 17:21:43

看到脚趾头了,哈哈哈哈
回复

使用道具 举报

铁熊  初级技神

发表于 2018-6-14 18:35:48

哇,求里面电子元器件的三维模型!
回复

使用道具 举报

luna  初级技神
 楼主|

发表于 2018-6-28 16:21:29

hnyzcj 发表于 2018-6-14 17:21
看到脚趾头了,哈哈哈哈

哈哈哈,你就是眼睛尖
回复

使用道具 举报

luna  初级技神
 楼主|

发表于 2018-6-28 16:21:57

铁熊 发表于 2018-6-14 18:35
哇,求里面电子元器件的三维模型!

容我找一下,明天发上来啊~
回复

使用道具 举报

gada888  版主

发表于 2018-8-23 16:58:06

不错的内容,有点长,慢慢看
回复

使用道具 举报

阿里哥  学徒

发表于 2019-4-4 12:04:06

可以分享代码吗?
回复

使用道具 举报

luna  初级技神
 楼主|

发表于 2019-4-4 14:04:23

阿里哥 发表于 2019-4-4 12:04
可以分享代码吗?

我补充在文章最后面了
回复

使用道具 举报

阿里哥  学徒

发表于 2019-4-5 17:04:13

luna 发表于 2019-4-4 14:04
我补充在文章最后面了

感谢,感谢大神
回复

使用道具 举报

阿里哥  学徒

发表于 2019-4-19 12:10:23

请问一下,您的传感器上的红色圆垫片是用什么做的?

回复

使用道具 举报

Axinice  学徒

发表于 2019-6-20 16:22:34

很棒的教程哦,但是最后的代码我买了还是没有权限下载,诚心请问可以私发给我吗
回复

使用道具 举报

sinfree  学徒

发表于 2019-8-12 20:37:43

很需要代码 刚注册下载不了。
回复

使用道具 举报

sinfree  学徒

发表于 2019-8-12 20:38:15

感觉做的非常棒,我也正在开发类似的项目
回复

使用道具 举报

54  见习技师

发表于 2020-3-13 16:47:23

老哥,问你个问题,那个称重传感器是不是四边一定得用支脚架起来?为什么我用热熔胶枪直接粘上去数值不对
回复

使用道具 举报

DFrkITZKs8L  学徒

发表于 2020-3-27 21:39:37

看看编程流程
回复

使用道具 举报

张锦旭  学徒

发表于 2020-11-19 18:51:44

成本大概多少
回复

使用道具 举报

 初级技匠

发表于 2022-4-15 08:48:03

封面上那个人的脚趾是扭了吗?
回复

使用道具 举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail