成功加入购物车

去购物车结算 X
剡溪书局
  • 全新正版 HarmonyOSIoT设备开发实战 江苏润和软件股份有限公司 9787121411755 电子工业

全新正版 HarmonyOSIoT设备开发实战 江苏润和软件股份有限公司 9787121411755 电子工业

举报

本店所售图书,保证正版新书,有个别图片和实书封面不一样,以实书封面为准,最快当天,一般隔天发货。支持7天无理由退换货.开票联系客服

  • 作者: 
  • 出版社:    电子工业
  • ISBN:    9787121411755
  • 出版时间: 
  • 装帧:    平装
  • 开本:    其他
  • 作者: 
  • 出版社:  电子工业
  • ISBN:  9787121411755
  • 出版时间: 
  • 装帧:  平装
  • 开本:  其他

售价 39.57 5.0折

定价 ¥79.00 

品相 全新

优惠 满包邮

优惠 满减券
    运费
    本店暂时无法向该地区发货

    延迟发货说明

    时间:
    说明:

    上书时间2023-07-04

    数量
    库存6
    微信扫描下方二维码
    微信扫描打开成功后,点击右上角”...“进行转发

    卖家超过10天未登录

    • 商品详情
    • 店铺评价
    手机购买
    微信扫码访问
    • 货号:
      31158052
      商品描述:
      作者简介
      江苏润和软件股份有限公司(证券代码:300339),是中国领先的产品与解决方案提供商和平台运营商。公司主营业务横跨金融科技、物联网两大领域,以国产化、数字化为核心,以信息技术为依托,致力于向国内外客户提供从芯片、硬件、底层软件到应用平台的综合解决方案与优质科技服务,公司已与多家行业头部客户建立了密切的战略伙伴关系,全面赋能企业的数字化转型。公司业务遍及中国、日本、东南亚、北美等区域,拥有全球化的技术洞察、技术资源与服务达到能力,能够为客户提供全面、即时、高效、前沿的数字化科技服务。许思维:从事嵌入式系统软件开发近10年,从事Android系统相关产品研发6年,参与了多款内置NPU的SoC芯片的软件研发工作,参与了多个IoT相关软硬件一体化项目。对智能手机、智能手表、微控制器等资源受限系统上的软件设计、调试、开发深刻实践,对基于MQTT、CoAP等协议的物联网系统架构有一定实践经验。姜年檑:从事嵌入式软件开发5年以上。擅长C语言和Python。熟悉MCU软件开发和Linux底层驱动开发。产品领域涉及手机、智能硬件、物联网等。冯宝鹏:从事嵌入式软件开发8年以上。擅长C/C++语言、JAVA语言。熟悉Linux底层驱动开发和内核内存管理研究。产品领域涉及手机、智能手表、WiFiIOT等。蔡旭:从事嵌入式软件开发8年以上。擅长C语言,熟悉MCU软件开发和Linux底层驱动开发。产品领域涉及手机、智能家居、物联网等。沈峰:从事操作系统、云计算等基础软件产品研发和研发管理20年,擅长C语言、Python语言,精通Linux操作系统。屈博:从事嵌入式软件开发10年以上。擅长C语言,汇编语言,熟悉MCU软件开发和Linux底层驱动开发。产品领域涉及手机、智能家居、物联网、打印机等。王高浩:从事AI软件、监控软件开发、音视频编解码优化,近15年,擅长C++、C语言、汇编语言,熟悉Linux、VisualStudio开发环境以及Caffe深度学习框架,产品领域涉及视频监控平台、前端,嵌入式设备等。丁成杰:从事嵌入式软件开发4年。擅长C语言和JS,熟悉安卓recovery和应用开发。产品领域涉及手机,TV,物联网等。程劲松,从事嵌入式系统开发,精通c/c++开发,熟悉Android系统。多年芯片开发经验。

      目录
      环境准备篇
      第1章  搭建HarmonyOS开发环境3
      1.1  海思Hi3861芯片简介4
      1.2  Wi-Fi IoT开发套件简介5
      1.2.1 核心板简介6
      1.2.2 底板简介7
      1.2.3 交通灯板简介8
      1.2.4 炫彩灯板简介9
      1.2.5 环境检测板简介10
      1.2.6 OLED显示屏板简介11
      1.2.7 NFC扩展板简介11
      1.3  准备HarmonyOS开发环境12
      1.3.1 开发环境简介12
      1.3.2 硬件准备13
      1.3.3 软件准备14
      1.4  搭建HarmonyOS编译环境15
      1.4.1 安装编译环境依赖的软件包15
      1.4.2 下载编译和构建工具16
      1.4.3 安装编译和构建工具16
      1.4.4 安装Samba服务17
      1.5  下载和编译HarmonyOS源代码18
      1.5.1 获取HarmonyOS源代码19
      1.5.2 HarmonyOS 源代码目录简介19
      1.5.3 编译HarmonyOS源代码20
      1.6  使用HUAWEI DevEco Device Tool21
      1.6.1 下载HUAWEI DevEco Device Tool及其依赖的软件21
      1.6.2 安装HUAWEI DevEco Device Tool23
      1.6.3 映射Samba服务的共享目录到本地磁盘26
      1.6.4 用HUAWEI DevEco Device Tool导入项目28
      1.7  使用串口调试工具30
      1.7.1 下载CH340芯片相关软件31
      1.7.2 安装CH340芯片的驱动31
      1.7.3 串口调试工具简介32
      1.7.4 用串口调试工具查看串口日志33
      外设控制篇
      第2章37
      用HarmonyOS控制I/O设备37
      2.1  从编写Hello World开始37
      2.1.1 编写Hello World程序源代码37
      2.1.2 将源代码编译成二进制文件38
      2.1.3 将二进制文件烧录到开发板38
      2.1.4 通过“串口”查看程序的运行结果43
      2.2  使用GPIO模块输出高/低电平44
      2.2.1 GPIO简介44
      2.2.2 HarmonyOS IoT硬件子系统的GPIO模块与输出相关的API44
      2.2.3 核心板可编程LED灯部分的原理图说明45
      2.2.4 通过GPIO模块控制LED灯亮和灭46
      2.3  使用GPIO模块实现按键输入48
      2.3.1 HarmonyOS IoT硬件子系统的GPIO模块与输入相关的API49
      2.3.2 核心板USER按键部分的原理图说明50
      2.3.3 通过查询GPIO状态控制LED灯50
      2.3.4 通过注册GPIO中断控制LED灯53
      2.4  使用PWM模块输出方波55
      2.4.1 PWM简介55
      2.4.2 HarmonyOS IoT硬件子系统的PWM模块的相关API56
      2.4.3 交通灯板的蜂鸣器部分的相关原理图说明57
      2.4.4 通过输出PWM方波控制蜂鸣器发声58
      2.4.5 通过PWM模块在蜂鸣器上播放音乐60
      2.4.6 通过PWM模块控制蜂鸣器的音量和LED灯的亮度62
      第3章使用HarmonyOS感知环境状态63
      3.1  使用ADC获取模拟传感器的状态63
      3.1.1 HarmonyOS IoT硬件的ADC通道63
      3.1.2 Wi-Fi IoT开发套件的炫彩灯板原理图说明65
      3.1.3 通过光敏电阻感知环境光67
      3.1.4 通过人体红外传感器感知人员靠近69
      3.1.5 传感器状态控制三色LED灯的颜色69
      3.1.6 使用ADC值区分同一个引脚上的不同按键71
      3.2  其他ADC传感器的使用76
      3.2.1 与环境检测板MQ-2相关的原理图说明76
      3.2.2 MQ-2可燃气体传感器简介78
      3.2.3 读取MQ-2可燃气体传感器的ADC值78
      3.3  使用I2C接口获取数字温湿度传感器的状态79
      3.3.1 HarmonyOS IoT硬件的I2C接口79
      3.3.2 AHT20数字温湿度传感器简介82
      3.3.3 环境检测板上与AHT20数字温湿度传感器相关的原理图说明83
      3.3.4 实现AHT20数字温湿度传感器驱动库84
      3.3.5 获取AHT20数字温湿度传感器的值87
      第4章  OLED显示屏的驱动和控制93
      4.1  使用HarmonyOS驱动OLED显示屏93
      4.1.1 OLED简介93
      4.1.2 OLED显示屏的原理图94
      4.1.3 OLED的初始化96
      4.1.4 在OLED显示屏上绘制画面98
      4.1.5 在OLED显示屏上绘制ASCII字符串101
      4.2  在OLED显示屏上显示中文106
      4.2.1 中文字符编码和中文字体106
      4.2.2 实现中文字体绘制107
      传输协议篇
      第5章  使用HarmonyOS控制Wi-Fi115
      5.1  Wi-Fi背景知识简介115
      5.1.1 Wi-Fi简介115
      5.1.2 Wi-Fi工作模式简介118
      5.2  HarmonyOS IoT硬件的Wi-Fi STA模式编程119
      5.2.1 扫描其他Wi-Fi接入点119
      5.2.2 连接到某个Wi-Fi接入点121
      5.3  HarmonyOS IoT硬件的Wi-Fi AP模式编程121
      5.3.1 创建Wi-Fi热点121
      5.3.2 提供DHCP服务125
      5.4  HarmonyOS IoT硬件 Wi-Fi通用函数129
      第6章  HarmonyOS网络编程134
      6.1  TCP/IP简介134
      6.2  LwIP开源项目简介141
      6.3  TCP编程148
      6.3.1 TCP客户端程序148
      6.3.2 TCP服务端程序151
      6.4  UDP编程155
      6.4.1 UDP客户端程序155
      6.4.2 UDP服务端程序157
      物联网应用篇
      第7章  HarmonyOS IoT设备内核的编程接口163
      7.1  CMSIS-RTOS API V2简介及HarmonyOS 适配情况163
      7.2  线程164
      7.3  等待170
      7.4  软定时器172
      7.5  互斥锁176
      7.6  信号量179
      7.7  消息队列183
      第8章  MQTT协议简介189
      8.1  什么是MQTT协议189
      8.2  应用场景190
      8.3  MQTT 协议的特性190
      8.4  MQTT协议的订阅与发布模型介绍191
      8.4.1 基于MQTT协议的消息传递191
      8.4.2 报文类型说明191
      8.4.3 在基本消息的订阅与发布流程中常用的报文介绍192
      8.4.4 基于MQTT协议的消息发布与订阅的三种方式194
      8.5  Paho-MQTT简介196
      8.6  Paho-MQTT的消息传输测试198
      8.6.1 下载代码并进行编译与烧录198
      8.6.2 输入测试命令199
      8.6.3 服务端应用Mosquitto的使用199
      8.7  使用MQTT方式连接华为云201
      附录209
      附录A  VirtualBox的安装和使用209
      附录B  在VirtualBox中安装Ubuntu 20.04系统214
      附录C  使用SSH客户端登录服务器229
      附录D  使用开源镜像站加速安装apt软件包和pip软件包232
      附录E  Hi3861引脚功能复用表233

      内容摘要
      本书主要介绍如何使用HarmonyOS开发物联网设备端软件,具体包括外设控制、网络编程、物联网平台接入等。本书的示例程序均在HiSparkWi-FiIoT开发套件上进行测试和演示,部分章节内容也适用于其他支持HarmonyOS的物联网设备。 本书共8章,分为4篇,即环境准备篇、外设控制篇、传输协议篇、物联网应用篇。环境准备篇包含第1章,主要内容为如何搭建HarmonyOS开发环境。外设控制篇包含第2章~第4章,主要内容为如何使用HarmonyOS控制外设。传输协议篇包含第5章和第6章,主要内容为如何使用HarmonyOS控制Wi-Fi,以及如何使用HarmonyOS进行网络编程。物联网应用篇包含第7章和第8章。通过学习第7章,读者能够对内核对象有比较深刻的理解。第8章的主要内容包括如何集成MQTT客户端SDK,以及如何开发一个物联网应用。

      主编推荐
      HarmonyOS(鸿蒙操作系统)是一款“面向未来”的操作系统,是万物互联的基础,会给人们的生活带来巨大的变化!
      《HarmonyOS IoT设备开发实战》介绍如何使用HarmonyOS开发物联网设备端软件,具体包括外设控制、网络编程、物联网平台接入等。从0到1,教你开发一个物联网应用。

      精彩内容
      5.2HarmonyOSIoT硬件的Wi-FiSTA模式编程本节主要介绍在HarmonyOS上的Wi-FiAPI。
      5.2.1扫描其他Wi-Fi接入点在HarmonyOS中,通过下面的函数来扫描Wi-Fi接入点。
      WifiErrorCodeScan(void)该函数触发Wi-Fi接入点的扫描。若成功,则返回WIFI_SUCCESS;若错误,则返回相应的错误码。
      注意,Scan函数并不会返回扫描的结果,只是触发扫描的事件,最终的扫描结果由底层的Wi-Fi芯片上报。也就是说,如果Scan函数返回WIFI_SUCCESS,那么上层也可能无法正常地获取到扫描结果。获取扫描结果需要单独调用另外一个函数,见下面的描述。
      WifiErrorCodeGetScanInfoList(WifiScanInfo*result,unsignedint*size)该函数用来获取扫描结果。
      result存放扫描的结果,size为result的长度。在HarmonyOS中,Wi-Fi扫描结果的数量是受限的,不能超过宏WIFI_SCAN_HOTSPOT_LIMIT定义的大小。该宏定义在foundation/communication/interfaces/kits/wifi_lite/wifiservice/wifi_scan_info.h中,值为64。也就是说,最多只能获取64个扫描结果。
      作为形参的size,一般直接传这个宏就可以了。实例代码片段如下:#include\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"wifi_scan_info.h\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"#include\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"wifi_device.h\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"WiFiScanInfo*info=malloc(sizeof(WifiScanInfo)*WIFI_SCAN_HOTSPOT_LIMIT);if(info==NULL){printf(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"Allocatememoryfailed.\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\");returnNULL;}intscanInfoSize=WIFI_SCAN_HOTSPOT_LIMIT;WifiErrorCodeerror=GetScanInfoList(info,&scanInfoSize);if(error!=WIFI_SUCCESS){printf(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"Error!getWi-FiScanresultsfailed:%d\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",error);}else{printf(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"GetWi-Fiscanresultssuccess,size=%d\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",scanInfoSize);}returninfo;返回值:若成功,则返回WIFI_SUCCESS;若错误,则返回相应的错误码。
      5.2.2连接到某个Wi-Fi接入点在扫描完成之后,可以选择一个接入点,调用相关的函数进行网络连接。
      WifiErrorCodeConnectTo(intnetworkId)根据networkId连接一个指定的网络。networkId是WifiDeviceConfig类型的全局数组的索引。通过指定的networkId获取一个Wi-Fi的配置。 WifiDeviceConfig的定义如下:typedefstructWifiDeviceConfig{charssid[WIFI_MAX_SSID_LEN];//无线网络的SSIDunsigedcharbssid[WIFI_MAC_LEN];//无线网络的BSSIDcharpreSharedKey[WIFI_MAX_KEY_LEN];//PSK,即无线网络预先设置的密钥intsecurityType;//认证类型,如OPEN、WEP、WPA-PSK等intnetId;//网络ID,一个有效的ID,不能小于0,也不能大于10(由宏WIFI_MAX_CONFIG_SIZE定义)unsignedintfreq;//频段intwapiPskType;//PSK类型,ASCII字符或者16进制数。目前,Hi3861芯片只支持ASCII字符};ConnectTo函数完成了认证、关联等一系列操作。
      返回值:若成功,则返回WIFI_SUCCESS;若错误,则返回相应的错误码。
      5.3HarmonyOSIoT硬件的Wi-FiAP模式编程5.3.1创建Wi-Fi热点在开始介绍相关的接口函数之前,有一个约定需要说明一下。
      本节是介绍Wi-FiAP模式编程的,但是你会发现接下来要介绍的函数的名字都包含了hotspot,即热点。热点和接入点是两个不同的概念。这里需要解释一下。 HarmonyOS使用下面的函数创建Wi-Fi热点:(1)WifiErrorCodeEnableHotspot(void)调用上面的函数,可以在HarmonyOS中开启接入点功能,并设置全局变量g_wifiApStatus为ACTIVE状态。你可能会觉得奇怪,难道开启接入点功能什么参数都不需要吗?接入点需要配置SSID,可能也需要配置PSK、设置频段等操作。为什么这个函数一个参数都没有?与接入点相关的这些参数是怎么设置进去的?
      这是因为HarmonyOS使用一个叫g_wifiApConfig的全局变量保存接入点的配置,该变量是HotspotConfig类型的,为一个结构体。关于该结构体,在本节的后面会进行介绍。
      返回值:若成功,则返回WIFI_SUCCESS;若错误,则返回相应的错误码。
      (2)WifiErrorCodeDisableHotspot(void)该函数用于禁用接入点功能,并设置全局变量g_wifiApStatus为NOTACTIVE状态。
      返回值:若成功,则返回WIFI_SUCCESS;若错误,则返回相应的错误码。
      (3)intIsHotspotActive(void)该函数用于获取接入点的状态。这里要说明一下,从这个函数名来看,似乎该函数用于判断当前设备的AP模式有没有使能。这个函数最终只返回上面所提到的全局变量g_wifiApStatus的值。也就是说,实际上这个函数只返回状态,而不判断AP模式是不是使能。我们可以针对这个函数重新封装一个返回值为布尔型的函数,若返回TRUE,则表示接入点功能被开启,若返回FALSE,则表示接入点功能被禁用。实现方法如下:#include\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"wifi_hotspot.h\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"#include\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"wifi_event.h\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"BOOLIsHotspotEnabled(void){intapStatus=IsHotspotActive();returnapStatus==WIFI_HOTSPOT_ACTIVE;}返回值:若成功,则返回接入点状态,若错误,则返回相应的错误码。
      (4)WifiErrorCodeGetStationList(StationInfo*result,unsignedint*size)该函数用于获取当前连接到接入点的STA信息。size表示存储StationInfo数组的长度,即result的长度。
      根据HarmonyOS的定义,最多只能获取6个STA的信息。由宏WIFI_MAX_STA_NUM控制。
      该宏定义在foundation/communication/interfaces/kits/wifi_lite/wifiservice/wifi_hotspot_config.h中。
      返回值:若成功,则返回WIFI_SUCCESS;若错误,则返回相应的错误码。
      (5)WifiErrorCodeSetHotspotConfig(constHotspotConfig*config)该函数用于接入点配置。在上文中提到,在使能AP模式的函数中,没有任何参数传递,这是因为接入点需要的配置信息都保存在一个全局变量g_wifiApConfig中。这个全局变量就是通过该函数设置的。HotspotConfig结构体的定义如下:typedefstruct{charssid[WIFI_MAX_SSID_LEN];//SSID名称intsecurityType;//认证类型intband;//频带intchannelNum;//信道charpreSharedKey[WIFI_MAX_KEY_LEN];//PSK}HotspotConfig;该函数将形参config的值拷贝到全局变量g_wifiApConfig中。根据此config,可以调用EnableHotspot函数开启接入点功能。
      返回值:若成功,则返回WIFI_SUCCESS;若错误,则返回相应的错误码。
      (6)WifiErrorCodeGetHotspotConfig(HotspotConfig*result)该函数比较好理解,就是获取全局变量g_wifiApConfig中的内容,将其拷贝到result中。
      返回值:若成功,则返回WIFI_SUCCESS;若错误,则返回相应的错误码。
      (7)intGetSignalLevel(intrssi,intband)该函数用于获取信号强度等级。rssi是ReceivedSignalStrengthIndicator的缩写,即接收信号强度指示,用于判断接收的信号质量。
      rssi在不同的频带下有不同的值,代表的强度不一样。rssi的单位是DBm(分贝毫瓦),是用于描述功率的单位。其值一般在-90~0。数值越大,说明信号越好。
      该函数根据rssi和频带的值,返回一个HarmonyOS定义的信号等级。目前的值是1,2,3,4这四个等级,由枚举变量RssiLevel定义,用于指示当前Wi-Fi的信号状态。根据这个状态,可以在设备状态栏中刷新指示Wi-Fi连接的图标。下面是HarmonyOS定义的信号等级枚举类型定义:typedefenum{RSSI_LEVEL_1=1,RSSI_LEVEL_2=2,RSSI_LEVEL_3=3,RSSI_LEVEL_4=4,}RssiLevel;返回值:若成功获取到信号,则返回SignalLevel,否则返回-1。
      信号等级和rssi的对应关系如表52所示。
      表52信号等级2.4GHz热点rs

      配送说明

      ...

      相似商品

      为你推荐

    孔网啦啦啦啦啦纺织女工火锅店第三课

    开播时间:09月02日 10:30

    即将开播,去预约
    直播中,去观看