版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
LOGO初识人工智能与智能家居项目一人工智能与智能家居的结合,正逐渐改变着我们的生活方式,使家居环境变得更加智能、便捷和安全目录Contents认识人工智能任务一认识智能家居任务二人工智能在智能家居中的使用任务三任务1认识人工智能引导案例图灵测试1.1.1人工智能的概念人工智能(ArtificialIntelligence,AI)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器,该领域的主要研究内容包括:知识表示、自动推理和搜索方法、机器学习和知识获取、知识处理系统、自然语言理解、计算机视觉、智能机器人、自动程序设计等方面。1.1.1人工智能的概念人工智能通过让计算机模拟人类的思考和行为过程,实现人机交互,提高计算机的智能水平,以更好地服务于人类社会。除了计算机科学以外,人工智能还涉及信息论、控制论、自动化、仿生学、生物学、心理学、数理逻辑、语言学、医学和哲学等多门学科。人工智能的涉及面十分广泛,其应用含盖了我们生活的方方面面,如智能家居、自动驾驶、医疗诊断、金融分析等。通过模拟人类的智能,人工智能系统能够自主学习、优化决策,并在处理复杂问题时展现出超越人类的能力。1.1.2人工智能的特点1.自主性:AI系统能够在一定程度上自主地进行学习、推理和决策,而无需人类的干预和控制。2.自适应性:AI系统能够根据环境和数据的变化,调整和优化自身的模型和策略,以适应不同的任务和场景。3.智能交互:AI系统可以通过自然语言处理、语音识别和图像识别等技术,与人类进行智能交互。4.大数据处理能力:AI系统具有强大的数据处理和分析能力,可以处理大量复杂的数据。5.学习能力:AI系统通过机器学习和深度学习等技术,可以从数据中学习知识和经验,不断提高自身的性能和能力。1.1.3人工智能常用工具1.Stable-DiffusionStable-Diffusion是一款开源的AI绘画软件,是目前最火爆的“文生图”、“图生图”工具之一。其AI绘画功能如下图所示:1.1.3人工智能常用工具2.文心一言文心一言是百度推出的一款基于大语言模型的生成式AI产品,其功能类似于ChatGPT。它可以根据用户的输入,生成各种类型的文本,如诗歌、故事、对话等。文心一言目前包含以下五类落地场景:文学创作、商业文案创作、数理逻辑推送、中文理解、多模态生成。其AI绘画功能如右图所示:1.1.3人工智能常用工具2.文心一言文心一言是百度推出的一款基于大语言模型的生成式AI产品,其功能类似于ChatGPT。它可以根据用户的输入,生成各种类型的文本,如诗歌、故事、对话等。文心一言目前包含以下五类落地场景:文学创作、商业文案创作、数理逻辑推送、中文理解、多模态生成。其AI绘画功能如右图所示:1.1.4人工智能的发展历程 1956年,在达特茅斯学院举办的一次会议上,计算机专家约翰·麦卡锡提出了“人工智能”一词,并在本次会议上正式确立了AI这一术语,后来被人们看做是人工智能正式诞生的标志。人工智能的发展历程可以大致分为以下6个阶段:1.起步发展期(1956年—20世纪60年代初)人工智能概念提出后,相继取得了一批令人瞩目的研究成果,如机器定理证明、跳棋程序等,掀起人工智能发展的第一个高潮。2.反思发展期(20世纪60年代—70年代初)人工智能发展初期的突破性进展大大提升了人们派陆对人工智能的期望,人们开始尝试更具挑战性的戚源任务,并提出了一些不切实际的研发目标。然而,接二连三的失败和预期目标的落空,使人工智能的发展走入低谷。1.1.4人工智能的发展历程 3.应用发展期(20世纪70年代初—80年代中)20世纪70年代出现的专家系统模拟人类专家的知识和经验解决特定领域的问题,实现了人工智能从理论研究走向实际应用、从一般推理策略探讨转向运用专业知识的重大突破。4.低迷发展期(20世纪80年代中—90年代中)随着人工智能的应用规模不断扩大,专家系统存在的应用领域狭窄、缺乏常识性知识、知识获取困难、推理方法单一、缺乏分布式功能、难以与现有数据库兼容等问题逐渐暴露出来。1.1.4人工智能的发展历程 5.稳步发展期(20世纪90年代中—2010年)由于互联网技术的快速发展,加速了人工智能的创新研究,促使人工智能技术进一步走向实际应用。例如,1997年国际商业机器公司(简称IBM)深蓝超级计算机战胜了国际象棋世界冠军卡斯帕罗夫,2008年IBM又提出了“智慧地球”的概念。6.蓬勃发展期(2011年至今)随着大数据、云计算、物联网等新一代信息技术的发展,泛在感知数据和图形处理器等计算平台推动以深度神经网络为代表的人工智能技术飞速发展,大幅跨越了科学与应用之间的“技术鸿沟”。1.1.4人工智能的发展历程 1956人工智能起步发展期1956年达特矛斯会议,“人工智能”正式诞生专家系统知识工程五代机神经网络重生孕育期电子计算机机器翻译与NLP图灵测试计算机下棋早期神经网络反思发展期搜索式推理聊天机器人乐观思潮应用发展期
运算能力
计算复杂性
常识与推理19601974198019871993低迷发展期未达预期
削减投入200620162022稳定发展期摩尔定律统计机器学习AI广泛应用深度学习卷积神经网络循环神经网络生成对抗网络蓬勃发展期
大数据
计算能力
应用增多GPT-3Alphafold2ChatGPT1.1.4人工智能的发展历程 1.1.5人工智能的分类 人工智能是一个广泛而复杂的领域,其分类方式多种多样。根据能力水平的不同,人工智能主要分为以下几类:1.弱人工智能(WeakAI)弱人工智能也称为狭隘人工智能(NarrowAI)或应用人工智能(AppliedAI)。它只能完成某一项特定任务或者解决某一特定问题,而无法胜任其他任务。例如,能战胜象棋世界冠军的人工智能阿尔法狗,它只擅长下棋,对于其他领域的问题则无法回答。弱人工智能缺乏全面的智能和广泛的适应性。1.1.5人工智能的分类 2.强人工智能(StrongAI)强人工智能也被称为通用人工智能(ArtificialGeneralIntelligence)或全人工智能,它指的是可以像人一样胜任任何智力性任务的智能机器。强人工智能具有全面的智能,能够处理多种任务,并在不同的环境中适应变化。强人工智能包括了学习、语言、认知、推理、创造和计划,使其在非监督学习情况下处理前所未见的细节,并同时与人类开展交互式学习。强人工智能目标是够能自主思考,目前强人工智能的实现仍然面临巨大的挑战,需要更深入的研究和技术突破。1.1.5人工智能的分类 3.超人工智能(ArtificialSuperintelligence)这是人工智能发展的最高阶段,它超越了最聪明的人类大脑的智力水平。超人工智能不仅具备全面的智能,还能在多个领域展现出卓越的性能和准确性。它能够自我学习、自我优化,并在各种任务上超越人类的极限。超人工智能能够处理复杂的问题,提出创新的解决方案,并对社会、经济和文化产生深远的影响。然而,这一阶段的实现还非常遥远,需要长时间的技术积累和突破。讨论 人工智能是真正的威胁还是意外之喜?任务2认识智能家居引导案例比尔·盖茨的未来之屋1.2.1智能家居概念 智能家居是以住宅为平台,利用综合布线技术、网络通信技术、安全防范技术、自动控制技术、音视频技术将家居生活有关的设施集成,构建高效的住宅设施与家庭日程事务的管理系统,从而提升家居安全性、便利性、舒适性、艺术性,并实现环保节能的居住环境。智能家居通过物联网技术将家中的各种设备,如音视频设备、照明系统、窗帘控制、空调控制、安防系统、数字影院系统、影音服务器、影柜系统、网络家电等连接到一起,提供家电控制、照明控制、电话远程控制、室内外遥控、防盗报警、环境监测、暖通控制、红外转发以及可编程定时控制等多种功能和手段。1.2.1智能家居概念 智能家居的发展不仅推动了家庭内部设备的互联互通,还促进了家庭成员之间的信息交流和互动,为智慧社区的建设提供了有力支撑。智慧社区是智慧城市的重要组成部分,智慧城市是智能家居和智慧社区发展的宏观背景和最终目标。智能家居推动了家庭生活的智能化,智慧社区提升了社区管理和服务水平,而智慧城市则通过整合这些资源,实现了城市整体的智能化和可持续发展。1.2.2智能家居的起源与发展 1984年在美国出现了第一幢“智能建筑”—“都市办公大楼”(CityPlaceBuilding)。1984年1月,美国联合科技公司将建筑设备信息化、整合化概念应用于美国康涅狄格州哈特福特市的一幢旧金融大厦进行改建时,采用计算机系统对大楼的空调、电梯、照明等设备进行监测和控制,并提供语音通信、电子邮件和情报资料等方面的信息服务。从此也揭开了全世界争相建造智能家居的序幕。智能家居发展大致经历了以下几个阶段:1.2.2智能家居的起源与发展 1.萌芽起步阶段(2000年之前)这个时期智能家居在国内是一个新生事物,行业和企业仍处于对智能家居概念熟悉、产品认知的阶段,还未出现专业的智能家居生产厂商,仅出现少数代理和销售国外智能家居产品的公司,从事进口零售业务,其产品多数销售给在我国居住的欧美用户。2.开创发展阶段(2000年-2010年)此阶段智能家居的概念在国内逐步进入企业和家庭,先后成立了五十多家智能家居生产研发企业,智能家居的市场逐渐启动。2005年以后,由于技术等因素的制约和智能家居企业的快速成长所导致的激烈竞争,智能家居行业遭遇了市场的调整,部分智能家居生产企业退出市场,部分企业缩减了市场规模。与此同时,国外的智能家居品牌却逐步进入中国市场。这一阶段经历了从第一波快速发展后进入稳定发展时期。1.2.2智能家居的起源与发展 3.融合发展阶段(2010年-至今)这一阶段的到来与物联网、移动互联网、云计算、大数据以及人工智能等新技术发展融合所造就的新一波信息化发展有关。2011年11月,工业和信息化部发布物联网“十二五”发展规划,把智能家居列入9个重点示范应用工程,在这之后各种利好政策接踵而来。在这一阶段,国内大批科技企业投入智能家居市场,如海尔、小米、华为等。智能家居产品也逐渐脱离智能硬件零散化的智能控制,开始与云计算、大数据库以及人工智能等紧密结合,逐步向平台和生态转变,智能家居向着更加智能的方向发展。1.2.2智能家居的起源与发展 4.成熟阶段(预计到2030年之后)智能家居所强调的智能需要依赖信息化技术如人工智能技术、机器人技术、物联网技术、大数据技术的发展和成熟。而业界认为,这些技术的真正成熟,有可能在2030年之后。因此,智能家居的完全成熟发展与应用或将在2030年左右真正实现。未来智能家居市场将呈现以下趋势,一是全屋智能化,实现家庭环境的全面智能化管理;二是个性化定制,根据不同家庭的需求和偏好进行个性化定制;三是跨界融合,智能家居将与更多领域进行跨界融合,创造更多的应用场景和价值。1.2.3智能家居的系统构架及组成 1.系统构成智能家居系统由硬件设备和软件系统构成。智能家居需要解决的问题较多,主要涉及家庭安防保护、环境调节、智能照明管理、健康监测、家电智能控制、能源智能计量、应急服务、家庭网络等多个方面。而一个典型的智能家居系统主要包括家电控制、灯光控制、窗帘控制、环境(温湿度)控制、节能控制、娱乐控制、安防控制、健康监控、车辆控制、家庭灌溉控制等,如图所示为典型智能家居系统构成图。1.2.3智能家居的系统构架及组成 2.硬件设备智能家居中智能硬件种类较多,根据具体需要实现的功能,会涉及多个相关的智能硬件设备,如图所示。比如安防控制系统可能涉及到无线智能锁、无线窗磁门磁、无线智能抽屉锁、无线红外探测器、防燃气泄漏的无线可燃气探测器、防火灾损失的无线烟雾火警探测器、防围墙翻越的太阳能无线电子栅栏、防漏水的无线漏水探测器、无线车库门控制器等。1.2.3智能家居的系统构架及组成
3.软件系统智能家居的软件系统是智能家居实现智能化的关键组成部分,智能家居的软件按部署场景可以分为嵌入式软件、智能手机端的应用软件、后台服务器软件三个部分,如图所示。1.1.5人工智能的分类 3.超人工智能(ArtificialSuperintelligence)这是人工智能发展的最高阶段,它超越了最聪明的人类大脑的智力水平。超人工智能不仅具备全面的智能,还能在多个领域展现出卓越的性能和准确性。它能够自我学习、自我优化,并在各种任务上超越人类的极限。超人工智能能够处理复杂的问题,提出创新的解决方案,并对社会、经济和文化产生深远的影响。然而,这一阶段的实现还非常遥远,需要长时间的技术积累和突破。智能家居的特点实时性精细化多样化智能化AECB1.2.4智能家居的特点和优势
1.智能家居的特点D包容性1.2.4智能家居的特点和优势 2.智能家居的优势实时性AB精细化智能化多样化包容性CDE1.2.5智能家居的相关技术 1.网络通信技术网络通信技术是指通过计算机、通信网及网络设备对语音、数据、图像等信息进行采集、存储、处理和传输等,使信息资源达到充分共享的技术。2.自动控制技术自动控制技术是控制论的技术实现应用,是通过具有一定控制功能的自动控制系统,来完成某种控制任务,保证某个过程按照预想进行,或者实现某个预设的目标。从控制的方式看,自动控制系统有闭环和开环两种。1.2.5智能家居的相关技术 3.物联网技术物联网是实现人与人、人与物、物与物全面互联的网络。物联网技术(InternetofThings,IoT)是信息科技产业的第三次革命。物联网是指通过信息传感设备,按约定的协议,将任何物体与网络相连接,物体通过信息传播媒介进行信息交换和通信,以实现智能化识别、定位、跟踪、监管等功能。4.人工智能技术随着人工智能技术的发展,打破了大多以孤立的单品形式存在的局面,完善了方案呈现碎片化的特征,实现了品牌之间互联互通,形成完整的智能家居产品生态,改变之前智能家居产品弱联动的短板,使家居产品更加智能化和人性化。讨论 智能家居为我们的生活带来了哪些便利?它的发展具有什么意义?任务3人工智能在智能家居中的应用引导案例老年伴侣机器人1.3.1人工智能在智能家居中的应用 人工智能是全球公认的尖端领域和创新前沿,有着超乎想象的广阔应用前景。对话式人工智能操作最主要的场景之一就是智能家居,可广泛应用于音箱、电视、手机、机器人等领域。随着对话式AI生态系统的不断丰富,对话式AI在智能家居领域的应用还将进一步拓展和深化。未来,对话式AI可能会与更多的家居设备和服务进行集成,为用户提供更加个性化、智能化的家居体验。全球范围内,人工智能在家居领域主要有以下几大典型应用。1.3.1人工智能在智能家居中的应用 1.智能家电通过人工智能技术丰富家用电器的功能,对家电进行智能化升级,为各种语音类智能辅助设备提供智能服务的人工智能应用模式是目前智能家居市场最为常见的。以下为智能家电中常用语音识别技术的应用:(1)语音控制家电(2)语音助手(3)语音识别安全1.3.1人工智能在智能家居中的应用 2.家庭安全和检测通过利应用人工智能传感器技术保障用户自身和家庭的安全,对用户自身健康、幼儿和宠物进行监测,此类型的人工智能应用模式数量最多,如门禁系统、人脸识别系统、入侵报警系统、视频监控系统及智能安防系统等就属于这一类的应用。其中,智能安防系统常见产品包括:智能门锁、监控摄像头、门磁、烟雾报警器、燃气探测器等。1.3.1人工智能在智能家居中的应用 3.智能控制平台通过开发完整的智能家居控制系统或控制器,实现智能化控制室内的门、窗和各种家用电子设备,使居住者能够有更好的家居体验。此类型的人工智能应用模式是各大科技公司在智能家居领域角逐的主赛场。在智能家居领域中,人工智能可以通过学习和分析家庭成员的行为和喜好,提供定制化服务。比如,智能家居系统可以根据每个人的作息时间和喜好,自动调节灯光和音乐,提供更加舒适的家居环境。而且,智能家居系统还可以通过学习每个家庭成员的用电习惯,优化能源消耗,实现能源的高效利用。1.3.1人工智能在智能家居中的应用 3.智能控制平台通过开发完整的智能家居控制系统或控制器,实现智能化控制室内的门、窗和各种家用电子设备,使居住者能够有更好的家居体验。此类型的人工智能应用模式是各大科技公司在智能家居领域角逐的主赛场。在智能家居领域中,人工智能可以通过学习和分析家庭成员的行为和喜好,提供定制化服务。比如,智能家居系统可以根据每个人的作息时间和喜好,自动调节灯光和音乐,提供更加舒适的家居环境。而且,智能家居系统还可以通过学习每个家庭成员的用电习惯,优化能源消耗,实现能源的高效利用。1.3.1人工智能在智能家居中的应用 4.机器人人工智能在家居机器人中的成熟形态包括陪护、保洁、对话聊天等场景,目前市场上不少企业也开始试水功能更丰富的智能家居机器人,比如家庭健康管理远程问诊机器人、教育陪伴私人管家智能服务机器人等就属于这一类。如图所示为家庭健康管理远程问诊机器人。1.3.2人工智能在智能家居中的应用发展 从20世纪80年代世界上最早的聊天机器人—“阿尔贝特”出现,到QQ、MSN中出现的小机器人,再到2008年的一个让12个陌生人中的3个相信“它是人”的电脑程序发布,然后到Siri实现对智能语音识别的应用,再到谷歌的无人驾驶汽车,人们对人工智能的探索与应用从来没有停止。以下为人工智能技术发展的三个阶段:1.3.2人工智能在智能家居中的应用发展 第一个阶段是计算智能,这一阶段主要依据电脑的一些强大的存储和运算资源在某些任务上对人的一些行为进行模拟。第二个阶段是感知智能,即让计算机对人的各个感官进行模拟,让计算机真正实现能听会说,能听会看,这方面包括语音识别、图像识别以及基于计算机视觉的自动驾驶汽车等。第三个阶段是理解智能,它除涵盖上述两个阶段的所有技术功能外,还包括了让计算机实现对知识的组织、整理、灵活运用、联想推理等,让机器真正能理解、会思考。1.3.2人工智能在智能家居中的应用发展 基于人工智能发展的三个阶段,人工智能技术在智能家居中的应用同样分为三个阶段。第一个阶段是利用互联网技术实现家居的联网操作;第二个阶段是随着物联网技术的发展实现家居物体的互联互通,做到家居自动化;第三个阶段是真正的人工智能阶段,此时人与物之间实现完全的人机交互,机器能够理解人想做的事情,并执行人想做的事情,机器能够全面地为我们服务。1.3.2人工智能在智能家居中的应用发展 目前智能家居的发展还处于初级阶段,只是实现了自动化和初步的智能化,这一时期的智能家居还只能说是智能硬件与家居产品的一种物理结合。最近几年,随着人工智能的发展,人们在感知智能上取得一些成就,包括人脸识别、图像识别、人工神经网络等。通过计算模型和大量数据生成的网络结构,对人的感知系统进行有效的模拟,使机器能够从语音信号里面识别各种不同的因素,从图像里面识别不同的物体。1.3.3人工智能在智能家居中的应用前景 随着人工智能的不断发展和应用,智能家居领域也迎来了巨大的发展机遇。人工智能技术的应用为智能家居带来了更加智能化、便捷化、个性化的体验,推动了智能家居行业向更高水平发展。人工智能在智能家居中的应用前景体现以下几个方面:1.3.3人工智能在智能家居中的应用前景 随着人工智能的不断发展和应用,智能家居领域也迎来了巨大的发展机遇。人工智能技术的应用为智能家居带来了更加智能化、便捷化、个性化的体验,推动了智能家居行业向更高水平发展。人工智能在智能家居中的应用前景体现以下几个方面:1.3.3人工智能在智能家居中的应用前景 1.智能家居系统的智能化程度通过人工智能技术,智能家居系统将能够更加智能地识别和理解用户的需求,从而实现更加智能、个性化的服务。例如,通过语音识别和自然语言处理技术,用户可以通过语音指令控制智能家居设备,实现更加便捷的家居控制。1.3.3人工智能在智能家居中的应用前景 2.能源管理人工智能将为智能家居带来更加智能的能源管理。通过分析用户的用电习惯和能源消耗数据,智能家居系统可以智能地调整能源使用,优化能源消耗。例如,智能家居可以根据家庭成员的作息时间和用电习惯自动调节照明和空调等设备的使用,实现能源的智能管理和节约。1.3.3人工智能在智能家居中的应用前景 3.智能互联通过人工智能实现智能家居设备之间的智能互联。通过人工智能技术,不同的智能家居设备可以实现智能互联和协同工作。例如,智能家庭影院系统可以与智能音响、智能灯光系统等设备进行智能联动,实现更加沉浸式的家庭娱乐体验。人工智能在智能家居中的应用前景非常广阔。通过人工智能技术,能够实现智能化、便捷化、个性化的智能家居体验,提升用户的生活品质。随着人工智能技术的不断创新和智能家居市场的不断发展,相信未来智能家居中人工智能的应用将会得到更大的突破和拓展。思考 1.人工智能的发展经历了哪几个阶段?2.什么是智能家居?3.智能家居系统构成包括哪些部分?4.智能家居有哪些特点?5.人工智能在智能家居领域的典型应用有哪些?LOGO谢谢大家的聆听结束如果有什么需要明天做的事,最好现在就开始LOGO基于lora技术的地库智能照明系统设计项目二一帆风顺的人生,谁都可以说自己是优秀的船主。只有风暴来临的时候才能分辨谁优谁劣。目录Contents了解lora技术任务一开发环境搭建任务二地库智能照明系统原理图设计任务三智能照明系统程序设计任务四任务1了解lora技术引导案例基于lora技术的节能管理系统唯传科技基于lora技术的低碳节能管理系统,能够实时掌握能源和损耗数据,有效侦测浪费情况的发生,提升能源利用率;基于传感器集中收集的海量数据,实现智能分析与控制,促进节能增效;整合各个系统的数据资源,并以数据为支撑,实现节能增效、高效管理。2.1.1LoRa概念LoRa是LongRange的简称,作为LPWAN(低功耗广域网)通信技术之一,是美国升特(Semtech)公司采用和推广的一种基于扩频调制技术(ChirpSpreadSpectrum)的超远距离无线传输方案。这一方案改变了以往关于传输距离与功耗的折中考虑方式,为用户提供一种简单的能实现远距离、长电池寿命、大容量的系统,进而扩展传感网络。目前,LoRa主要在全球免费频段运行,包括433、868、915MHz等。2.1.2LoRaWANLoRaWAN由LoRa联盟开发,该联盟于2015年上半年由思科(Cisco)、IBM和升特(Semtech)等多家厂商共同发起创立,拥有500多个成员,其中包括行业应用方案商、终端芯片方案商、基站方案商、云平台方案商、网络安全方案商以及电信运营商等。LoRa联盟制定了LoRaWAN标准规范,主要完成MAC层规范以及对物理层相关参数的约定。LoRa联盟官方白皮书《whatisLoRaWAN》中指出:LoRaWAN是为LoRa远距离通信网络设计的一套通讯协议和系统架构。2.1.2LoRaWANLoRa联盟对LoRaWAN的官方定义是:LoRaWAN规范是一种低功耗、广域(LPWA)网络协议,旨在将电池供电的“事物”无线连接到区域、国家或全球网络中的互联网,并针对关键的物联网(IoT)要求,例如双向通信、端到端安全、移动性和本地化服务。LoRaWAN设计了一套LoRaMAC协议,包括ClassA,B,C三个子选项,分别对应三种终端类型(低功耗,功耗响应折中,实时响应),适用于不同应用场景。2.1.2LoRaWANLoRaWAN协议层次图如图所示。2.1.3LoRa的网络架构LoRaWAN的网络实体分为四个部分:终端节点、网关、LoRaWAN服务器和应用服务器。◆EndNode:终端节点一般是各类传感器,进行数据采集,开关控制等。◆Gateway:LoRa网关,对收集到的节点数据进行封装转发。◆NetworkServer:网络服务器主要负责上下行数据包的完整性校验。◆ApplicationServer:应用服务器主要负责OTAA设备的入网激活,应用数据的加解密。◆CustomerServer:用户服务器从AS中接收来自节点的数据,进行业务逻辑处理,通过AS提供的API接口向节点发送数据。2.1.3LoRa的网络架构LoRa联盟官方白皮书中的网络架构图2.1.4LoRa的特点1.广覆盖能力Lora技术在城区环境下信号传播距离为3Km,农村空旷区域能达到30Km,信号穿墙能力能够达到穿越12堵墙2.极低功耗对于LoRa燃气表,2小时发包一次,采用SF9模式时,4节5号电池可以使用7.5年。3.低成本大致计算,LoRa终端芯片成本7元、模组成本35元,基站成本小于7000元。综合计算,LoRa技术的TCO成本大概是公网的1/10左右。2.1.4LoRa的特点4.大连接能力LoRa网关芯片支持多路多SF并发接收,目前1301单芯片可以并发接收8路信号。例如,在单网关8个信道上行,终端每小时发一个包,无下行,包长30字节情况下,单网关上行的最大容量为8万个终端。5.扩频抗干扰能力LoRa信号采用扩频技术发送,具有极强的抗干扰能力,信号比噪音弱100倍时也能检出。6.自适应速率技术LoRa网络可以基于信号接收强度自动调整发射功率和扩频因子,控制信号传播质量。2.1.5LoRa技术要点一般说来,传输速率、工作频段和网络拓扑结构是影响传感网络特性的三个主要参数。传输速率的选择将影响系统的传输距离和电池寿命;工作频段的选择要折中考虑频段和系统的设计目标;而在FSK系统中,网络拓扑结构的选择是由传输距离要求和系统需要的节点数目来决定的。LoRa融合了数字扩频、数字信号处理和前向纠错编码技术,拥有前所未有的性能。此前,只有那些高等级的工业无线电通信会融合这些技术,而随着LoRa的引入,嵌入式无线通信领域的局面发生了彻底的改变。2.1.6LoRa与常见无线通信技术的区别目前,常见的无线通信技术包括3G/4G/5G、NB-IoT、LoRa、WiFi、蓝牙、ZigBee等,每种无线技术都只能适应特定通信场景,需要配合使用才能构建高效率、低成本的网络。以现代化的军事组织类比,其单兵武器都是配合使用,才能达到最佳火力配制。讨论 LoRa技术适用于哪些应用场景?任务2lora开发环境搭建引导案例基于LoRa技术的地库智能照明系统某大型商业综合体的地下车库存在照明效率低、能耗高、维护困难等问题。为了改善这些问题,该商业综合体决定采用基于LoRa技术的地库智能照明系统。其解决方案为:在车库内安装光照传感器和红外传感器,实时采集车库内的光照强度和车辆及人员活动情况。通过LoRa节点将传感器数据发送给控制模块。控制模块根据接收到的数据,自动调节灯具的开关、亮度和色温,以提供舒适、安全的照明环境。为实现以上方案,需选择合适硬件模块,如用于编写和调试控制程序的开发板、LoRa模块、红外传感器、光照传感器等。并且需要搭建好开发环境,如MDK5、ISP串口烧写程序等。2.2.1KEILMDK5安装 KEILMDK5是一款专为微控制器应用而设计的一个适用于各种基于ArmCortex-M的微控制器器件的完整软件开发环境,该软件不仅易学易用,而且功能强大,能够满足大多数嵌入式应用开发。在被ARM公司收购后,推出了MDKARM版本,专注于为ARM系列芯片编程提供一个集成的C/C++开发环境,并提供一系列工具来帮助开发者编译、调试代码。2.2.1KEILMDK5安装 KEILMDK5具有汇编器、链接器和高度优化的运行库的ArmC/C++编译器,这些库专为优化代码大小和性能而量身定制,这样能更好的满足使用需求。KEILMDK5安装步骤如下:1.左键双击KEILMDK5安装程序,安装程序如图所示。2.2.1KEILMDK5安装 2.在弹出的WelcometoKeilMDK-ARM对话框中点击Next按钮,如图所示。2.2.1KEILMDK5安装 3.在LicenseAgreement对话框中点击勾选复选框,再点击Next按钮,如图所示。2.2.1KEILMDK5安装 4.在FolderSelection对话框中点击Browse按钮选择安装路径,再点击Next按钮,如图所示。2.2.1KEILMDK5安装 5.在CustomerInformation对话框中填写相关用户信息,再点击Next按钮,如图所示。2.2.1KEILMDK5安装 6.如图2-10所示等待安装完成,并点击Finish,结束安装,如图所示。2.2.1KEILMDK5安装 7.左键双击STM32F1支持包,STM32F1支持包如下图所示。2.2.1KEILMDK5安装 8.在弹出的WelcometoKeilPackUnzip对话框中点击Next按钮,如下图所示。2.2.1KEILMDK5安装 9.等待安装完成,点击Finish,结束安装,如下图所示。2.2.2创建基于STM32固件库的工程模板 1.认识STM32固件库STM32有数百个寄存器,对于初学者来说,若想很快的掌握每个寄存器的用法,并能正确使用,是非常困难的。因此,意法半导体公司(ST公司)为了方便用户开发程序,提供了一套丰富的STM32固件库。STM32固件库可将寄存器的底层操作都封装起来,提供一整套接口(API)供开发者调用。在大多数场合下,开发人员不需要知道操作的是哪个寄存器,只需要知道调用哪些函数即可。2.2.2创建基于STM32固件库的工程模板 STM32固件库是根据CMSIS标准设计的,CMSIS分为如下3个基本功能层:核内外设访问层:Arm公司提供的访问,定义处理器内部寄存器地址以及功能函数;中间件访问层:定义访问中间件的通用API,是由Arm公司提供的;外设访问层:定义硬件寄存器的地址以及外设的访问函数。2.2.2创建基于STM32固件库的工程模板 另外,CMSIS还对各个外设驱动文件的文件名字规范化、函数的名字规范化等一系列规定。例如GPIO_ResetBits函数,这个函数名字也不能随便定义,是要遵循CMSIS规范的。又如,在我们使用STM32芯片时,首先要进行系统初始化,CMSIS就规定系统初始化函数名必须为SystemInit,所以各个芯片公司写自己的库函数时,就必须用SystemInit对系统进行初始化。2.2.2创建基于STM32固件库的工程模板 2.安装STM32固件库首先登录ST公司官网,下载STM32固件库,本书使用的是3.6版本的固件库。然后将STM32F10x_StdPeriph_Lib_V3.6.0压缩包进行解压,解压后的目录下包含了STM32固件库的全部文件,如右图所示。STM32固件库主要有Libraries和Project关键子目录。其中Libraries子目录有CMSIS和STM32F10x_StdPeriph_Driver子目录,这2个子目录包含了固件库核心的所有子文件夹和文件,主要包含大量的头文件、源文件和系统文件,是开发必须使用的。CMSIS子目录存放的是启动文件;STM32F10x_StdPeriph_Driver子目录存放的是STM32固件库源码文件,inc子目录存放的是stm32f10x_xxx.h头文件,src子目录存放的是stm32f10x_xxx.c固件库源码文件。2.2.2创建基于STM32固件库的工程模板 Project子目录里面有STM32F10x_StdPeriph_Examples和STM32F10x_StdPeriph_Template子目录。STM32F10x_StdPeriph_Examples子目录存放的是ST官方提供的固件实例源码,包含了几乎所有STM32F10x外设的使用详细源代码;STM32F10x_StdPeriph_Template子目录存放的是工程模板。接下来着重介绍一下STM32固件库Libraries子目录下的几个重要文件。2.2.2创建基于STM32固件库的工程模板 (1)core_cm3.c和core_cm3.h这2个文件位于\Libraries\CMSIS\CM3\CoreSupport子目录下面,分别是内核访问层的源文件和头文件,提供进入M3内核接口。是由Arm公司提供的CMSIS核心文件,对所有CM3内核的芯片都一样,永远都不需要修改这个文件。(2)STM32F10x子目录中的3个文件system_stm32f10x.c、system_stm32f10x.h以及stm32f10x.h文件,是外设访问层的源文件和头文件。2.2.2创建基于STM32固件库的工程模板 system_stm32f10x.c文件和对应的system_stm32f10x.h头文件是设置系统以及总线时钟。这里面有一个非常重要的SystemInit()函数,这个函数在系统启动时都会调用,用来设置系统的整个时钟系统。这也就是不需要用户去配置时钟,程序就能运行的原因。stm32f10x.h头文件相当重要,主要包含了STM32F10x系列所有外设寄存器的定义、位定义、中断向量表、存储空间的地址映射等。打开这个文件就可以看到,里面有非常多的结构体以及宏定义。2.2.2创建基于STM32固件库的工程模板 (3)启动文件在STM32F10x子目录下面还有一个startup子目录,这个子目录里面放8个启动文件,是以startup开头的“.s”文件。不同容量(容量是指FLASH的大小)的芯片,其启动文件也不一样。在stm32f103系列芯片中,主要使用其中3个启动文件:startup_stm32f10x_ld.s:小容量产品,FLASH容量16KB-32KB;startup_stm32f10x_md.s:中等容量产品,FLASH容量64KB-128KB;startup_stm32f10x_hd.s:大容量产品,FLASH容量256KB-512KB。2.2.2创建基于STM32固件库的工程模板 若采用STM32F103R6芯片,其容量FLASH是32K,是属于小容量产品,可选择startup_stm32f10x_ld.s启动文件。那么,启动文件到底有什么作用呢?启动文件主要是进行堆栈之类的初始化、中断向量表以及中断函数定义,还要引导进入main函数。2.2.2创建基于STM32固件库的工程模板 (4)STM32F10x_StdPeriph_Template子目录中的3个关键文件STM32F10x_StdPeriph_Template子目录下有3个关键文件:stm32f10x_it.c、stm32f10x_it.h和stm32f10x_conf.h。stm32f10x_it.c和stm32f10x_it.h是外设中断函数文件,是用来编写中断服务函数,用户可以相应的加入自己的中断程序代码。stm32f10x_conf.h是固件库配置文件,有很多#include,在建立工程时,可以注释掉一些不用的外设头文件,来选择固件库所使用的外设。2.2.2创建基于STM32固件库的工程模板 3.新建工程模板目录在这里,主要是建立基于V3.5版本固件库的工程模板目录。(1)新建一个“STM32_Project”工程模板目录,该目录作为基于STM32固件库的工程模板目录。(2)在“STM32_Project”目录下,新建USER、CORE以及STM32F10x_FWLib三个子目录,如下图所示。2.2.2创建基于STM32固件库的工程模板 STM32_Project工程模板目录2.2.2创建基于STM32固件库的工程模板 lCORE用来存放核心文件和启动文件;lSTM32F10x_FWLib用来存放ST官方提供的库函数源码文件;lUSER除了用来放工程文件外,还用来存放主函数文件main.c、以及system_stm32f10x.c、STM32F10x.s等文件。(3)把“Libraries\STM32F10x_StdPeriph_Driver”下面的src和inc子目录复制到子目录STM32F10x_FWLib下面。其中,src存放的是固件库的“.c”文件,inc存放的是其对应的“.h”文件。每个外设都对应一个“.c”文件和一个“.h”头文件。(4)把固件库里相关的启动文件复制到CORE里面。把“Libraries\CMSIS\CM3\CoreSupport”下面的core_cm3.c和core_cm3.h文件复制到CORE下面;把“……\CM3\DeviceSupport\ST\STM32F10x\startup\Arm”下面的startup_stm32f10x_ld.s文件复制到CORE下面。startup_stm32f10x_ld.s(小容量);startup_stm32f10x_md.s(中容量);startup_stm32f10x_hd.s(大容量)的启动文件。2.2.2创建基于STM32固件库的工程模板 3.新建工程模板目录在这里,主要是建立基于V3.5版本固件库的工程模板目录。(1)新建一个“STM32_Project”工程模板目录,该目录作为基于STM32固件库的工程模板目录。(2)在“STM32_Project”目录下,新建USER、CORE以及STM32F10x_FWLib三个子目录,如下图所示。2.2.2创建基于STM32固件库的工程模板 (5)把固件库里相关的文件复制到USER里面。把“Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x”下面的3个文件stm32f10x.h,system_stm32f10x.c,system_stm32f10x.h,复制到我们的子目录USER下面。把“Project\STM32F10x_StdPeriph_Template”下面的3个文件stm32f10x_conf.h,stm32f10x_it.c,stm32f10x_it.h复制到子目录USER下面。通过以上5个步骤,我们就可以把需要的官方固件库相关文件,复制到了工程目录模板“STM32_Project”下面。在以后的任务中,我们就可以直接复制工程模板目录,然后修改需要的名字即可。2.2.2创建基于STM32固件库的工程模板 4.新建KeilμVision4工程模板(1)新建工程运行KeilμVision5,进入Keil5集成开发环境。单击Project->NewuVisionProject,然后把工程文件保存到“STM32_Project工程模板”下面,工程名为“STM32_Project”,如右图所示。2.2.2创建基于STM32固件库的工程模板 在弹出选择芯片的对话框中,选择STMicroelectronics下面的STM32F103R6芯片,如下图所示。2.2.2创建基于STM32固件库的工程模板 (2)新建组并添加文件新建一个主文件main.c,并保存在USER目录下。通过“ManageComponents”或快捷图标
,打开“Components”;修改“ProjectTargets”栏下的名称为“STM32_Project”;先删除“Groups(中间栏)”栏下的“SourceGroup1”,然后通过单击新建按钮
(也可以通过双击下面的空白处实现),新建USER、CORE和STM32F10x_FWLib三个组,如下图所示。2.2.2创建基于STM32固件库的工程模板 2.2.2创建基于STM32固件库的工程模板 向USER、CORE和STM32F10x_FWLib组里添加我们需要的文件。先选中STM32F10x_FWLib组,通过AddFiles按钮,把工程目录的STM32F10x_FWLib/src子目录里面的所有文件都添加到“Files列表”栏下,如下图所示。2.2.2创建基于STM32固件库的工程模板 用同样的方法,添加CORE子目录里面的core_cm3.c和startup_stm32f10x_ld.s文件到CORE组里。添加USER目录里面的main.c、stm32f10x_it.c和system_stm32f10x.c文件到USER组里。说明:把所有外设的库文件都添加进来了,为后面使用方便,不用每次添加,这样做的坏处就是工程太大,编译起来速度慢。若只用了GPIO,可以只添加stm32f10x_gpio.c,其他的可以不用添加。2.2.2创建基于STM32固件库的工程模板 5.工程配置与编译(1)单击工具栏的
按钮,弹出“工程配置”对话框。选择C/C++选项,添加所要编译文件的路径,此步骤非常重要,否则编译会出现错误。单击IncludePaths最右边的方块按钮,弹出“FolderSetup”对话框,把STM32F10x_FWLib\inc、CORE和USER三个子目录都添加进去,此操作是设置编译器的头文件包含路径。2.2.2创建基于STM32固件库的工程模板 设置编译器的头文件包含路径如下图所示。2.2.2创建基于STM32固件库的工程模板 在这里还需要在C/C++选项卡配置界面中,把“STM32F10X_LD,USE_STDPERIPH_DRIVER”填写到Define输入框里,如下图所示。2.2.2创建基于STM32固件库的工程模板 这一步是为了配置一个全局的宏定义变量,因为固件库中的库函数在配置和选择外设时,是通过宏定义来选择的;如果不配置宏定义变量,工程编译将会出错。如果使用的是中容量芯片,则将STM32F10X_LD修改为STM32F10X_MD;若使用大容量芯片,则修改为STM32F10X_HD。(2)单击工具栏的
按钮,弹出“工程配置”对话框。选择C/C++选项,选择Output选项,先选中“GreateHEXFile”选项;再单击“SelectFolderforObjects…”按钮,在弹出的对话框中选中“OBJ”子目录,单击“OK”按钮。以后工程编译的HEX文件以及垃圾文件就会放到“OBJ”子目录里面,保持了工程简洁不乱。(3)完成工程配置后,需要对工程进行编译。单击工具栏的Rebuild编译按钮,对工程进行编译。若编译发生错误,要进行分析检查,直到编译正确。说明:第一次编译时,需Rebuild编译。Rebuild是不管工程的文件有没有编译过,都会对工程中的所有文件重新进行编译生成可执行文件,因此时间较长。若只编译工程中上次修改的文件时,只需Build编译即可。2.2.2创建基于STM32固件库的工程模板 设置编译器的头文件包含路径如下图所示。2.2.2创建基于STM32固件库的工程模板 任务3地库智能照明系统原理图设计引导案例基于LoRa技术的地库智能照明系统电路设计地库智能照明系统采用先进的传感技术和智能控制策略,实现对地下车库照明设备的智能化管理。该系统通过光敏传感器、人体红外传感器等多种传感器获取环境信息,并结合MCU(微控制器)的最小系统电路进行数据处理,最终通过驱动电路控制LED灯的亮度,实现节能、舒适、安全的照明效果。其系统电路包括:1.光照检测电路2.人体检测电路3.MCU最小系统电路4.驱动电路5.电源电路本设计中,在硬件选型过程中综合考虑多个因素,以确保系统的可靠性、稳定性和经济性,以下为关键硬件选型:1.LoRa通信模块考虑模块的通信距离、功耗、数据传输速率和可靠性,选择符合LoRaWAN标准的通信模块,确保与其他LoRa设备的兼容性,根据系统的实际需求,选择深圳大夏龙雀科技有限公司的DX-LR01模块。2.中央控制器考虑控制器的输入输出接口数量、类型和功能,确保满足系统需求;考虑控制器的可扩展性和灵活性,以便后续系统升级和扩展;选择性能稳定、处理能力强的STM32F107芯片作为中央控制器。2.3.1硬件选型 本设计中,在硬件选型过程中综合考虑多个因素,以确保系统的可靠性、稳定性和经济性,以下为关键硬件选型:1.LoRa通信模块考虑模块的通信距离、功耗、数据传输速率和可靠性,选择符合LoRaWAN标准的通信模块,确保与其他LoRa设备的兼容性,根据系统的实际需求,选择深圳大夏龙雀科技有限公司的DX-LR01模块。2.中央控制器考虑控制器的输入输出接口数量、类型和功能,确保满足系统需求;考虑控制器的可扩展性和灵活性,以便后续系统升级和扩展;选择性能稳定、处理能力强的STM32F107芯片作为中央控制器。2.3.1硬件选型 3.光敏电阻考虑传感器的测量精度和稳定性,确保能够准确反映地下车库的光照条件,选择具有高灵敏度、宽测量范围和快速响应时间的5528光敏电阻作为光照检测电路核心元件。4.红外传感器考虑传感器的检测范围、灵敏度、响应时间和抗干扰能力,根据实际需求和预算,选择适合的红外传感器、雷达传感器或其他类型的人体活动传感器,如HC-SR501热释红外传感器、RCWL-0513微波雷达感应探测器等。2.3.1硬件选型 2.3.2原理图设计 1.中央控制器模块中央控制器选用STM32F107VCT6芯片。STM32F107VCT6是STMicroelectronics公司生产的STM32F1系列微控制器(MCU)中的一员。STM32F1系列芯片基于ARMCortex-M3内核,具有高性能、低成本和低功耗的特点。STM32F107提供了相对较高的Flash和RAM容量,以及丰富的外设接口,适合于各种嵌入式应用。中央控制器模块主要功能为:采集人体移动信号、光照强调信号,接收来自LoRa通信模块的数据,并根据预设的逻辑算法进行决策,控制LED驱动电路,可采用PWM技术实现LED灯的亮度调节。中央控制器模块包含STM32F107VCT6最小系统电路,led指示灯及按键电路,外部接口电路。2.3.2原理图设计 中央控制器模块包含STM32F107VCT6最小系统电路:2.3.2原理图设计 led指示灯及按键电路:2.3.2原理图设计 外部接口电路:2.3.2原理图设计 2.LoRa通信模块LoRa通信模块采用深圳大夏龙雀科技有限公司的DX-LR01模组,集成LoRa无线通信技术,可以通过串口将传感器数据发送到中央控制器。DX-LR01是一款低功耗LoRa模组,是深圳大夏龙雀科技有限公司为智能无线数据传输而打造,采用国产ASR6601SOC芯片,芯片内部集成了SUb1GHz的射频收发机、ArmChinaSTAR-MC1微处理器。2.3.2原理图设计 DX-LR01特点如下:
ArmChinaSTAR-MC1架构32位ARMSTAR内核,最高主频48MHz高功率PA,超大输出功率:+22dBm最大接收灵敏度:-138dBm支持UART,I2C,I2S,LPUART,SSP,QSPI等接口工作电压:3V-3.7V(典型值:3.3V)支持工作频率范围:150-960MHZ空旷可视距离可到8km(仅供参考,实际距离以实测为准)城市距离可到3.8km(仅供参考,实际距离以实测为准)2.3.2原理图设计 LORA通信模块,包含DX-LR01模块,复位电路,天线接口,电源指示灯电路,其电路如下图所示。2.3.2原理图设计 3.光敏传感器电路光敏传感器电路利用光敏电阻(光感电阻)作为光照检测元件,将光照强度转换为电阻值变化。电阻值变化通过适当的电路转换为电压信号,供后续电路或MCU读取。电路包含5528光敏电阻,LM393模块(双电压比较器集成电路),开关指示灯电路,如下图所示。其中DO接口为开关量输出,AO接口为模拟量输出。2.3.2原理图设计 4.人体活动检测电路人体活动检测电路使用热释红外传感器及微波雷达传感器检测人体活动。热释红外传感器中的被动式热释电红外探头以探测人体辐射为目标,人体发射的10UM左右的红外线通过菲湿尔滤光片增强后聚集到红外感应源上,从而产生电信号。微波雷达感应器探头是以探测活动的人或物体为目标,利用电磁波的多普勒原理,通过反射波的变化检测有运动物体逼近或远离,然后把这种变化转换成电信号输出。2.3.2原理图设计 人体感应电路包含HC-SR505人体红外检测电路、RCWL-0513微波雷达检测电路。
人体感应电路HC-SR505人体红外模块RCWL-0513微波雷达模块任务4智能照明系统程序设计引导案例基于LoRa技术的地库智能照明系统方案地库作为建筑的重要组成部分,其照明系统对于保障行车安全、提供清晰可见的停车环境至关重要。然而,传统的地库照明系统往往存在能耗高、控制不灵活、维护困难等问题。为了解决这些问题,某公司设计了一套基于LoRa技术的地库智能照明系统如下:1.系统架构该系统采用LoRa技术作为无线通信基础,实现地库内照明设备的智能化控制。通过光线传感器、人体红外传感器等实时监测地库内的光照强度和人员活动情况;并且利用LoRa网络将感知层的数据传输至应用层;应用层则负责数据的处理、分析和控制指令的生成。引导案例基于LoRa技术的地库智能照明系统方案2.软件设计(1)嵌入式程序设计:针对智能照明设备和传感器,编写嵌入式程序,实现数据采集、处理和控制指令的接收与执行。(2)移动应用设计:开发一款移动应用,供工作人员使用,用于实时查看地库内的照明状态、接收报警信息、发送控制指令等。管理员可以通过移动应用软件远程控制地库内的照明设备,如调节亮度、改变色温等。同时,系统还可以实时监测设备的运行状态,并发送报警信息至管理员的移动设备或电脑终端,以便及时处理设备故障。2.4.1知识准备1.认识STM32的IO口(1)STM32的IO口的8种模式STM32的IO口相比51单片机而言要复杂得多,所以使用起来也困难很多。STM32的IO口可以由软件配置成如下8种模式:浮空输入:IN_FLOATING。输入什么信号就是什么信号,对于浮空输入要保证有明确的输入信号。上拉输入:IPU。没有输入信号的时候默认输入高电平(含IO内部上拉电阻。下拉输入:IPD。有输入信号的时候默认输入低电平(含IO内部下拉电阻)。模拟输入:AIN。应用ADC模拟输入,或者低功耗下省电。2.4.1知识准备开漏输出:Out_OD。IO输出0接GND;IO输出1,悬空;需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,所以IO口也可以由外部电路改变为低电平或不变。推挽输出:Out_PP。IO输出0接GND,IO输出1接VCC。复用功能的推挽式输出:AF_PP。片内外设功能(如I2C的SCL,SDA)。复用功能的开漏输出:AF_OD。片内外设功能(如TX1,MOSI)。每个IO口都可自由编程,单IO口寄存器必须要按32位字访问。2.4.1知识准备(2)STM32的IO端口寄存器STM32常用的IO端口寄存器有以下6个:配置模式的2个32位的端口配置寄存器CRL和CRH;2个32位的数据寄存器IDR和ODR;1个32位的置位/复位寄存器BSRR;1个16位的复位寄存器BRR;2.4.1知识准备IO端口低配置寄存器CRL是控制着每个IO端口(A~G)的低8位IO端口的模式和输出速率。每个IO端口的位占用CRL的4个位,高两位为CNF,低两位为MODE,配置表如表所示。2.4.1知识准备IO端口低配置寄存器CRL描述如图所示:2.4.1知识准备例如:设置GPIOA的1位为上拉输入,2位为推挽输出,输出速率为50MHz。采用寄存器设置,代码如下:GPIOA->CRL&=0XFFFFF00F;//清掉这1、2位原来的设置,不影响其他位的设置GPIOA->CRL|=0X00000380;//PA1上拉/下拉输入,PA2推挽输出、速率为50MHzGPIOA->ODR=1<<1; //设置PA2输出1通过这3个语句,设置了PA1为上拉输入,PA2为推挽输出、速率为50MHz。2.4.1知识准备2.STM32的GPIO初始化和输入输出库函数(1)RCC_APB2PeriphClockCmd()函数RCC_APB2PeriphClockCmd()函数功能为使能GPIOx对应的外设时钟。例如,使能GPIOB和GPIOC时钟程序如下:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC,ENABLE);其中,RCC_APB2Periph_GPIOB和RCC_APB2Periph_GPIOC是在stm32f10x_rcc.h头文件中定义的。RCC_APB2PeriphClockCmd()函数是在固件库的stm32f10x_rcc.c文件中定义的。2.4.1知识准备2.STM32的GPIO初始化和输入输出库函数(2)GPIO_Init()函数GPIO_Init()函数功能为初始化(配置)GPIO的模式和速度,也就是设置相应GPIO的CRL和CRH寄存器值。函数原型是:voidGPIO_Init(GPIO_TypeDef*GPIOx,GPIO_InitTypeDef*GPIO_InitStruct);GPIOx是GPIO_TypeDef类型指针变量,用于确定是哪一个GPIO,GPIOx取值为GPIOA、GPIOB、GPIOC、GPIOD、GPIOE、GPIOF和GPIOG。GPIO_InitStruct是GPIO_InitTypeDef类型指针变量,用于确定GPIOx的对应引脚以及该引脚的模式和输出最大速度。2.4.1知识准备2.STM32的GPIO初始化和输入输出库函数(3)GPIO_ReadInputData()和GPIO_ReadInputDataBit()函数GPIO_ReadInputData()函数功能为读取指定IO口16个引脚的输入值,也是读取IDR寄存器的值。例如,读取GPIOB口输入值为:temp=GPIO_ReadInputData(GPIOB);GPIO_ReadInputDataBit()函数功能为读取指定IO口的对应引脚值,也就是读取IDR寄存器的值。例如,读取GPIOA.6(既PA6)引脚值如下:GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_6);2.4.1知识准备2.STM32的GPIO初始化和输入输出库函数(4)GPIO_ReadOutputDataBit()和GPIO_ReadOutputData()函数GPIO_ReadOutputDataBit()函数是读取指定IO口某个引脚的输出值,也就是读取寄存器ODR相应位的值。例如,读取GPIOC.3引脚输出值为:GPIO_ReadOutputDataBit(GPIOC,GPIO_Pin_3);GPIO_ReadOutputData()函数是读取指定IO口16个引脚的输出值,也就是读取寄存器ODR的值。例如,读取GPIOC口所有引脚输出值为:GPIO_ReadOutputData(GPIOC);2.4.1知识准备2.STM32的GPIO初始化和输入输出库函数(5)GPIO_SetBits()和GPIO_ResetBits()函数GPIO_SetBits()和GPIO_ResetBits()是用来设置取指定IO口的引脚输出高电平和低电平的,也就是设置寄存器BSRR、BRR的值。例如,GPIOB.8引脚输出高电平:GPIO_SetBits(GPIOB,GPIO_Pin_8);又如,GPIOB.9引脚输出低电平:GPIO_ReSetBits(GPIOB,GPIO_Pin_9);2.4.1知识准备2.STM32的GPIO初始化和输入输出库函数(6)GPIO_WriteBit()和GPIO_Write()函数GPIO_WriteBit()函数是向指定IO口的引脚写0或者写1,也就是向寄存器ODR相应位的写0或者写1。例如,向PC8写1:GPIO_WriteBit(GPIOC,GPIO_Pin_8,1);GPIO_Write()函数是向指定IO口写数据,也就是是向寄存器ODR写数据例如,向GPIOE口写0xFFFE:GPIO_Write(GPIOE,0xFFFE);2.4.1知识准备3.认识STM32的模数转换STM32拥有1~3个ADC,这些ADC可以独立使用,也可以使用双重模式(提高采样率)。STM32F103系列最少有2个ADC,如STM32F103VCT6有3个ADC、STM32F103RBT6有2个ADC。STM32的ADC是12位逐次逼近型的模拟数字转换器。ADC有18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。2.4.1知识准备3.认识STM32的模数转换(1)STM32的ADC结构STM32把ADC的转换分为规则通道组和注入通道组2个通道组,规则通道组最多包含16个通道,注入通道组最多包含4个通道。规则通道组和注入通道组之间有什么关系呢?规则通道相当于我们正常运行的程序,注入通道相当于中断。在正常执行程序(规则通道)的时候,中断(注入通道)是可以打断正常执行的程序。既注入通道的转换可以打断规则通道的转换,在注入通道被转换完成之后,规则通道才得以继续转换。在程序初始化中要设置好规则通道组和注入通道组。2.4.1知识准备3.认识STM32的模数转换(2)ADC相关的库函数与ADC相关的库函数,主要在stm32f10x_adc.c文件和stm32f10x_adc.h文件中。1)开启PA口时钟和ADC1时钟,设置PA1为模拟输入。STM32F103VCT6的ADC通道0在PA1上,要先使能PORTA时钟和ADC1时钟,然后设置PA1为模拟输入。库函数实现的方法如下:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_ADC1,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;GPIO_Init(GPIOA,&GPIO_InitStructure); //PA1作为模拟输入引脚2.4.1知识准备3.认识STM32的模数转换(2)ADC相关的库函数2)复位ADC1,并设置分频因子。ADC1复位函数ADC_DeInit(),复位ADC1代码如下:ADC_DeInit(ADC1);设置ADC分频因子函数RCC_ADCCLKConfig(),设置AD
C分频因子为6,可获得72MHz/6=12MHz,代码如下:RCC_ADCCLKConfig(RCC_PCLK2_Div6);2.4.1知识准备3.认识STM32的模数转换(2)ADC相关的库函数3)初始化ADC1参数,设置ADC1的工作模式以及规则序列的相关信息。初始化ADC1函数ADC_Init(),可以根据指定的参数,初始化外设ADCx的寄存器。初始化ADC1的代码如下:ADC_Init(ADC1,&ADC_InitStructure);2.4.1知识准备3.认识STM32的模数转换(2)ADC相关的库函数4)使能AD转换器和校准设置使能ADC1代码如下:ADC_Cmd(ADC1,ENABLE);使能复位校准ADC1代码如下:ADC_ResetCalibration(ADC1);等待复位校准结束代码如下:while(ADC_GetResetCalibrationStatus(ADC1));开启AD校准代码如下:ADC_StartCalibration(ADC1);等待校准结束代码如下:while(ADC_GetCalibrationStatus(ADC1));2.4.1知识准备3.认识STM32的模数转换(2)ADC相关的库函数5)读取ADC值ADC1的通道1采样时间是239.5周期,代码如下:ADC_RegularChannelConfig(ADC1,ch,1,ADC_SampleTime_239Cycles5);使能指定的ADC1的软件转换启动功能,代码如下:ADC_SoftwareStartConvCmd(ADC1,ENABLE);等待转换结束,代码如下:while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));读取ADC1规则组的转换结果,代码如下:temp=ADC_GetConversionValue(ADC1);2.4.1知识准备4.认识STM32的USART串口STM32拥有3路USART串口,串口资源丰富、功能强劲,其与传统的51单片机(或PC)的串口(UART)还有所区别。(1)USART串口USART(通用同步/异步串行收发器)是一种能够把二进制数据按位(bit)传送的通信方式。STM32的USART串口采用了一种灵活的方法,使用异步串行数据格式进行外部设备之间的全双工数据交换。利用分数波特率发生器提供宽范围的波特率选择,并支持局部互连网LIN、智能卡协议和IrDASIRENDEC规范,还具有用于多缓冲器配置的DMA方式,可以实现高速数据通信。2.4.1知识准备4.认识STM32的USART串口(2)USART串口硬件连接USART串口是通过RX(接收数据串行输入)、TX(发送数据输出)和地3个引脚与其他设备连接在一起的。USART1串口的TX和RX引脚使用的是PA9和PA10;USART2串口的TX和RX引脚使用的是PA2和PA3;USART3串口的TX和RX引脚使用的是PB10和PB11;这些引脚默认的功能都是GPIO,在作为串口使用时,就要用到这些引脚的复用功能,在使用其的复用功能前,必须对复用的端口进行设置。2.4.1知识准备4.认识STM32的USART串口(3)STM32串口的相关库函数1)使能USART串口的时钟USART1串口是挂载在APB2(高速外设)的外设,USART2和USART3串口是挂载在APB1(低速外设)的外设。例如,使能USART1串口时钟的代码如下:RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);再如,使能USART2串口时钟的代码如下:RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);2.4.1知识准备4.认识STM32的USART串口(3)STM32串口的相关库函数2)设置GPIO复用端口USART1的TX和RX引脚使用的是PA9和PA10,USART2使用的是PA2和PA3,USART3使用的是PB10和PB11,这些引脚默认的功能都是GPIO。TX用来发送数据,设置成复用功能的推挽输出(AF_PP);RX用来接收数据,设置成浮空输入(IN_FLOATING)。下面以USART1串口为例,GPIO复用功能设置步骤如下:使能GPIOA的时钟;PA9(TXD)设置成复用功能的推挽输出(AF_PP);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 关于核对数据的通知4篇
- 化妆品公司市场部经理品牌推广与营销策略绩效评定表
- 建筑设计师及团队绩效衡量表
- 公路项目预制梁吊装应急预案
- 共建温馨校园培养良好习惯小学主题班会课件
- 加强爱国教育树立远大理想,小学主题班会课件
- 调理肉制品加工工岗前实操水平考核试卷含答案
- 锻件切边工安全应急测试考核试卷含答案
- 技术专家研究进度绩效考评表
- 中药材生产技术员岗前履职考核试卷含答案
- 基础会计教材电子版
- 美丽中国建设十五五规划讲解
- TCECS 10148-2021 混凝土用胶粘型锚栓
- DL∕T 5533-2017 电力工程测量精度标准
- 预防风沙课件
- 班组长工艺管理培训
- 全国一级学会、协会目录
- 徐氏调查研究报告
- 2022年阜阳市界首市选调中小学教师考试真题
- 2022高级经济师《知识产权实务》预测试卷2
- GA/T 1163-2014人类DNA荧光标记STR分型结果的分析及应用
评论
0/150
提交评论