描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302472179
本书按照知识点分类,将嵌入式系统和物联网系统的开发技术、CortexM3接口技术、传感器驱动、无线传感网络技术、Contiki操作系统基本知识和网络技术、IPv6综合开发技术、物联网平台开发技术、Android移动互联网开发结合在一起,实现了各种领域的物联网的数据采集、传输和控制,并提供案例及其源代码,读者可以快速上手。
本书既可作为高等院校相关专业的教材或教学参考书,也可供相关领域的工程技术人员查阅,且适合微处理器和物联网系统开发爱好者使用。
目录
第1章物联网开发硬件与软件
1.1任务1认识物联网
1.1.1物联网的含义与基本特征
1.1.2中国物联网产业发展现状
1.1.3中国物联网技术发展存在的问题
1.1.4IPv6和物联网发展
1.1.5IPv6技术简介
1.2任务2认识物联网开发套件
1.2.1学习目标
1.2.2STM32W108
1.2.3ZXBee无线节点
1.2.4硬件连接和调试
1.2.5ZXBee无线节点硬件资源
1.3任务3搭建物联网开发环境
1.3.1学习目标
1.3.2开发环境
1.3.3原理学习
1.3.4开发步骤
1.4任务4IAR项目开发
1.4.1工程目录创建
1.4.2工程设置
1.4.3程序下载和调试
1.4.4下载hex文件
第2章STM32外围接口开发
2.1任务5GPIO驱动
2.1.1学习目标
2.1.2开发环境
2.1.3原理学习
2.1.4开发内容
2.1.5开发步骤
2.1.6总结与扩展
2.2任务6外部中断
2.2.1学习目标
2.2.2开发环境
2.2.3原理学习
2.2.4开发内容
2.2.5开发步骤
2.2.6总结与扩展
2.3任务7串口通信
2.3.1学习目标
2.3.2开发环境
2.3.3原理学习
2.3.4开发内容
2.3.5开发步骤
2.3.6总结与扩展
2.4任务8SYSTICK定时器
2.4.1学习目标
2.4.2开发环境
2.4.3原理学习
2.4.4开发内容
2.4.5开发步骤
2.4.6总结与扩展
2.5任务9LCD
2.5.1学习目标
2.5.2开发环境
2.5.3原理学习
2.5.4开发内容
2.5.5开发步骤
2.5.6总结与扩展
2.6任务10实时时钟
2.6.1学习目标
2.6.2开发环境
2.6.3原理学习
2.6.4开发内容
2.6.5开发步骤
2.6.6总结与扩展
2.7任务11独立看门狗
2.7.1学习目标
2.7.2开发环境
2.7.3原理学习
2.7.4开发内容
2.7.5开发步骤
2.7.6总结与扩展
2.8任务12窗口看门狗
2.8.1学习目标
2.8.2开发环境
2.8.3原理学习
2.8.4开发内容
2.8.5开发步骤
2.8.6总结与扩展
2.9任务13定时器中断
2.9.1学习目标
2.9.2开发环境
2.9.3原理学习
2.9.4开发内容
2.9.5开发步骤
2.9.6总结与扩展
2.10任务14内部温度传感器
2.10.1学习目标
2.10.2开发环境
2.10.3原理学习
2.10.4开发内容
2.10.5开发步骤
2.10.6总结与扩展
2.11任务15DMA
2.11.1学习目标
2.11.2开发环境
2.11.3原理学习
2.11.4开发内容
2.11.5开发步骤
2.11.6总结与扩展
第3章传感器驱动开发
3.1任务16光敏传感器
3.1.1学习目标
3.1.2开发环境
3.1.3原理学习
3.1.4开发内容
3.1.5开发步骤
3.1.6总结与扩展
3.2任务17温湿度传感器
3.2.1学习目标
3.2.2开发环境
3.2.3原理学习
3.2.4开发内容
3.2.5开发步骤
3.2.6总结与扩展
3.3任务18雨滴/凝露传感器
3.3.1学习目标
3.3.2开发环境
3.3.3原理学习
3.3.4开发内容
3.3.5开发步骤
3.3.6总结与扩展
3.4任务19火焰传感器
3.4.1学习目标
3.4.2开发环境
3.4.3原理学习
3.4.4开发内容
3.4.5开发步骤
3.4.6总结与扩展
3.5任务20继电器
3.5.1学习目标
3.5.2开发环境
3.5.3原理学习
3.5.4开发内容
3.5.5开发步骤
3.5.6总结与扩展
3.6任务21霍尔传感器
3.6.1学习目标
3.6.2开发环境
3.6.3原理学习
3.6.4开发内容
3.6.5开发步骤
3.6.6总结与扩展
3.7任务22超声波测距传感器
3.7.1学习目标
3.7.2开发环境
3.7.3原理学习
3.7.4开发内容
3.7.5开发步骤
3.7.6总结与扩展
3.8任务23人体红外传感器
3.8.1学习目标
3.8.2开发环境
3.8.3原理学习
3.8.4开发内容
3.8.5开发步骤
3.8.6总结与扩展
3.9任务24可燃气体/烟雾传感器
3.9.1学习目标
3.9.2开发环境
3.9.3原理学习
3.9.4开发内容
3.9.5开发步骤
3.9.6总结与扩展
3.10任务25酒精传感器
3.10.1学习目标
3.10.2开发环境
3.10.3原理学习
3.10.4开发内容
3.10.5开发步骤
3.10.6总结与扩展
3.11任务26空气质量传感器
3.11.1学习目标
3.11.2开发环境
3.11.3原理学习
3.11.4开发内容
3.11.5开发步骤
3.11.6总结与扩展
3.12任务27三轴加速度传感器
3.12.1学习目标
3.12.2开发环境
3.12.3原理学习
3.12.4开发内容
3.12.5开发步骤
3.12.6总结与扩展
3.13任务28压力传感器
3.13.1学习目标
3.13.2开发环境
3.13.3原理学习
3.13.4开发内容
3.13.5开发步骤
3.13.6总结与扩展
3.14任务29RFID读写
3.14.1学习目标
3.14.2开发环境
3.14.3原理学习
3.14.4开发内容
3.14.5开发步骤
3.14.6总结与扩展
3.15任务30步进电机控制
3.15.1学习目标
3.15.2开发环境
3.15.3原理学习
3.15.4开发内容
3.15.5开发步骤
3.15.6总结与扩展
第4章无线传感网络技术开发
4.1任务31IEEE 802.15.4无线网络驱动开发
4.1.1学习目标
4.1.2开发环境
4.1.3原理学习
4.1.4开发内容
4.1.5开发步骤
4.2任务32IEEE 802.15.4点对点通信开发
4.2.1学习目标
4.2.2开发环境
4.2.3原理学习
4.2.4开发内容
4.2.5开发步骤
4.3任务33蓝牙无线网络开发
4.3.1学习目标
4.3.2开发环境
4.3.3原理学习
4.3.4开发内容
4.3.5开发步骤
4.4任务34WiFi无线网络开发
4.4.1学习目标
4.4.2开发环境
4.4.3原理学习
4.4.4开发内容
4.4.5开发步骤
第5章基于Contiki操作系统的基础项目开发
5.1任务35认识Contiki操作系统
5.1.1学习目标
5.1.2原理学习
5.2任务36认识Contiki操作系统的数据结构
5.2.1学习目标
5.2.2原理学习
5.3任务37Contiki操作系统移植
5.3.1学习目标
5.3.2开发环境
5.3.3原理学习
5.3.4开发内容
5.3.5开发步骤
5.3.6总结与扩展
5.4任务38Contiki操作系统的进程开发
5.4.1学习目标
5.4.2开发环境
5.4.3原理学习
5.4.4开发步骤
5.4.5总结与扩展
5.5任务39Contiki多进程开发
5.5.1学习目标
5.5.2开发环境
5.5.3原理学习
5.5.4开发步骤
5.5.5总结与扩展
5.6任务40Contiki进程通信基础开发
5.6.1学习目标
5.6.2开发环境
5.6.3原理学习
5.6.4开发步骤
5.6.5总结与扩展
5.7任务41Contiki进程通信高级开发
5.7.1学习目标
5.7.2开发环境
5.7.3开发内容
5.7.4开发步骤
5.7.5总结与扩展
5.8任务42定时器驱动开发
5.8.1学习目标
5.8.2开发环境
5.8.3原理学习
5.8.4开发步骤
5.8.5总结与扩展
5.9任务43基于Contiki的LCD驱动开发
5.9.1学习目标
5.9.2开发环境
5.9.3原理学习
5.9.4开发步骤
5.9.5总结与扩展
第6章基于Contiki操作系统的无线网络项目开发
6.1任务44Contiki网络工程开发
6.1.1学习目标
6.1.2开发环境
6.1.3开发内容
6.1.4开发步骤
6.1.5总结与扩展
6.2任务45IPv6网关实现
6.2.1学习目标
6.2.2开发环境
6.2.3原理学习
6.2.4开发内容
6.2.5开发步骤
6.3任务46IEEE 802.15.4节点RPL组网开发
6.3.1学习目标
6.3.2开发环境
6.3.3原理学习
6.3.4开发内容
6.3.5开发步骤
6.4任务47蓝牙节点IPv6组网开发
6.4.1学习目标
6.4.2开发环境
6.4.3原理学习
6.4.4开发内容
6.4.5开发步骤
6.5任务48WiFi节点IPv6组网开发
6.5.1学习目标
6.5.2开发环境
6.5.3原理学习
6.5.4开发内容
6.5.5开发步骤
6.6任务49节点间UDP通信开发
6.6.1学习目标
6.6.2开发环境
6.6.3原理学习
6.6.4开发内容
6.6.5开发步骤
6.7任务50节点间TCP通信开发
6.7.1学习目标
6.7.2开发环境
6.7.3原理学习
6.7.4开发内容
6.7.5开发步骤
6.8任务51PC与节点间UDP通信开发
6.8.1学习目标
6.8.2开发环境
6.8.3原理学习
6.8.4开发内容
6.8.5开发步骤
6.9任务52PC与节点间TCP通信
6.9.1学习目标
6.9.2开发环境
6.9.3原理学习
6.9.4开发内容
6.9.5开发步骤
6.10任务53Protosocket编程开发
6.10.1学习目标
6.10.2开发环境
6.10.3原理学习
6.10.4开发内容
6.10.5开发步骤
第7章基于IPv6的物联网综合项目开发
7.1任务54基于IPv6的多无线网络融合框架
7.1.1学习目标
7.1.2开发环境
7.1.3原理学习
7.1.4开发内容
7.1.5开发步骤
7.2任务55节点数据通信协议
7.2.1学习目标
7.2.2原理学习
7.3任务56信息采集及控制(UDP)
7.3.1学习目标
7.3.2开发环境
7.3.3原理学习
7.3.4开发内容
7.3.5开发步骤
7.3.6总结与扩展
7.4任务57信息采集及控制(CoAP)
7.4.1学习目标
7.4.2开发环境
7.4.3原理学习
7.4.4开发内容
7.4.5开发步骤
7.4.6总结与扩展
7.5任务58传感器综合应用
7.5.1学习目标
7.5.2开发环境
7.5.3开发内容
7.5.4开发步骤
7.6任务59传感器的自定义开发
7.6.1学习目标
7.6.2开发环境
7.6.3开发内容
7.6.4开发步骤
第8章物联网平台综合项目开发
8.1任务60智云物联开发基础
8.1.1学习目标
8.1.2智云物联平台介绍
8.1.3智云物联基本框架
8.1.4智云物联常用硬件
8.1.5智云物联优秀项目
8.1.6开发前准备工作
8.2任务61智云平台基本开发
8.2.1学习目标
8.2.2开发环境
8.2.3原理学习
8.2.4开发内容
8.2.5开发步骤
8.2.6总结与扩展
8.3任务62物联网通信协议
8.3.1学习目标
8.3.2开发环境
8.3.3原理学习
8.3.4开发内容
8.3.5开发步骤
8.3.6总结与扩展
8.4任务63IPv6的节点硬件驱动开发
8.4.1学习目标
8.4.2开发环境
8.4.3原理学习
8.4.4开发内容
8.4.5开发步骤
8.4.6总结与扩展
8.5任务64Android API开发
8.5.1学习目标
8.5.2开发环境
8.5.3原理学习
8.5.4开发内容
8.5.5开发步骤
8.5.6总结与扩展
8.6任务65Web API开发
8.6.1学习目标
8.6.2开发环境
8.6.3原理学习
8.6.4开发内容
8.6.5开发步骤
8.6.6总结与扩展
8.7任务66开发调试工具
8.7.1学习目标
8.7.2开发环境
8.7.3原理学习
8.7.4开发内容
8.7.5开发步骤
8.7.6总结与扩展
第9章物联网云平台高级项目开发
9.1任务67可燃气体检测系统开发
9.1.1学习目标
9.1.2开发环境
9.1.3原理学习
9.1.4开始内容
9.1.5开发步骤
9.1.6总结与扩展
9.2任务68自动浇花系统开发
9.2.1学习目标
9.2.2开发环境
9.2.3原理学习
9.2.4开发内容
9.2.5开发步骤
9.2.6总结与扩展
9.3任务69智能家居监控系统开发
9.3.1学习目标
9.3.2开发环境
9.3.3原理学习
9.3.4开发内容
9.3.5开发步骤
9.3.6总结与扩展
9.4任务70农业环境自动监控系统开发
9.4.1学习目标
9.4.2开发环境
9.4.3原理学习
9.4.4开发内容
9.4.5开发步骤
9.4.6总结与扩展
附录A常见硬件及问题
A.1无线节点读取IEEE地址
A.2传感器
A.3STM32W108 IPv6 radio镜像固化
A.4蓝牙无线节点设置
A.5浏览器采集和控制节点
参考文献
前言
物联网和移动互联网的迅猛发展慢慢改变了人类社会的生产方式、人们的工作方式、生活习惯等。国家规划在9大重点领域推广物联网,分别是智能工业、智能农业、智能物流、智能家居、智能交通、智能电网、智能环保、智能安防、智能医疗,并得到了广泛的应用且逐步改变着这些产业的结构。
物联网系统涉及的技术很多,对于一个有志于从事物联网开发的人,必须掌握处理器外围接口的驱动开发技术、相应传感器的驱动开发技术,能开发应用程序和移动端程序。本书从STM32处理器入手,详细讲解微处理器接口结束、传感器驱动、无线网络技术、基于Contiki操作系统网络开发技术、基于IPv6的多无线网络融合技术、Android开发技术和云平台开发技术以及物联网高级应用技术。书中理论清晰,实践案例丰富,逐步引导读者掌握物联网的各种开发技术。
本书是一本由浅入深地对物联网系统进行开发的书籍,全书采用任务式开发的学习方法,共积累了70个趣味盎然、贴近生活的案例,每个案例均有完整的开发过程,分别是明确的学习目标、清晰的环境开发要求、深入浅出的原理学习、详细的开发内容和完整的开发步骤,后进行总结与拓展,引导读者进行理论学习,并将理论用于开发实践进行验证,强调理论与实践的有机结合,每个案例均附上完整的开发代码,在源代码的基础上可以快速进行二次开发,能方便地将其转化为各种比赛的案例,便于工程技术开发人员和科研工作人员进行科研项目等。
第1章介绍物联网的发展状况以及和IPv6的联系,讨论了本书开发使用的硬件平台STM32和物联网开发的软件环境搭建,以及如何用IAR建立工程。
第2~4章介绍基于STM32的开发技术,其中第2章是STM32外围接口开发,开发任务有GPIO控制、外部中断、串口通信、SYSTICK定时器、LCD、实时时钟、独立看门狗、窗口看门狗、定时器中断、内部温度传感器和DMA开发,引导读者掌握STM32外围接口开发;第3章是传感器驱动开发,在STM32的基础上完成各种传感器的原理学习与开发,有光敏传感器、温湿度传感器、雨滴/凝露传感器、火焰传感器、继电器、霍尔传感器、超声波测距传感器、人体红外传感器、可燃气体/烟雾传感器、酒精传感器、空气质量传感器、三轴加速度传感器、压力传感器、RFID读写和步进电机控制等,所介绍的传感器均是目前在社会上广泛应用的;第4章介绍了4种常用的无线网络技术,有IEEE 802.15.4无线网络驱动开发、IEEE 802.15.4点对点通信开发、蓝牙无线网络开发和WiFi无线网络开发,通过项目开发阐述了4种网络的特点。
第5~7章介绍Contiki操作系统和基于Contiki的开发技术,其中第5章介绍易于移植到微处理器上的小型操作系统Contiki,讨论了Contiki应用和数据结构,并将Contiki移植到STM32,并在Contiki系统上进行进程开发、多进程开发、进程通信开发、定时器驱动开发和基于Contiki的LCD驱动开发;第6章介绍基于Contiki操作系统的无线网络项目开发,分别详细阐述了Contiki网络工程开发、IPv6网关实现,并分模块实现三种网络的IPv6开发,分别有IEEE 802.15.4节点RPL组网开发、蓝牙节点IPv6组网开发、WiFi节点IPv6组网开发、节点间UDP通信开发、节点间TCP通信开发、PC与节点间UDP通信开发、PC与节点间TCP通信以及Protosocket编程开发。第7章介绍基于IPv6的物联网综合项目开发,详细分析了基于IPv6的多无线网络融合框架、节点数据通信协议,结合项目实现了信息采集及控制(UDP)、信息采集及控制(CoAP)、传感器综合应用以及传感器的自定义开发。
第8章和第9章是高级技术应用开发,其中第8章介绍物联网平台综合项目开发,讨论了智云物联平台的基本使用方法和一种用于数据传输的通信协议,并且实现了IPv6的节点硬件驱动开发、Android API开发和Web API开发,实现了云平台的应用;第9章是物联网云平台高级项目开发,有4个综合应用项目,分别是可燃气体检测系统开发、自动浇花系统开发、智能家居监控系统开发和农业环境自动监控系统开发,实现了物联网云平台的高级应用,也对全书的知识点进行了应用和串联。
本书特色:
(1)
任务式开发。抛开传统的理论学习方法,选取合适的案例将理论与实践结合起来,通过理论学习和开发实践,快速入门,由浅入深,逐步掌握CortexM3和IPv6的物联网开发技术。
(2)
各种知识点融合。将嵌入式系统和物联网的开发技术、STM32处理器基本接口驱动、传感器驱动、常用无线技术、小型操作系统、IPv6、Android移动互联网开发等相结合,实现了强大的物联网数据采集、传输和处理。
本书既可作为高等院校相关专业的教材或教学参考书,也可供相关领域的工程技术人员查阅,也适合微处理和物联网开发爱好者使用。
本书在编写过程中,借鉴和参考了国内外专家、学者、技术人员的相关研究成果,在此谨向有关作者表示深深的敬意和谢意。
感谢中智讯(武汉)科技有限公司在本书编写过程中提供的帮助,特别感谢清华大学出版社的编辑在本书出版过程中给予的指导和大力支持。
本书是“广东高等职业教育品牌专业建设项目(2016gzpp044)”研究成果之一。
由于本书涉及的知识面广,时间又仓促,限于笔者的水平和经验,疏漏之处在所难免,恳请专家和读者批评指正。
编者
2017年3月
本章介绍Contiki操作系统的基本知识,先分析Contiki操作系统的特点和源代码结构,介绍操作系统的主要数据结构,有进程、事件和etimer机制,并分析三者之间的关系,然后将操作系统通过移植到STM32,并通过任务式开完成了对GPIO控制、多线程、进程间通信、定时器的驱动,后实现了对LCD的驱动。5.1任务35认识Contiki操作系统5.1.1学习目标
初步了解Contiki操作系统基本特点; 理解Contiki事件驱动和protothread机制。5.1.2原理学习5.1.2.1Contiki操作系统Contiki是一个开源的、高度可移植的多任务操作系统,适用于联网嵌入式系统和无线传感器网络,由瑞典计算机科学学院(Swedish Institute of Computer Science)的Adam Dunkels和他的团队开发。Contiki完全采用C语言开发,可移植性非常好,对硬件的要求极低,能够运行在各种类型的微处理器及计算机上。Contiki适用于存储器资源十分受限的嵌入式单片机系统,是一种开源的操作系统,适用于BSD协议,即可以任意修改和发布,已经应用在许多项目中。 Contiki操作系统是基于事件驱动(Eventdriven)内核的操作系统,在此内核上,应用程序可以在运行时动态加载,非常灵活。在事件驱动内核基础上,Contiki实现了一种轻量级的名为protothread的线程模型,实现线性的、类似于线程的编程风格。该模型类似于Linux和Windows中线程的概念,多个线程共享同一个任务栈,从而减少RAM占用。Contiki系统内部集成了两种类型的无线传感器网络协议栈: uIP和Rime。uIP是一个小型的符合RFC规范的TCP/IP协议栈,可以直接与Internet通信,uIP包含了IPv4和IPv6两种协议栈,支持TCP、UDP、ICMP等协议; Rime是一个轻量级、为低功耗无线传感器网络设计的协议栈,提供了大量的通信原语,能够实现从简单的一跳广播通信,到复杂的可靠多跳数据传输等通信功能。5.1.2.2Contiki的特点Contiki操作系统也是一种嵌入式的多任务操作系统,是专为内存资源严重受限的嵌入式设备开发设计的。通常一个典型的Contiki系统只需占用2KB RAM和40KB ROM。Contiki有如下突出的特点: (1) Contiki系统开发使用纯C语言,采用C编译器,如GCC、IAR等,开发调试简单。(2) Contiki兼容性好,可在8位、16位、32位几乎所有类型的处理器上移植。(3) Contiki采用模块化松耦合的结构方式,支持选择性的可抢占式多任务。(4) 低功率无线电通信。Contiki同时提供完整的IP网络和低功率无线电通信机制。对于无线传感器网络内部通信,Contiki使用低功率无线电网络栈。(5) 网络交互。可以通过多种方式完成与使用Contiki的传感器网络的交互,如Web浏览器、基于文本的命令行接口,或者存储和显示传感器数据的专用软件等,为传感器网络的交互与感知提供了一些特殊的命令。(6) 能量效率。为了延长传感器网络的生命周期,控制和减少传感器节点的功耗很重要。Contiki提供了一种基于软件的能量分析机制,记录每个传感器节点的能量消耗,这种机制不需要额外的硬件就能完成网络级别的能量分析。5.1.2.3Contiki事件驱动和protothread机制Contiki有两个主要机制: 事件驱动和protothread机制,前者是为了降低功耗,后者是为了节省内存。1. 事件驱动嵌入式系统常常被设计成响应周围环境的变化,而这些变化可以看成一个个事件。事件来了,操作系统处理之; 没有事件到来,就去休眠(降低功耗)。这就是所谓的事件驱动,类似于中断。在Contiki系统中,事件被分为以下3种类型: 1) 定时器事件(timer event)进程可以设置一个定时器,在给定的时间完成之后生成一个事件,进程一直阻塞直到定时器终止,才继续执行。定时器事件对于周期性的操作很有帮助,如一些网络协议等。2) 外部事件(external event)外围设备连接到具有中断功能的微处理器I/O引脚,触发中断时可能生成事件。常见的如按键中断,可以生成此类事件。这类事件发生后,相应的进程就会响应。
评论
还没有评论。