找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6811|回复: 3
打印 上一主题 下一主题
收起左侧

【开源项目】基于stm32+机智云平台的智能药盒

[复制链接]
跳转到指定楼层
楼主
ID:137406 发表于 2016-8-23 16:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[tr][/tr]
基于stm32+机智云平台的智能药盒






file:///C:\Users\GUOQIN~1.QIN\AppData\Local\Temp\ksohtml\wps28E1.tmp.png(宝盒镇楼o(∩_∩)o )
============================华丽的分割线=============================
创意来源:
“哎呀,忘了”!随着生活节奏的加快,年龄的增长,人们的总容易忘记一些事情,比如忘记吃药。尤其是家中的老人,由于身体问题,可能需要长期服药治疗,但年岁大了总容易忘这忘那的。但在科技快速发展的今天,这些都不是问题,我们设计并开发了一款名为“健康卫士”的智能药盒,可以联网监测用户的服药情况,提示用户服药,并且根据用户设定自动提取所需药物。
哎呀!!!!!!!忘记了我是来参赛的,说下这次大赛要求达成情况.

比赛要求达成情况!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

各个分值项详解!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


一,需求提炼数据点以及产品定义
二  设别端实现配置入网
文字描述。。。。。。。。
三 实现demoapp和设备的控制其实我们自己开发了个app(后面介绍)
视频演示。。。。。。。。
四  实时时钟
因为这个功能我们用了pcf8563芯片 这样就实现了实时时钟(而且断网后不影响
五  报警功能
手机远程提醒(后面介绍)   语音提醒(后面介绍)
六 可产品化程度
先说一下这次的成本,因为我们这次是做的模型 ,什么都在探索,步进电机就换了两次(每次都是力不够(力量和空间)),总体来说这次花费还是不很多500 元左右,如果投入市场成本也就是200元左右另外我们设计的非常人性化
一次设定,很长时间不用管(它是自动筛选药品哦),即使是掉电也不用怕哦,有记忆功能
断网更不要怕 自动重新连接   另外本地运行(语音还是照样提醒哦)
七硬件系统

硬件系统主要是pcb 走线布局  +stm32(C语言 功能实现)+wifi(esp8266)+机智云平台

在下先放个功能图给大家尝尝鲜!!!!!!!!!!!!!!!!

八软件系统
软件部分主要是用机智云的sdk,集成了机智云的sdk,开发起来还是很好入门的,向我这种小白在学了两个星期后就基本入门了,加上自己的做做UI,就可以了。代码很简单 贴出来了在后面(开源了)(好戏在后面。。。。。。。。。。。。。。



九 发挥项
1 语音播
通过wt588d, 进行语音提醒 ,感情切(也可以自己录音哦
2 断电后数据不丢
通过数据保存(一次设定,全程无忧)。(再也不用担心重复设定了)
3 自动化分拣药品种类
每天还在想那个药品吃多少吗(你就out 啦 ,全新智能药盒, 再也不用烦恼了
4 断网后自动连接
断网后重新设置  不用  (网络连接失败后(有网络后)会重新连接的
==================================================================
                                我是分割线=============================================================================
---------------------------上面主要讲了写大赛要求相关的东西。。。说了这么多我们还没有知道过程呢。。。好吧 马上来--------------------------------------------------------------------
我们这个智能药盒是我们团队两个月多月的时间从无到有的一个搞机械 组装,一个搞app ,一个搞电路写程序,接下来就有我详细介绍我们的这个作品
总体结构:
电气部分:通过重新设计板子设计基于机智云平台的设备,设计集成了若干模块,主要包括eeprom时钟模块运动驱动模块语                    音提醒模块传感器模块(温湿度、霍尔、光耦)网络模块。
药盒模型:重点解决自动提取药物部分的模型(转盘式双层筛板
         :使用机智云平台,独立搭建数据点
      APP:与机智云平台和MCU通讯,从而进行对智能药盒的管理控制远程        监控远程提醒远程温湿度查看

材料清单:
pcb板(定制)
步进电机;驱动
震动电机
Risym槽型光耦模块
温湿度模块
语音模块
汉高百得PL70
圆管
esp8266  模块
电池
轴承
亚克力(定制)
同步轮
同步带
pcf8563模块
下面我就以时间轴方式介绍一下电气部分7月一号:开贴报名
7月1-5号:寻找小伙伴
7月5-10号:  确定主题(开始建立数据点)7月11-20号:对机智云的协议分析(包括大段字节 ,数据的标志位的理解)
7月21-30号:对本地时钟和传输的数据进行写入
8月1-10号: 对机智云的硬件充分理解画出原理图和pcb板
8月11-17号:终于等到了pcb(对电路板的焊接 和调试 )
8月17-20号:对原理图和pcb 图进行修改 从而实现功能
注:(程序一直穿插其中)
下面以此介绍程序的实现,电路的实现,pcb注意的事再次之前先发下我的文件夹(每天都在记录 哦)
机智云程序
网络获取时间:
  • uint8_t getTime[9]={0xFF,0xFF,0x00,0x05,0x17,0x78,0x00,0x00,0x94};

[color=rgb(0, 0, 0) !important]复制代码

  • <blockquote>/**

[color=rgb(0, 0, 0) !important]复制代码

原理图:: pcb图  来个3d吧
大家会疑问,为什么要做成是这样的 答案是省钱,又做了个wifi 转接板   现实图这样的

裁剪之后是这样的(焊接的照片 传不上去  正在联系机智云。。。稍后奉上)







                                     健康卫士APP一、控制页面
  • <font size="1">//控制页面
  • protected void onCreate(Bundle savedInstanceState) {
  •                 super.onCreate(savedInstanceState);
  •                 setContentView(R.layout.gokit_control);
  •                 tabHost = (TabHost) findViewById(android.R.id.tabhost);
  •                 tabHost.setup();
  •                 tabHost.addTab(tabHost.newTabSpec("one_drug").setIndicator("第一种药").setContent(R.id.one_drug));
  •                 tabHost.addTab(tabHost.newTabSpec("two_drug").setIndicator("第二种药").setContent(R.id.two_drug));
  •                 tabHost.addTab(tabHost.newTabSpec("three_drug").setIndicator("第三种药").setContent(R.id.three_drug));
  •                 tabHost.addTab(tabHost.newTabSpec("four_drug").setIndicator("第四种药").setContent(R.id.four_drug));
  •                 initViews();   //初始化控件
  •                 initEvents();  //初始化**
  •                 deviceStatu = new HashMap<String, Object>();
  •                 controlDevice = (ControlDevice) getIntent().getSerializableExtra("device");
  •                 WApplication.mControlDevice=controlDevice;
  •                 xpgWifiDevice = BaseActivity.findDeviceByMac(controlDevice.getMac(), controlDevice.getDid());
  •                 if (xpgWifiDevice != null) {
  •                         xpgWifiDevice.setListener(deviceListener);
  •                 }
  •                 actionBar.setTitle(controlDevice.getName());
  •         }
  •         final protected static char[] hexArray = "0123456789ABCDEF".toCharArray();
  •         public static String bytesToHex(byte[] bytes) {
  •                 char[] hexChars = new char[bytes.length * 3];
  •                 for (int j = 0; j < bytes.length; j++) {
  •                         int v = bytes[j] & 0xFF;
  •                         hexChars[j * 3] = hexArray[v >>> 4];
  •                         hexChars[j * 3 + 1] = hexArray[v & 0x0F];
  •                         hexChars[j * 3 + 2] = ' ';
  •                 }
  •                 return new String(hexChars);
  •         }
  •         /**
  •          * 初始化控件.
  •          */
  •         private void initViews() {
  •                 mybutton = (Button) findViewById(R.id.mybutton);
  •                 editTextA = (EditText) findViewById(R.id.editTextA);
  •                 editTextB = (EditText) findViewById(R.id.editTextB);
  •                 editTextC = (EditText) findViewById(R.id.editTextC);
  •                 editTextD = (EditText) findViewById(R.id.editTextD);
  •                 editTextE = (EditText) findViewById(R.id.editTextE);
  •                 editTextF = (EditText) findViewById(R.id.editTextF);
  •                 editTextG = (EditText) findViewById(R.id.editTextG);
  •                 editTextH = (EditText) findViewById(R.id.editTextH);
  •                 vibrator = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);
  •                 swInfrared = (Switch) findViewById(R.id.sw_infrared1);
  •                 Map<String, String> map = FileActivity.ShowData3();
  •                 if(map != null)
  •                 {
  •                         editTextA.setText(map.get("Aname"));
  •                         editTextB.setText(map.get("Age"));
  •                         editTextC.setText(map.get("Bname"));
  •                         editTextD.setText(map.get("Bge"));
  •                         editTextE.setText(map.get("Cname"));
  •                         editTextF.setText(map.get("Cge"));
  •                         editTextG.setText(map.get("Dname"));
  •                         editTextH.setText(map.get("Dge"));
  •                 }
  •         }
  •         /**
  •          * 初始化**.
  •          */
  •         private void initEvents() {
  •                 /**打开预约时间页面*/
  •                 mybutton.setOnClickListener(new OnClickListener() {
  •                         @Override
  •                         public void onClick(View v) {
  •                                 // TODO Auto-generated method stub
  •                                 String unt1 = editTextB.getText().toString().trim();
  •                                 String unt2 = editTextD.getText().toString().trim();
  •                                 String unt3 = editTextF.getText().toString().trim();
  •                                 String unt4 = editTextH.getText().toString().trim();
  •                                 Intent intent = new Intent();
  •                                 //储存药品名字合个数
  •                                 if(TextUtils.isEmpty(editTextC.getText().toString()) && TextUtils.isEmpty(editTextE.getText().toString()) && TextUtils.isEmpty(editTextG.getText().toString()))
  •                                 {
  •                                         FileActivity.DataLog3(editTextA.getText().toString(),Integer.parseInt(editTextB.getText().toString()), "", 0, "",0,"",0);
  •                                 }
  •                                 else if(editTextE.getText().toString() == null && editTextG.getText().toString() == null)
  •                                 {
  •                                         FileActivity.DataLog3(editTextA.getText().toString(),Integer.parseInt(editTextB.getText().toString()),editTextC.getText().toString(),Integer.parseInt(editTextD.getText().toString()) , "",0,"",0);
  •                                 }
  •                                 else if(editTextG.getText().toString() == null)
  •                                 {
  •                                         FileActivity.DataLog3(editTextA.getText().toString(),Integer.parseInt(editTextB.getText().toString()),editTextC.getText().toString(),Integer.parseInt(editTextD.getText().toString()) , editTextE.getText().toString(),Integer.parseInt(editTextF.getText().toString()),"",0);
  •                                 }
  •                                 else
  •                                 {
  •                                         FileActivity.DataLog3(editTextA.getText().toString(),Integer.parseInt(editTextB.getText().toString()), editTextC.getText().toString(),Integer.parseInt(editTextD.getText().toString()), editTextE.getText().toString(),Integer.parseInt(editTextF.getText().toString()), editTextG.getText().toString(),Integer.parseInt(editTextH.getText().toString()));
  •                                 }
  •                                 if(TextUtils.isEmpty(unt1))
  •                                 {
  •                                         intent.putExtra("one1","0");
  •                                 }
  •                                 else
  •                                 {
  •                                         intent.putExtra("one1",unt1);
  •                                 }
  •                                 if(TextUtils.isEmpty(unt2))
  •                                 {
  •                                         intent.putExtra("one2","0");
  •                                 }
  •                                 else
  •                                 {
  •                                         intent.putExtra("one2",unt2);
  •                                 }
  •                                 if(TextUtils.isEmpty(unt3))
  •                                 {
  •                                         intent.putExtra("one3","0");
  •                                 }
  •                                 else
  •                                 {
  •                                         intent.putExtra("one3",unt3);
  •                                 }
  •                                 if(TextUtils.isEmpty(unt4))
  •                                 {
  •                                         intent.putExtra("one4","0");
  •                                 }
  •                                 else
  •                                 {
  •                                         intent.putExtra("one4",unt4);
  •                                 }
  •                                 intent.setClass(GokitControlActivity1.this, Time_Activity.class);
  •                                 startActivity(intent);
  •                         }
  •                 });
  •                 swInfrared.setOnCheckedChangeListener(new OnCheckedChangeListener() {
  •                         @Override
  •                         public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
  •                                 try {
  •                                         if(isChecked == true)
  •                                         {
  •                                                 vibrator.vibrate(new long[]{1000,3000,1000,3000},0);  //手机震动提示
  •                                                 new AlertDialog.Builder(GokitControlActivity1.this).setTitle("警告")//设置对话框标题
  •                                              .setMessage("为了您的健康!\n请按时吃药!")//设置显示的内容
  •                                             .setNegativeButton("确定",new DialogInterface.OnClickListener() {//添加返回按钮
  •                                                  @Override
  •                                                  public void onClick(DialogInterface dialog, int which) {//响应事件
  •                                                      // TODO Auto-generated method stub
  •                                                         SimpleDateFormat formatter = new SimpleDateFormat ("yyyy-MM-dd HH:mm");
  •                                         Date curDate = new Date(System.currentTimeMillis());//获取当前时间
  •                                         String str = formatter.format(curDate);
  •                                         if(editTextA.getText().toString() != null)
  •                                         {
  •                                                                  FileActivity.DataLog2(editTextA.getText().toString(),Integer.parseInt(editTextB.getText().toString()),str);
  •                                         }
  •                                         if(editTextC.getText().toString() != null)
  •                                         {
  •                                                 FileActivity.DataLog2(editTextC.getText().toString(),Integer.parseInt(editTextD.getText().toString()),str);
  •                                         }
  •                                         if(editTextE.getText().toString() != null)
  •                                         {
  •                                                 FileActivity.DataLog2(editTextE.getText().toString(),Integer.parseInt(editTextF.getText().toString()),str);
  •                                         }
  •                                         if(editTextG.getText().toString() != null)
  •                                         {
  •                                                 FileActivity.DataLog2(editTextG.getText().toString(),Integer.parseInt(editTextH.getText().toString()),str);
  •                                         }
  •                                                          vibrator.cancel();
  •                                                      Log.i("123"," 请保存数据!");
  •                                                  }
  •                                              }).show();//在按键响应事件中显示此对话框
  •                                         }
  •                                         else
  •                                         {
  •                                                  vibrator.cancel();
  •                                         }
  •                                         Log.v("123", ""+isChecked);
  •                                         sendJson(KEY_INFRARED, isChecked);
  •                                 } catch (JSONException e) {
  •                                         e.printStackTrace();
  •                                 }
  •                         }
  •                 });
  •         }</font>

[color=rgb(0, 0, 0) !important]复制代码

                                               


二、预约时间
  • <blockquote>class Button12 implements OnClickListener

[color=rgb(0, 0, 0) !important]复制代码







三、温湿度查看
  • /**
  • *温湿度查看
  • */
  • case R.id.action_device_status:
  •                         new Ale.Builder(GokitControlActivity1.this).setTitle("温湿度查看")//设置对话框标题
  •                      .setMessage("环境湿度   "+ s +"\n" + "环境温度  " + w)//设置显示的内容
  •                     .setNegativeButton("确定",new DialogInterface.OnClickListener() {//添加返回按钮
  •                          @Override
  •                          public void onClick(DialogInterface dialog, int which) {//响应事件
  •                              // TODO Auto-generated method stub
  •                              Log.i("alertdialog"," 请保存数据!");
  •                          }
  •                      }).show();//在按键响应事件中显示此对话框
  •                         break;

[color=rgb(0, 0, 0) !important]复制代码

                                               


四、储存数据与读取数据

  • /**

[color=rgb(0, 0, 0) !important]复制代码


五、服药日志记录

  • /*<span style="font-size: 14px; line-height: 1.5;">*服药日志</span>

[color=rgb(0, 0, 0) !important]复制代码









点评回复 编辑
[url=]使用道具[/url] [url=]举报[/url]



[tr][/tr]



174
主题
368
帖子
725
积分

积分725
沙发
发表于 2016-7-5 17:22:58 | 只看该作者


期待中!!!





管理回复 编辑
[url=]使用道具[/url]






8
主题
90
帖子
331
积分

积分331
板凳
  楼主| 发表于 昨天 14:14 | 只看该作者


【STM 32】之智能药盒
本帖最后由 郭庆帅 于 2016-8-22 18:43 编辑

                                 健康卫士APP一、控制页面
  • <font size="1">//控制页面
  • protected void onCreate(Bundle savedInstanceState) {
  •                 super.onCreate(savedInstanceState);
  •                 setContentView(R.layout.gokit_control);
  •                 tabHost = (TabHost) findViewById(android.R.id.tabhost);
  •                 tabHost.setup();
  •                 tabHost.addTab(tabHost.newTabSpec("one_drug").setIndicator("第一种药").setContent(R.id.one_drug));
  •                 tabHost.addTab(tabHost.newTabSpec("two_drug").setIndicator("第二种药").setContent(R.id.two_drug));
  •                 tabHost.addTab(tabHost.newTabSpec("three_drug").setIndicator("第三种药").setContent(R.id.three_drug));
  •                 tabHost.addTab(tabHost.newTabSpec("four_drug").setIndicator("第四种药").setContent(R.id.four_drug));
  •                 initViews();   //初始化控件
  •                 initEvents();  //初始化**
  •                 deviceStatu = new HashMap<String, Object>();
  •                 controlDevice = (ControlDevice) getIntent().getSerializableExtra("device");
  •                 WApplication.mControlDevice=controlDevice;
  •                 xpgWifiDevice = BaseActivity.findDeviceByMac(controlDevice.getMac(), controlDevice.getDid());
  •                 if (xpgWifiDevice != null) {
  •                         xpgWifiDevice.setListener(deviceListener);
  •                 }
  •                 actionBar.setTitle(controlDevice.getName());
  •         }
  •         final protected static char[] hexArray = "0123456789ABCDEF".toCharArray();
  •         public static String bytesToHex(byte[] bytes) {
  •                 char[] hexChars = new char[bytes.length * 3];
  •                 for (int j = 0; j < bytes.length; j++) {
  •                         int v = bytes[j] & 0xFF;
  •                         hexChars[j * 3] = hexArray[v >>> 4];
  •                         hexChars[j * 3 + 1] = hexArray[v & 0x0F];
  •                         hexChars[j * 3 + 2] = ' ';
  •                 }
  •                 return new String(hexChars);
  •         }
  •         /**
  •          * 初始化控件.
  •          */
  •         private void initViews() {
  •                 mybutton = (Button) findViewById(R.id.mybutton);
  •                 editTextA = (EditText) findViewById(R.id.editTextA);
  •                 editTextB = (EditText) findViewById(R.id.editTextB);
  •                 editTextC = (EditText) findViewById(R.id.editTextC);
  •                 editTextD = (EditText) findViewById(R.id.editTextD);
  •                 editTextE = (EditText) findViewById(R.id.editTextE);
  •                 editTextF = (EditText) findViewById(R.id.editTextF);
  •                 editTextG = (EditText) findViewById(R.id.editTextG);
  •                 editTextH = (EditText) findViewById(R.id.editTextH);
  •                 vibrator = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);
  •                 swInfrared = (Switch) findViewById(R.id.sw_infrared1);
  •                 Map<String, String> map = FileActivity.ShowData3();
  •                 if(map != null)
  •                 {
  •                         editTextA.setText(map.get("Aname"));
  •                         editTextB.setText(map.get("Age"));
  •                         editTextC.setText(map.get("Bname"));
  •                         editTextD.setText(map.get("Bge"));
  •                         editTextE.setText(map.get("Cname"));
  •                         editTextF.setText(map.get("Cge"));
  •                         editTextG.setText(map.get("Dname"));
  •                         editTextH.setText(map.get("Dge"));
  •                 }
  •         }
  •         /**
  •          * 初始化**.
  •          */
  •         private void initEvents() {
  •                 /**打开预约时间页面*/
  •                 mybutton.setOnClickListener(new OnClickListener() {
  •                         @Override
  •                         public void onClick(View v) {
  •                                 // TODO Auto-generated method stub
  •                                 String unt1 = editTextB.getText().toString().trim();
  •                                 String unt2 = editTextD.getText().toString().trim();
  •                                 String unt3 = editTextF.getText().toString().trim();
  •                                 String unt4 = editTextH.getText().toString().trim();
  •                                 Intent intent = new Intent();
  •                                 //储存药品名字合个数
  •                                 if(TextUtils.isEmpty(editTextC.getText().toString()) && TextUtils.isEmpty(editTextE.getText().toString()) && TextUtils.isEmpty(editTextG.getText().toString()))
  •                                 {
  •                                         FileActivity.DataLog3(editTextA.getText().toString(),Integer.parseInt(editTextB.getText().toString()), "", 0, "",0,"",0);
  •                                 }
  •                                 else if(editTextE.getText().toString() == null && editTextG.getText().toString() == null)
  •                                 {
  •                                         FileActivity.DataLog3(editTextA.getText().toString(),Integer.parseInt(editTextB.getText().toString()),editTextC.getText().toString(),Integer.parseInt(editTextD.getText().toString()) , "",0,"",0);
  •                                 }
  •                                 else if(editTextG.getText().toString() == null)
  •                                 {
  •                                         FileActivity.DataLog3(editTextA.getText().toString(),Integer.parseInt(editTextB.getText().toString()),editTextC.getText().toString(),Integer.parseInt(editTextD.getText().toString()) , editTextE.getText().toString(),Integer.parseInt(editTextF.getText().toString()),"",0);
  •                                 }
  •                                 else
  •                                 {
  •                                         FileActivity.DataLog3(editTextA.getText().toString(),Integer.parseInt(editTextB.getText().toString()), editTextC.getText().toString(),Integer.parseInt(editTextD.getText().toString()), editTextE.getText().toString(),Integer.parseInt(editTextF.getText().toString()), editTextG.getText().toString(),Integer.parseInt(editTextH.getText().toString()));
  •                                 }
  •                                 if(TextUtils.isEmpty(unt1))
  •                                 {
  •                                         intent.putExtra("one1","0");
  •                                 }
  •                                 else
  •                                 {
  •                                         intent.putExtra("one1",unt1);
  •                                 }
  •                                 if(TextUtils.isEmpty(unt2))
  •                                 {
  •                                         intent.putExtra("one2","0");
  •                                 }
  •                                 else
  •                                 {
  •                                         intent.putExtra("one2",unt2);
  •                                 }
  •                                 if(TextUtils.isEmpty(unt3))
  •                                 {
  •                                         intent.putExtra("one3","0");
  •                                 }
  •                                 else
  •                                 {
  •                                         intent.putExtra("one3",unt3);
  •                                 }
  •                                 if(TextUtils.isEmpty(unt4))
  •                                 {
  •                                         intent.putExtra("one4","0");
  •                                 }
  •                                 else
  •                                 {
  •                                         intent.putExtra("one4",unt4);
  •                                 }
  •                                 intent.setClass(GokitControlActivity1.this, Time_Activity.class);
  •                                 startActivity(intent);
  •                         }
  •                 });
  •                 swInfrared.setOnCheckedChangeListener(new OnCheckedChangeListener() {
  •                         @Override
  •                         public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
  •                                 try {
  •                                         if(isChecked == true)
  •                                         {
  •                                                 vibrator.vibrate(new long[]{1000,3000,1000,3000},0);  //手机震动提示
  •                                                 new AlertDialog.Builder(GokitControlActivity1.this).setTitle("警告")//设置对话框标题
  •                                              .setMessage("为了您的健康!\n请按时吃药!")//设置显示的内容
  •                                             .setNegativeButton("确定",new DialogInterface.OnClickListener() {//添加返回按钮
  •                                                  @Override
  •                                                  public void onClick(DialogInterface dialog, int which) {//响应事件
  •                                                      // TODO Auto-generated method stub
  •                                                         SimpleDateFormat formatter = new SimpleDateFormat ("yyyy-MM-dd HH:mm");
  •                                         Date curDate = new Date(System.currentTimeMillis());//获取当前时间
  •                                         String str = formatter.format(curDate);
  •                                         if(editTextA.getText().toString() != null)
  •                                         {
  •                                                                  FileActivity.DataLog2(editTextA.getText().toString(),Integer.parseInt(editTextB.getText().toString()),str);
  •                                         }
  •                                         if(editTextC.getText().toString() != null)
  •                                         {
  •                                                 FileActivity.DataLog2(editTextC.getText().toString(),Integer.parseInt(editTextD.getText().toString()),str);
  •                                         }
  •                                         if(editTextE.getText().toString() != null)
  •                                         {
  •                                                 FileActivity.DataLog2(editTextE.getText().toString(),Integer.parseInt(editTextF.getText().toString()),str);
  •                                         }
  •                                         if(editTextG.getText().toString() != null)
  •                                         {
  •                                                 FileActivity.DataLog2(editTextG.getText().toString(),Integer.parseInt(editTextH.getText().toString()),str);
  •                                         }
  •                                                          vibrator.cancel();
  •                                                      Log.i("123"," 请保存数据!");
  •                                                  }
  •                                              }).show();//在按键响应事件中显示此对话框
  •                                         }
  •                                         else
  •                                         {
  •                                                  vibrator.cancel();
  •                                         }
  •                                         Log.v("123", ""+isChecked);
  •                                         sendJson(KEY_INFRARED, isChecked);
  •                                 } catch (JSONException e) {
  •                                         e.printStackTrace();
  •                                 }
  •                         }
  •                 });
  •         }

[color=rgb(0, 0, 0) !important]复制代码



二、预约时间
  • <blockquote>class Button12 implements OnClickListener

[color=rgb(0, 0, 0) !important]复制代码








三、温湿度查看
  • /**
  • *温湿度查看
  • */
  • case R.id.action_device_status:
  •                         new Ale.Builder(GokitControlActivity1.this).setTitle("温湿度查看")//设置对话框标题
  •                      .setMessage("环境湿度   "+ s +"\n" + "环境温度  " + w)//设置显示的内容
  •                     .setNegativeButton("确定",new DialogInterface.OnClickListener() {//添加返回按钮
  •                          @Override
  •                          public void onClick(DialogInterface dialog, int which) {//响应事件
  •                              // TODO Auto-generated method stub
  •                              Log.i("alertdialog"," 请保存数据!");
  •                          }
  •                      }).show();//在按键响应事件中显示此对话框
  •                         break;

[color=rgb(0, 0, 0) !important]复制代码




四、储存数据与读取数据

  • /**

[color=rgb(0, 0, 0) !important]复制代码


五、服药日志记录

  • /*<span style="font-size: 14px; line-height: 1.5;">*服药日志</span>

[color=rgb(0, 0, 0) !important]复制代码

[color=rgb(0, 0, 0) !important]






分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏6 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:164794 发表于 2017-8-4 18:07 | 只看该作者
感谢楼主的分享
回复

使用道具 举报

板凳
ID:18591 发表于 2019-1-20 21:06 | 只看该作者

下载学习,谢谢分享
回复

使用道具 举报

地板
ID:555968 发表于 2020-2-19 18:49 来自手机 | 只看该作者
这个app用那个可个软件工具生成?
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表