|
基于stm32+機(jī)智云平臺(tái)的智能藥盒
file:///C:\Users\GUOQIN~1.QIN\AppData\Local\Temp\ksohtml\wps28E1.tmp.png(寶盒鎮(zhèn)樓o(∩_∩)o ) ============================華麗的分割線============================= 創(chuàng)意來源: “哎呀,忘了”!隨著生活節(jié)奏的加快,年齡的增長,人們的總?cè)菀淄浺恍┦虑,比如忘記吃藥。尤其是家中的老人,由于身體問題,可能需要長期服藥治療,但年歲大了總?cè)菀淄@忘那的。但在科技快速發(fā)展的今天,這些都不是問題,我們?cè)O(shè)計(jì)并開發(fā)了一款名為“健康衛(wèi)士”的智能藥盒,可以聯(lián)網(wǎng)監(jiān)測(cè)用戶的服藥情況,提示用戶服藥,并且根據(jù)用戶設(shè)定自動(dòng)提取所需藥物。 哎呀!!!!!!!忘記了我是來參賽的,說下這次大賽要求達(dá)成情況.
比賽要求達(dá)成情況。。。。。。。。。。。。。。。。。。。。。。。。。。。!
各個(gè)分值項(xiàng)的詳解!。。。。。。。。。。。。。。。。。。。。。。。。。。。!
一,需求提煉數(shù)據(jù)點(diǎn)以及產(chǎn)品定義 二 設(shè)別端實(shí)現(xiàn)配置入網(wǎng) 文字描述。。。。。。。。 三 實(shí)現(xiàn)demoapp和設(shè)備的控制(其實(shí)我們自己開發(fā)了個(gè)app(后面介紹)) 視頻演示。。。。。。。。 四 實(shí)時(shí)時(shí)鐘 因?yàn)檫@個(gè)功能我們用了pcf8563芯片 這樣就實(shí)現(xiàn)了實(shí)時(shí)時(shí)鐘(而且斷網(wǎng)后不影響) 五 報(bào)警功能 手機(jī)遠(yuǎn)程提醒(后面介紹) 語音提醒(后面介紹) 六 可產(chǎn)品化程度 先說一下這次的成本,因?yàn)槲覀冞@次是做的模型 ,什么都在探索,步進(jìn)電機(jī)就換了兩次(每次都是力不夠(力量和空間)),總體來說這次花費(fèi)還是不很多500 元左右,如果投入市場(chǎng)成本也就是200元左右。另外我們?cè)O(shè)計(jì)的非常人性化, 一次設(shè)定,很長時(shí)間不用管(它是自動(dòng)篩選藥品哦),即使是掉電也不用怕哦,有記憶功能 斷網(wǎng)更不要怕 自動(dòng)重新連接 另外本地運(yùn)行(語音還是照樣提醒哦) 七硬件系統(tǒng)
硬件系統(tǒng)主要是pcb 走線布局 +stm32(C語言 功能實(shí)現(xiàn))+wifi(esp8266)+機(jī)智云平臺(tái)
在下先放個(gè)功能圖給大家嘗嘗鮮!。。。。。。。。。。。。。。
八軟件系統(tǒng) 軟件部分主要是用機(jī)智云的sdk,集成了機(jī)智云的sdk,開發(fā)起來還是很好入門的,向我這種小白在學(xué)了兩個(gè)星期后就基本入門了,加上自己的做做UI,就可以了。代碼很簡單 貼出來了在后面(開源了)(好戲在后面。。。。。。。。。。。。。。)
九 發(fā)揮項(xiàng) 1 語音播報(bào) 通過wt588d, 進(jìn)行語音提醒 ,感情切(也可以自己錄音哦) 2 斷電后數(shù)據(jù)不丟 通過數(shù)據(jù)保存(一次設(shè)定,全程無憂)。(再也不用擔(dān)心重復(fù)設(shè)定了) 3 自動(dòng)化分揀藥品種類 每天還在想那個(gè)藥品吃多少嗎(你就out 啦 ,全新智能藥盒, 再也不用煩惱了 ) 4 斷網(wǎng)后自動(dòng)連接 斷網(wǎng)后重新設(shè)置 不用 (網(wǎng)絡(luò)連接失敗后(有網(wǎng)絡(luò)后)會(huì)重新連接的) ================================================================== 我是分割線============================================================================= ---------------------------上面主要講了寫大賽要求相關(guān)的東西。。。說了這么多我們還沒有知道過程呢。。。好吧 馬上來-------------------------------------------------------------------- 我們這個(gè)智能藥盒是我們團(tuán)隊(duì)兩個(gè)月多月的時(shí)間從無到有的一個(gè)搞機(jī)械 組裝,一個(gè)搞app ,一個(gè)搞電路寫程序,接下來就有我詳細(xì)介紹我們的這個(gè)作品 總體結(jié)構(gòu): 電氣部分:通過重新設(shè)計(jì)板子設(shè)計(jì)基于機(jī)智云平臺(tái)的設(shè)備,設(shè)計(jì)集成了若干模塊,主要包括eeprom,時(shí)鐘模塊、運(yùn)動(dòng)驅(qū)動(dòng)模塊、語 音提醒模塊、傳感器模塊(溫濕度、霍爾、光耦)、網(wǎng)絡(luò)模塊。 藥盒模型:重點(diǎn)解決自動(dòng)提取藥物部分的模型(轉(zhuǎn)盤式雙層篩板) 云:使用機(jī)智云平臺(tái),獨(dú)立搭建數(shù)據(jù)點(diǎn)。 APP:與機(jī)智云平臺(tái)和MCU通訊,從而進(jìn)行對(duì)智能藥盒的管理控制;遠(yuǎn)程 監(jiān)控;遠(yuǎn)程提醒,遠(yuǎn)程溫濕度查看。
材料清單: | 步進(jìn)電機(jī);驅(qū)動(dòng) | | | | | | | | | | | | | | | 下面我就以時(shí)間軸方式介紹一下電氣部分7月一號(hào):開貼報(bào)名
7月1-5號(hào):尋找小伙伴
7月5-10號(hào): 確定主題(開始建立數(shù)據(jù)點(diǎn))7月11-20號(hào):對(duì)機(jī)智云的協(xié)議分析(包括大段字節(jié) ,數(shù)據(jù)的標(biāo)志位的理解)
7月21-30號(hào):對(duì)本地時(shí)鐘和傳輸?shù)臄?shù)據(jù)進(jìn)行寫入
8月1-10號(hào): 對(duì)機(jī)智云的硬件充分理解畫出原理圖和pcb板
8月11-17號(hào):終于等到了pcb(對(duì)電路板的焊接 和調(diào)試 )
8月17-20號(hào):對(duì)原理圖和pcb 圖進(jìn)行修改 從而實(shí)現(xiàn)功能
注:(程序一直穿插其中)
下面以此介紹程序的實(shí)現(xiàn),電路的實(shí)現(xiàn),pcb注意的事再次之前先發(fā)下我的文件夾(每天都在記錄 哦)
機(jī)智云程序
網(wǎng)絡(luò)獲取時(shí)間:
- uint8_t getTime[9]={0xFF,0xFF,0x00,0x05,0x17,0x78,0x00,0x00,0x94};
[color=rgb(0, 0, 0) !important]復(fù)制代碼
[color=rgb(0, 0, 0) !important]復(fù)制代碼
原理圖:: pcb圖 來個(gè)3d吧 
大家會(huì)疑問,為什么要做成是這樣的 答案是省錢,又做了個(gè)wifi 轉(zhuǎn)接板 現(xiàn)實(shí)圖這樣的

