《《智能家居系统集成与应用》教案 第16课 环境(湿度)监测系统程序设计与实现.docx》由会员分享,可在线阅读,更多相关《《智能家居系统集成与应用》教案 第16课 环境(湿度)监测系统程序设计与实现.docx(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、课题第16课 环境(湿度)监测系统程序设计与实现课时2 课时(90 min )教学目标知识目标:掌握 ArrayAdapter 的使用,AsyncHttpClient 创建 http 请求技能目标:掌握环境(湿度)监测系统Android程序设计与实现态度目标:在学习上学会对比分析,能够通过已有知识去理解和掌握新知识教学重难点教学重点:AsyncHttpClient创建HTTP POST请求 教学难点:APP界面湿度数据的加载显小教学方法问答法、讨论法、讲授法、练习法教学用具电脑、投影仪、多媒体课件、教材教学设计第1节课:课前任务T考勤(2 min )一问题导入(3 min ) 一传授新知(25
2、 min ) 一课堂实训(15 min ) 第2节课:问题导入(5 min )一传授新知(20 min )一课堂实训(15 min )一课堂小结(3 min )一作 业布置(2 min )教学过程主要教学内容及步骤设计意图第一节课课前任务【教师】让学生通过书籍或互联网,查找HTTP协议的相关知识【学生】按照要求完成课前任务通过课前任务,让 学生了解网络数据 交互的协议考勤(2 min )【教师】使用APP进行签到【学生】班干部报请假人员及原因培养学生的组织 纪律性,掌握学生的 出勤情况问题导入(3 min)【教师】让学生思考并回答以下问题:电脑和手机浏览网页时,一者属于服务器还是客户端?【学生
3、】聆听、思考、回答【教师】总结学生的回答,导入本节课内容:环境(湿度)监测系统程序设计与实 现通过提问,引入新 课,让学生明确服务 器和客户端的概念传授新知(25 min)【教师】讲解新知,介绍环境(湿度)监测系统程序设计与实现一、ArrayAdapterArrayAdapter有两个主要功能:一个是读取资源文件中定义的列表项,另一个是 通过数组或List集合设置列表项。通过教师讲解、课 堂问答和多媒体演 示等方式,让学生了 解 ArrayAdapter 的 主要功能及常用方【多媒体】展示ArrayAdapter类的常用方法说明表格(详见教材),并讲 解具体内容法,掌握AsyncHttpCli
4、ent 发备注:对于卜拉列表项的显ZF风格一般都会将其设置为android :送http请求的方法与布局文件实现的 步骤simple_spinner_dropdown_itemo【课堂问答】【教师】随机邀请学生回答以下问题在之前的项目中,我们用Array Adapter实现过什么功能?【学生】聆听、思考.回答【教师】总结学生的回答实现Spinner数据源的定义,通过Array Adapter读取资源文件来配置数据源;通 过ArrayAdapter类的构造方法创建一个Array Adapter对象,由它负责列表条目的显示。二.AsyncHttpClient,该类通常用在 android 应用程
5、序中创建异步GET、POST、PUT和DELETE HTTP请求,请求参数通过RequestParams 实例创建,响应通过重写匿名内部类ResponseHandlerlnterface的方法处理。AsyncHttpClient client=new AsyncHttpClient ();client.get ( http: , new AsyncHttpResponseHandler ( ) Overridepublic void onSuccess ( String response ) System.out.println ( response ); ) ;【学生】聆听.观看、思考、理解
6、.记录【教师】引入任务实施内容,讲解环境(湿度)监测系统程序的设计与实现一、创建Android工程创建Android工程,应用名称为获取湿度,项目名称为GetWetState,其 他设置参考任务一:灯控系统程序设计与实现。二、布局文件实现1 .创建渐变动画布局参考任务三:环境(温度)监测系统程序设计与实现。【课堂问答】【教师】随机邀请学生回答以下问题通过上一任务的讲解,思考如何修改渐变的持续时间?【学生】聆听、思考.回答【教师】总结学生的回答修改xml布局文件中android:duration属性的值,即可改变渐变的持续时间。2,获取湿度主界面布局【多媒体】演示创建湿度主界面布局的操作步骤步骤
7、 1 在 res/layout7activity control.xml”文件中添加以下代码:(详见教材)步骤2按Ctrl+S”组合键保存,至此完成了对应用获取湿度的界面布局程 序代码的编写,效果如图所示。课堂实训(15 min)问题导入(5 min)崎萼HIQ收事均IK 节占地地节点状及【学生】聆听、观看、思考、理解.记录【教师】组织学生完成以下任务创建Android程序工程,创建代码工程,参考上一任务添加渐变动画布局,添加 湿度主界面布局,查看界面实现的效果。【学生】聆听、思考.上机操作、完成任务【教师】根据学生的课堂表现在考核评价表(详见教材)中进行评价第二节课【教师】让学生思考并回答以
8、下问题如果APP采集的数据量特别大,如何避免程序一直在等待服务器数据,阻塞UI 界面显示?【学生】聆听、思考、回答通过课堂实训,使 学生掌握各类布局 的实现通过问题,让学 生思考如何新建线 程,避免阻塞UI 界面【教师】引入任务实施内容,讲解环境(湿度)监测系统程序的设计与实现三.功能实现用户通过设置阀值来管理湿度并记录,当超过阀值时会传送一个参数到节点上进 行提醒。http请求用到的请求接口和请求参数均由智能家居系统平台提供。1 .初始化参数/*上下文对象Vprivate Context context = null ;/* 显本湿度* /private ListView lv_temper
9、 = null ;/*我湿度数据* /(详见教材)通过教师讲解、 课堂问答和多媒体 演示等方式,让学 生掌握环境(湿度) 监测功能代码的实 现,包括初始化参 数、实例化按钮对 象并设置监听、获 取湿度值、对话框 内容显示等,最后 通过APP查看湿度 数据,验证代码正 确性2 .实例化按钮对象并设置监听实例化开、关按钮并设置监听button = ( Button ) findViewByld ( R.id.but_get ); button.setOnClickListener ( this );传授新知(20 min)lv_temper = ( ListView ) findViewByld
10、( R.id.lv_data );adapter = new SimpleAdapter ( context , data , R.layout.layout_adapter , keys , new int R.id.tv_senorid , R.id.tv_senordata , R.id.tv_collecttime , R.id.tv_addr , R.id.tv_typeid , R.id.tv_state );lv_temper.setAdapter ( adapter );findViewByld ( R.id.but_setting ) .setOnClickListener
11、( this ); (详见教材)【课堂问答】【教师】随机邀请学生回答以下问题上述代码中是如何控制数据更新的?【学生】聆听.思考.回答【教师】总结学生的回答代码中adapter.notifyDataSetChanged (),发送数据源有变化的消息,界面UI得 到消息,就会去更新界面上显示的数据。3 .获取湿度值/*获取湿度*/public synchronized void control ( ) 开启异步线程请求数据AsyncHttpClient client 二 new AsyncHttpClient ();client.setTimeout ( 8000 );RequestParams
12、params = new RequestParams ();params.put ( nequnoM , ”32258778P6B508): 参数设置-设备编号-具体查看 平台设置;(详见教材)【课堂问答】【教师】随机邀请学生回答以下问题简述上述代码中,线程一直请求不到数据,是如何处理的?【学生】聆听.思考、回答【教师】总结学生的回答在程序中设置了超时时间,client.setTimeout ( 8000 ),在规定时间没有得到http 响应的数据,则停止。4 .对话框内容显示private void showSetlpDialog ( String title , String mess )
13、 AlertDialog.Builder builder = new AlertDialog.Builder ( context);builder.setTitle ( title );builder.setMessage ( mess );final EditText editText = new EditText ( context);editText.setText ( DataSave.getString ( context , Mserverlpn );builder.setView ( editText);(详见教材)通过单击控制按钮来启动一个定时线程发送指令到网关,定时让网关上报
14、数据。 同时对网关返回的数据进行过滤。筛选出湿度数据,对这些数据进行判断和显示。完 整代码请查看本书配套源代码。5 .功能验证将编译好的程序安装到手机中(需要打开手机的开发者模式,不同型号的手机开 发者模式打开方式有所不同,可根据所用手机的型号查阅相关资料)。连接好硬件, 启动服务器。通过刚安装好的App查看是否能够正常获取湿度、设置阈值,如图6-24 所示(详见教材)。【学生】聆听、观看、思考.理解、记录通过课堂实训, 使学生真正掌握异 步线程的使用,以 及界面上数据更新 的方法通过课堂实训, 使学生真正掌握异 步线程的使用,以 及界面上数据更新 的方法总结本节所学, 让学生掌握异步线 程的
15、使用,界面UI 更新数据显示【教师】组织学生完成以下任务课堂实训I(15 min)课堂小结(3 min)按照本节所讲述的环境(湿度)监测系统程序实现的具体步骤,在上节课基础上, 完成功能代码的添加,通过AsyncHttpClient创建异步线程,发送http请求,接收湿度 数据,界面UI更新数据显示,最后通过APP查看湿度数据。【学生】聆听、思考、操作、完成任务【教师】根据学生的课堂表现在考核评价表(详见教材)中进行评价【教师】简要总结本节课的要点本节课让学生了解了 ArrayAdapter的主要功能和常用方法,以及AsyncHttpClient 发送http请求的方法,掌握了环境(湿度)监测功能代码的实现,包括初始化参数、实例化按钮对象并设置监听、获取湿度值、对话框内容显小等,最后通过APP查看湿 度数据,验证代码正确性。【学生】总结回顾知识点作业布置 (2 min )【教师】布置课后作业1、完成教材知识巩固习题2、预习下节课内容【学生】完成课后任务通过课后练习, 复习巩固所学知识教学反思本节课中讲解了 AsyncHttpClient创建异步线程的具体方法,界面UI数据更新的原理及方法。本节课不 足之处是没有对界面UI主线程做详细介绍。