5美元一瓶药丸

18107年

184

45

介绍:5美元物联网药瓶

关于:我喜欢学习,喜欢制作,喜欢分享。

你忘记按时服药了吗?这不再是问题了!阅读本指南后,您将能够制作自己的智能药瓶,提醒您及时服药!!成本只有5美元!!!

特征:

  1. 低成本(仅5美元)
  2. 短信和移动通知
  3. 使用单个硬币电池运行5个月以上。

  4. 可配置的Android应用程序显示电池电量,总丸剂,瓶子上的剩余药丸。

步骤1:准备工具和物料

1.ESP8266-12E wifi模块(gearbest.com

2. 3x1K电阻

3.3.6V锂离子币形电池(CR2450)(sparkfun.com

4.硬币电池电池支架(sparkfun.com

5.微动开关-SPDT(gearbest.com

6.线路板和连接线

所需工具

1.焊台(gearbest.com

2.热胶枪(gearbest.com

3.电线刀(gearbest.com

4.FTDI USB to TTL串行适配器模块(gearbest.com

第2步:电路图

该项目的电路图非常简单。首先,您需要完成ESP8266-12E的一些基本连接,例如ESP模块的GPIO15必须通过1K电阻连接到地面。CH_PD引脚应通过1K电阻连接到VCC。RST引脚也应连接到VCC引脚。如果您之前使用ESP模块,肯定您知道这些是ESP模块的基本连接。

该电路将由一个硬币电池供电。我连接+ Ve销硬币的细胞的VCC销ESP模块通过一个微动开关将自动开/关的时候打开和关闭瓶盖。细胞的负终端连接到地面直接销ESP模块的。

工作原理:

完成的电路将放置在瓶盖中。微动开关与瓶盖的连接方式应确保,当将瓶盖连接至瓶子时,微动开关打开;当从瓶子上取下瓶盖时,微动开关关闭。当开关接通时,ESP模块将通电。ESP模块将连接到wifi并向云发送一些数据。然后它将进入睡眠模式无限期。当有人打开瓶盖服药时,esp模块将与电源断开。当他服药后再次关闭瓶盖时,开关将再次关闭,ESP模块将再次打开。它将向云发送一些数据,然后再次进入睡眠模式。因此,每当有人打开和关闭药瓶时,ESP模块就会重新启动,将数据发送到云端并进入永久睡眠状态。

功耗和电池寿命:

硬币电池CR2450是110mAh容量电池。

110mah = 110 x 60 x 60 = 396000mas。

对于使用WiFi连接的正常操作,ESP模块平均占用70mA。

假设,需要10S打开并将数据发送到云。(在该模块转到深度睡眠模式之后)

每个周期的总电流消耗= 70mA x 10s = 700mas。

如果患者在一天中服用药物4次,则消费/天= 700mas x 4 = 2800mas。

因此,电池寿命=396000mAs/2800mAs=141天.大约,5个月

如果患者在一天(更常见的)3次服用药物,则消费/日= 700mas x 3 = 2100mas。

然后,电池寿命= 396000mas / 2100mas =189天.大约,6.3个月

第3步:在Perfboard上焊接ESP8266-12E

取一块perf板,根据瓶盖的大小进行切割。对于我选择的瓶子,瓶盖的直径为4厘米。因此,我将perf板切割成3.5厘米的直径,这样它就可以很容易地调整到瓶盖中。切割PeF板后将ESP模块放置在板的中部。我用双面胶带将ESP模块固定到pcb板上。然后,将esp模块的焊盘焊接到pcb板的迹线上。使用细导线将焊盘连接到迹线。我使用了一根旧的HDD IDE电缆的跨接导线,发现这对工作非常方便。为了更好地理解,请按照步骤附带的图片进行操作。

ESP模块焊接后,在GPIO15和GND之间焊接1个1K电阻,在CH_PD和VCC引脚之间焊接1个1K电阻。你可以直接将RST引脚与VCC连接,也可以在它们之间使用1K电阻。

第4步:用于编程的焊头

对于编程ESP模块4,它是必需的(TXD,RXD,VCC,GND)连接到程序员。我建议将PIN标头焊接到PCB板中,以便您可以随时更新程序。为了将ESP模块进入编程模式,GPIO0必须连接到地面。对于正常操作,PIN应保持未连接。所以,焊料5销钉进入PCB板。头部的引脚应与ESP模块的TXD,RXD,VCC,GND和GPIO0连接,如附加图像所示。

第5步:添加电池夹

因为我们要用币形电池给电路通电,所以我们需要将币形电池支架连接到电路板上。蓄电池支架的-Ve针脚应连接至ESP模块的接地针脚。目前,+Ve引脚应保持未连接状态。我们将在后面的步骤中将微动开关连接到引脚。

步骤6:添加盖子打开检测按钮

我在ESP模块的VCC引脚和电池支架的+ ve引脚之间连接了微型开关。当开关关闭时,ESP模块否则否则会导致功率。我以交换机换档,即当盖子连接到瓶子上时,开关关闭,当瓶子打开时,开关也打开,ESP模块保持与电源断开连接。因此,交换机正用作为检测器来感测瓶子打开或关闭。以另一种方式,我们可以说,通过这种开关,我们正在跟踪患者及时接受他的药物。

顺便说一下,为了在适当的地方紧密固定开关,我用PCB板焊接开关后使用热胶。

步骤7:设置云

在这里,云是药瓶和Android应用之间的沟通媒介。用于打开和关闭药瓶ESP模块向云发送了触发消息。它还发出电池电量。从触发消息中,Ubidots计算总丸的入口并将其发送到Android应用程序。Android应用程序计算总药丸留在瓶子中,从摄入量并重新填充数据并显示信息。如果Ubidots没有收到预定时间的任何触发(丸剂之间的间隙),它会向患者发送一条消息,以提醒他服用药物。

让我们将Ubidots云设置为我们的要求。

1.登录你的Ubidots帐户。

2.创建名为丸瓶. (img。1, 2)

3.创建两个默认变量一个用于电池电量,另一个用于药丸摄入量。(IMG。3,4,5)

4.创建一个滚动变量这使得来自所有丸剂的总和,以确定总丸的入口。

5.创造发送短信的活动到移动电话定义电话号码,消息和条件。(IMG。14,15,16,17,18)

6.注意设备编号令牌将在ESP固件和Android程序中使用(img。6, 7, 8)

步骤8:上传程序和测试

用于编程ESP模块,我使用了Arduino环境。如果您在编程ESP模块中没有经验,您可能会遵循这个链接。您也可能遵循指令使用Arduino软件/IDE编程ESP8266-12E. 设置环境后,上传以下程序。别忘了用自己的密码替换wifi ssid和密码。还可以使用您的令牌和变量ID更改令牌和变量。

#include  #include  const char* ssid = " tafur&mafi ";const char* password = "University";//Ubidots账户数据#define URL " things.ubidotts.com " #define TOKEN "Lf5QUxD8ZvDUBN9faXo1fHlsjvRV6L" //用您的Ubidots令牌生成在您的配置文件标签#define VARID1 "59392ba77625421b589ad853" //电压水平#define VARID2 "59392bb47625421b5102f767" //pill intake int pill_intake = 1;ADC_MODE (ADC_VCC);//电压电平测量void setup(){//把你的设置代码放在这里,运行一次:Serial.begin(115200);以();系列。打印(“连接”);以(ssid);WiFi。begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); delay(500); send_data_to_ubidot(); ESP.deepSleep(0); //sleep forever } void loop() { } void send_data_to_ubidot(){ WiFiClient client; float voltage = ESP.getVcc()/1024.0; int level = 100/3.6 * voltage; // put your main code here, to run repeatedly: //String containing all the sensors data according to collection endpoint API of Ubidots ////Build the JSON packet according to the format needed by Ubidots //For more info: http://ubidots.com/docs/api/v1_6/collections/post_values.html String payload = "[{\"variable\":\"" VARID1 "\",\"value\":"+ String(level) + "},{\"variable\":\"" VARID2 "\",\"value\":" + String(pill_intake) + "}]"; String le = String(payload.length()); // How long is the payload //For sending data to Ubidots: http://ubidots.com/docs/api/index.html // if you get a connection, report back via serial: Serial.print("Connecting to "); Serial.println(URL); if (client.connect(URL, 80)) { // Build HTTP POST request Serial.println("connected"); client.print(F("POST /api/v1.6/collections/values/?token=")); client.print(TOKEN); client.println(F(" HTTP/1.1")); client.println(F("Content-Type: application/json")); client.print(F("Content-Length: ")); client.println(le); client.print(F("Host: ")); client.println(URL); client.println(); client.println(payload); client.println(); client.println((char)26); //This terminates the JSON SEND with a carriage return } else { // if you didn't get a connection to the server: Serial.println("connection failed"); } delay(100); // if there are incoming bytes available // from the server, read them and print them: if (client.available()) { char c = client.read(); Serial.print(c); } // if the server's disconnected, stop the client: if (!client.available() && !client.connected()) { Serial.println(); Serial.println("disconnecting."); client.stop(); } }

步骤9:将电路板放入瓶盖中

您在硬件​​设计的最后阶段。我希望你已经完成了电路设计和焊接。可能您还在ESP模块中上传了草图并进行了测试。如果到目前为止,那么就可以了,那么它是将电路板连接到瓶盖的高时。将电路板放入瓶中,如图所示。然后在电路顶部添加一些热胶。然后关闭瓶盖并等几分钟。您的电路板现在将在正确的位置连接到瓶盖上。打开瓶盖并检查一下。

第10步:开发Android应用程序

在这个阶段,我们将为我们的设备开发一个Android应用程序。如果您在Android应用程序开发方面没有任何实际经验,请不要惊慌。我们将使用App Inventor开发应用程序。使用appinventor制作Android应用非常简单,您不需要任何编程经验。

开始登录ai2.appinventor.mit.edu.用你的gmail帐号。从下面下载源代码(PillBattle.aia),并将其导入您的app inventor帐户。转到块编辑器并替换设备编号令牌用你自己的。

想要了解App Inventor的一些知识,你可以看看这个关联

2017年物联网大赛

二等奖
2017年物联网大赛

2017年发明的挑战

参加了这一点
2017年发明的挑战

第一个分享

    建议

    • 任何事都有可能

      任何事都有可能
    • 阻止代码竞赛

      阻止代码竞赛
    • 让它成为真正的学生设计挑战

      让它成为真正的学生设计挑战

    45的讨论

    0
    sitinurshamimi146

    问题:2个月前

    嗨,你能帮我打开mit文件吗?

    0
    太太

    两个月前的答复

    您无法直接打开PC中的文件。转到App Inventor并选择导入.Aia项目,然后从PC中浏览文件。

    0
    第57页

    1年前

    嗨Taifur,

    很好的项目,对像我这样的人有用。有没有人为这个设备建造了iPhone应用程序?它可以用多个药瓶吗?如果没有,我想上工作。

    谢谢你,理查德

    0
    里特什姆

    1年前

    我在MIT App Inventor中添加了设备ID和令牌,并创建了Ubidots帐户。但我收到了一个运行时错误“选择列表项:尝试获取长度0的列表中的项目3 :()”我应该如何解决它。

    0
    Shivakumar ng.

    2年前

    我需要这个项目的细节,因为我在谷歌中没有得到任何关于这个项目的信息。
    如果你知道细节或链接,请给我,我需要概要,你能给我一个详细的。我希望你能回复我……
    我的电子邮件:snganjigatti@gmail.com.

    0
    萨鲁代姆

    3年前

    它显示未连接到应用程序中的服务器可以帮助我

    0
    太太

    3年前的回复

    谢谢你,如果你需要帮助,请告诉我。

    0
    施里维尼16

    3年前的回复

    警告:Espcomm_Sync失败

    错误:Espcomm_open失败

    错误:espcomm_upload_mem失败

    错误:espcomm_upload_mem失败

    当我试图通过cp2102将代码上传到esp8266时,我遇到了这个错误。

    你能帮我吗?

    0
    Jesper马丁斯

    3年前

    你好

    我有一切奔跑,但等待锂电池。现在我再次安装了Android应用程序,然后我设置了配置。

    然后我回到前面的屏幕上,它首先显示零。

    我按更新-然后前3个都是巨大的数字,第一个在屏幕外(结束于020000),但下一个是150101999,第三个是150101999。小时和电池似乎都能用。

    我做错了什么??

    PS:为什么它不自动更新时,我打开应用程序?

    希望你有时间帮忙

    0
    Koreanaaaa.

    3年前的回复

    嗨jasper ...你告诉我如何连接蓝线?我只是无法理解..你可以收件箱我,我真的需要你的帮助。这你

    0
    Jesper马丁斯

    3年前的回复

    你应该看看电路图。

    我认为蓝色的是从ESP plus连接到micro sw的。

    0
    Koreanaaaa.

    3年前的回复

    我真的需要你的帮助..你告诉我蓝线连接在什么之间?我无法理解它。希望你回复我的消息

    0
    Koreanaaaa.

    3年前

    嗨,你能告诉我所有硬件的名称吗??我知道这里不完整,希望你能回复我的评论。谢谢

    0
    茨波斯纳

    3年前

    我真的很喜欢看到便宜的物联网。它经常非常昂贵。

    0
    mjrovai.

    3年前

    聪明的项目!谢谢。当盖子打开时,我只会遇到项目。为什么呢?与它关闭相比,您将在盖子上保持较小的时间。

    0
    Jesper马丁斯

    3年前

    你好,再一次

    我发现了这个错误

    URL things.ubidots.com/api/v1.6/datasources/594163297655421a04898e64/variables/?token=YEbtl5DDIHZgDCLDcRHQs51eZ7Or5B

    594163297655421a04898e64这是设备ID,可通过按下左窗口中显示的设备(药瓶)找到

    Yebtl5ddihzgdcldcrhqs51ez7or5b这是令牌

    新的错误
    选择列表项:尝试获取长度列表的项目3:........

    我忘了添加滚动的总和,现在一切都有效

    但是当我测量功耗时,它落到0.07mA时,它绘制了8mA后,有人知道为什么,我没有将RST连接到GPIO16,如果我应该引导和绘制70-140mA。???还是

    0
    太太

    3年前的回复

    只需替换代码:ESP.DeepSleep(5 * 60 * 1000000);// 5分钟睡觉

    带:Esp.DeepSleep(0);// ESP将永远睡觉。

    0
    Jesper马丁斯

    3年前的回复

    你好

    谢谢,但这将需要施工的变化,因为它不会通过复位来唤醒电力循环。

    所以也许我可以提供即时供应,并使用SW将ESP重置为100 NF电容等。这是我的下一次尝试:-)