裁剪之后是這樣的 (焊接的照片 傳不上去 正在聯(lián)系機(jī)智云。。。稍后奉上)
健康衛(wèi)士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() {
- /**打開預(yù)約時(shí)間頁面*/
- 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();
- //儲(chǔ)存藥品名字合個(gè)數(shù)
- 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); //手機(jī)震動(dòng)提示
- new AlertDialog.Builder(GokitControlActivity1.this).setTitle("警告")//設(shè)置對(duì)話框標(biāo)題
- .setMessage("為了您的健康!\n請(qǐng)按時(shí)吃藥!")//設(shè)置顯示的內(nèi)容
- .setNegativeButton("確定",new DialogInterface.OnClickListener() {//添加返回按鈕
- @Override
- public void onClick(DialogInterface dialog, int which) {//響應(yīng)事件
- // TODO Auto-generated method stub
- SimpleDateFormat formatter = new SimpleDateFormat ("yyyy-MM-dd HH:mm");
- Date curDate = new Date(System.currentTimeMillis());//獲取當(dāng)前時(shí)間
- 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"," 請(qǐng)保存數(shù)據(jù)!");
- }
- }).show();//在按鍵響應(yīng)事件中顯示此對(duì)話框
- }
- else
- {
- vibrator.cancel();
- }
- Log.v("123", ""+isChecked);
- sendJson(KEY_INFRARED, isChecked);
- } catch (JSONException e) {
- e.printStackTrace();
- }
- }
- });
- }</font>
[color=rgb(0, 0, 0) !important]復(fù)制代碼

二、預(yù)約時(shí)間- <blockquote>class Button12 implements OnClickListener
[color=rgb(0, 0, 0) !important]復(fù)制代碼
三、溫濕度查看
- /**
- *溫濕度查看
- */
- case R.id.action_device_status:
- new Ale.Builder(GokitControlActivity1.this).setTitle("溫濕度查看")//設(shè)置對(duì)話框標(biāo)題
- .setMessage("環(huán)境濕度 "+ s +"\n" + "環(huán)境溫度 " + w)//設(shè)置顯示的內(nèi)容
- .setNegativeButton("確定",new DialogInterface.OnClickListener() {//添加返回按鈕
- @Override
- public void onClick(DialogInterface dialog, int which) {//響應(yīng)事件
- // TODO Auto-generated method stub
- Log.i("alertdialog"," 請(qǐng)保存數(shù)據(jù)!");
- }
- }).show();//在按鍵響應(yīng)事件中顯示此對(duì)話框
- break;
[color=rgb(0, 0, 0) !important]復(fù)制代碼
四、儲(chǔ)存數(shù)據(jù)與讀取數(shù)據(jù)
[color=rgb(0, 0, 0) !important]復(fù)制代碼
五、服藥日志記錄 - /*<span style="font-size: 14px; line-height: 1.5;">*服藥日志</span>
[color=rgb(0, 0, 0) !important]復(fù)制代碼
|
|
| [tr][/tr]
| 點(diǎn)評(píng)回復(fù) 編輯 [url=]使用道具[/url] [url=]舉報(bào)[/url]
| | |

積分331
| 板凳
樓主| 發(fā)表于 昨天 14:14 | 只看該作者
【STM 32】之智能藥盒本帖最后由 郭慶帥 于 2016-8-22 18:43 編輯
健康衛(wèi)士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() {
- /**打開預(yù)約時(shí)間頁面*/
- 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();
- //儲(chǔ)存藥品名字合個(gè)數(shù)
- 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); //手機(jī)震動(dòng)提示
- new AlertDialog.Builder(GokitControlActivity1.this).setTitle("警告")//設(shè)置對(duì)話框標(biāo)題
- .setMessage("為了您的健康!\n請(qǐng)按時(shí)吃藥!")//設(shè)置顯示的內(nèi)容
- .setNegativeButton("確定",new DialogInterface.OnClickListener() {//添加返回按鈕
- @Override
- public void onClick(DialogInterface dialog, int which) {//響應(yīng)事件
- // TODO Auto-generated method stub
- SimpleDateFormat formatter = new SimpleDateFormat ("yyyy-MM-dd HH:mm");
- Date curDate = new Date(System.currentTimeMillis());//獲取當(dāng)前時(shí)間
- 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"," 請(qǐng)保存數(shù)據(jù)!");
- }
- }).show();//在按鍵響應(yīng)事件中顯示此對(duì)話框
- }
- else
- {
- vibrator.cancel();
- }
- Log.v("123", ""+isChecked);
- sendJson(KEY_INFRARED, isChecked);
- } catch (JSONException e) {
- e.printStackTrace();
- }
- }
- });
- }
[color=rgb(0, 0, 0) !important]復(fù)制代碼
二、預(yù)約時(shí)間- <blockquote>class Button12 implements OnClickListener
[color=rgb(0, 0, 0) !important]復(fù)制代碼
三、溫濕度查看
- /**
- *溫濕度查看
- */
- case R.id.action_device_status:
- new Ale.Builder(GokitControlActivity1.this).setTitle("溫濕度查看")//設(shè)置對(duì)話框標(biāo)題
- .setMessage("環(huán)境濕度 "+ s +"\n" + "環(huán)境溫度 " + w)//設(shè)置顯示的內(nèi)容
- .setNegativeButton("確定",new DialogInterface.OnClickListener() {//添加返回按鈕
- @Override
- public void onClick(DialogInterface dialog, int which) {//響應(yīng)事件
- // TODO Auto-generated method stub
- Log.i("alertdialog"," 請(qǐng)保存數(shù)據(jù)!");
- }
- }).show();//在按鍵響應(yīng)事件中顯示此對(duì)話框
- break;
[color=rgb(0, 0, 0) !important]復(fù)制代碼
四、儲(chǔ)存數(shù)據(jù)與讀取數(shù)據(jù)
[color=rgb(0, 0, 0) !important]復(fù)制代碼
五、服藥日志記錄 - /*<span style="font-size: 14px; line-height: 1.5;">*服藥日志</span>
[color=rgb(0, 0, 0) !important]復(fù)制代碼
[color=rgb(0, 0, 0) !important]
|
|
|
|