
物联网世界
文章平均质量分 80
沧海一笑-dj
C/C++软件工程师、嵌入式软件工程师、物联网研发工程师、C/C++讲师、物联网讲师、嵌入式讲师、鸿蒙讲师---欢迎大家一起交流(私信添加博主微信)
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Contiki】Contiki进程交互
注:注意区分PROCESS_EVENT_EXIT事件和PROCESS_EVENT_EXITED事件,PROCESS_EVENT_EXIT是通知要退出的进程p本身,而PROCESS_EVENT_EXITED是通知其他进程,有进程p即将退出。用process_start(&etimer_process, NULL),启动etimer_process进程。先保存当前进程变量process_current,然后传递事件给进程,最后恢复process_current变量。原创 2025-04-21 21:00:37 · 992 阅读 · 0 评论 -
【Contiki】Contiki事件
我们知道128-255用于不同进程之间的通信,lastevent用来记录最后一个分配出去的事件标识,下个事件标识应该是lastevent加1。lastevent初始化为PROCESS_EVENT_MAX。原创 2025-04-21 20:56:43 · 829 阅读 · 0 评论 -
【Contiki】Contiki process概述
进程类型主要有**协同式(cooperative)和抢占式(preemptive)**两种。协同式进程,要等其他进程运行完进程实体函数(进程不一定运行完,这个时候有可能是阻塞,总之只要执行到return语句,具体看),然后才能开始运行。抢占式进程,会优先运行,当有抢占式进程需要执行时,协同式进程将会被挂起,直到抢占式进程实体函数执行完毕。中断和实时任务就需要用抢占式进程实现。2.1 进程结构体2.2 进程链表process_list ----->只要抓住了进程链表头process_list,那么进程的原创 2025-04-18 20:59:31 · 804 阅读 · 0 评论 -
【Contiki】Protothread机制
2.1 概述传统的操作系统使用栈保存进程上下文,每个进程需要一个栈,这对于内存极度受限的传感器设备将难以忍受。protothread机制恰解决了这个问题,通过保存进程被阻塞处的行数(进程结构体的一个变量,unsiged short类型,只需两个字节),从而实现进程切换,当该进程下一次被调度时,通过switch(LINE)跳转到刚才保存的点,恢复执行。整个Contiki只用一个栈,当进程切换时清空,大大节省内存。2.2 特点。原创 2025-04-18 20:56:04 · 1029 阅读 · 0 评论 -
【Contiki】HelloWorld示例剖析
02. PROCESS宏PROCESS_THREAD(name, ev, data);一步一步展开之后为:PT_THREAD最后为这条语句相当于声明一个函数process_thread_hello_world,而这个函数就是进程执行实体函数。在后续的定义进程结构体可以看出。进程结构体:后边的的语句定义了一个process变量hello_world_process,并赋初值,为简化这里按有strname来处理。总之,PROCESS宏定义,有两个功能,声明进程执行实体函数,定义进程结构体变量,如下原创 2025-04-17 21:22:34 · 976 阅读 · 0 评论 -
【Contiki】Contiki源码目录结构
Contiki是一款开源操作系统,专为微小的低功耗微控制器设计,它使开发者能够创建高效利用硬件的应用程序,并为各种硬件平台提供了标准化的低功耗无线通信功能。Contiki广泛应用于众多商业与非商业系统中,包括城市声音监控、街道照明、联网电表、工业监测、辐射监测、建筑工地监控、报警系统、远程住宅监控等场景。原创 2025-04-17 21:10:19 · 1219 阅读 · 0 评论 -
【Contiki】Contiki 源码风格
在 if() for() while() 等语句后都要添加{},即使只有一行代码,方便阅读和后续修改。函数或者变量,对外可见的话,要在函数名前添加模块名,这样可方便知道到哪查看函数或变量的定义。静态函数不用添加文档注释,也不要添加模块名字,因为静态函数只在本文件可见。‘{’ 要和 if() for() do case() 等语句在同一行。\file 文件,每个需要生成文档的文件,都要添加这个标号。名字和参数在一行,第一个参数和 ‘(’ 不用空格隔开。/** @} */ 和@{对应。原创 2025-04-16 21:00:13 · 389 阅读 · 0 评论 -
【Contiki】Contiki操作系统
低资源占用:典型配置仅需2KB RAM和40KB ROM,适合内存受限的微控制器。网络支持:支持IPv4/IPv6、TCP/UDP、6LoWPAN等协议,集成uIP和Rime协议栈。能量高效:通过软件分析功耗,优化传感器网络生命周期。编程模型:基于事件驱动内核,支持protothread轻量级线程,提供动态加载应用的能力。文件系统:内置Coffee File System(CFS),支持Flash存储。原创 2025-04-16 14:18:08 · 763 阅读 · 0 评论 -
【物联网】mosquitto服务端Error Address already in use
错误问题描述:Error: Address already in use。由于后台已经启动了mosquit+进程 占用了端口,停止该服务即可。停止mosquitto服务即可。原创 2023-11-08 16:18:55 · 795 阅读 · 0 评论 -
【物联网】Ubuntu2204版本不显示USB串口设备解决办法
虚拟机Ubuntu中usb串口ttyUSB不现身,则要卸载brltty,在终端使用如下命令卸载brltty。在dev设备下不显示串口。由于与brltty冲突。原创 2023-11-08 15:48:59 · 1680 阅读 · 0 评论 -
【物联网】阿里云云服务器ECS免费试用流程
云服务器ECS(Elastic Compute Service)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。云服务器ECS免去了您采购IT硬件的前期准备,让您像使用水、电、天然气等公共资源一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩。阿里云ECS持续提供创新型服务器,解决多种业务需求,助力您的业务发展。原创 2023-11-01 19:52:37 · 1150 阅读 · 3 评论 -
【RT-Thread】RT-Thread Studio创建工程和下载详解
双击 RT-Thread Settings 进入配置,打开组件,勾选 FinSH Shell,保存配置。其中,rt_hw_console_getchar() 已经在 drv_uart.c 中实现,无需再实现对接FinSH 的代码。程序下载成功后按下开发板的复位键,并使用 Studio 菜单栏的。在串口终端中按下 Tab 键,可查看系统中的命令。按钮旁的三角下拉框选择相应的烧写器,以。选择需要构建的工程,然后点击工具栏上的。选项来打开一个串口终端,如下图所示。芯片为例,创建工程,点击完成。原创 2023-10-21 11:40:47 · 2844 阅读 · 0 评论 -
【物联网】物联网时代25大开源IoT框架(二)
上面列出的前25个开源IoT框架列表展示了操作和功能的多样性,但是核心在很大程度上都是通过传感器进行数据处理,并最终实现一个自给自足的机器世界。智能城市和智能家居可能并非遥不可及的想法,特别是AI和机器学习技术的快速发展为物联网生态系统提供了帮助。原创 2023-07-14 09:56:45 · 910 阅读 · 0 评论 -
【物联网】物联网时代25大开源IoT框架(一)
DeviceHIve作为一个免费使用和更改的平台以及Apache2.0下的许可,提供了深入探索该云平台的机会,它还支持包括Android和IoS在内的各种库。今天,我们将讨论各种物联网框架 —— 现在,我们正在进入一个基于互联网技术的新世界,该世界不仅连接人,而且还连接事物。KAA IoT是一个功能丰富的开源物联网平台,可以解决在使用物联网生态系统时面临的困难,非常适合放在物联网框架生态系统的顶部。物联网开源框架是基本的基础架构,其中包含对云的支持以及并增强物联网收集、存储和分发信息的过程的关键要素。原创 2023-07-06 12:25:11 · 1427 阅读 · 0 评论 -
【RT-Thread】RT-Thread Studio中ST-LINK下载报错Error Old ST-LINK firmware version. Upgrade ST-LINK firmware
原来是需要重新插拔,以及如果有把连接ST-LINK的USB延长线拔了,直接连电脑的USB试试,再次**点击"Device Connect"重新插拔,以及如果有把连接ST-LINK的USB延长线拔了,直接连电脑的USB试试,再次**点击"Device Connect"3.1 进入Keil5的安装目录,找到ST-LINK文件夹,如下图。提示现有的旧版本号,和即将更新的版本号,点击“Yes”**即可。提示现有的旧版本号,和即将更新的版本号,点击“Yes”**即可。这个报错是说ST-LINK的版本太老了,请升级。原创 2023-06-19 10:58:51 · 2191 阅读 · 3 评论 -
【RT-Thread】RT-Thread Studio安装教程详解
RT-Thread,全称是 Real Time-Thread,顾名思义,它是一个嵌入式实时多线程操作系统,基本属性之一是支持多任务,允许多个任务同时运行并不意味着处理器在同一时刻真地执行了多个任务。事实上,一个处理器核心在某一时刻只能运行一个任务,由于每次对一个任务的执行时间很短、任务与任务之间通过任务调度器进行非常快速地切换(调度器根据优先级决定此刻该执行的任务),给人造成多个任务在一个时刻同时运行的错觉。原创 2023-06-19 10:07:05 · 2473 阅读 · 0 评论 -
【ESP8266】Waiting answer from ESP - Timeout reached. Command aborted
上传LUA脚本的时候出现如下错误。原创 2023-06-15 15:10:14 · 410 阅读 · 0 评论 -
【Lua】Lua入门教程-数据类型基础语法
Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua 是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组于 1993 年开发的,该小组成员有:Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo。原创 2023-06-14 16:31:50 · 573 阅读 · 0 评论 -
【Lua】Lua安装详解
Lua是一种轻量级脚本语言,它被设计成一种可嵌入的语言,可以很容易地集成到其他程序中使用。Lua的语法简单、易学、易于扩展,因此被广泛应用于游戏开发、嵌入式系统、网络应用等领域。Lua由巴西人Waldemar Celes、Roberto Ierusalimschy和Luiz Henrique de Figueiredo三人共同开发,于1993年首次发布。Lua的名字在葡萄牙语中意思是“月亮”,象征着这种语言的轻量级和灵活性。Lua的特点包括动态类型、垃圾回收、函数式编程、闭包、表、协程等。原创 2023-06-14 11:02:02 · 3210 阅读 · 0 评论 -
【物联网】ARM平台移植mosquitto详解
Eclipse Mosquitto是一个开源的(EPL/EDL 许可)消息代理,实现了MQTT的 5.0、3.1.1 和 3.1 版本。Mosquitto是轻量级的,适用于从低功耗的单板计算机到完整服务器的所有设备上使用。MQTT协议提供了一种使用发布/订阅模型执行消息传递的轻量级方法。这使得它适合于物联网信息传递,例如使用低功率传感器或移动设备,如手机、嵌入式计算机或微控制器。原创 2023-06-13 12:55:00 · 1253 阅读 · 1 评论 -
【物联网】ARM平台运行mosquitto Error Invalid user ‘mosquitto‘
运行mosquitto的时候,出现Invalid user 'mosquitto’错误。添加用户mosquitto。原创 2023-06-12 21:22:11 · 416 阅读 · 0 评论 -
【物联网】mosquitto_connect Connection refused问题解决
默认启动mosquitto服务端的时候,使用默认的配置,只允许本地连接,如果需要允许远程连接,需要设置配置文件。当执行mosquitto_pub使用IP地址的时候,出现连接拒绝。启动服务端,指定配置文件。原创 2023-06-12 17:52:17 · 3286 阅读 · 4 评论 -
【物联网】Mosquitto应用编程API详解
Eclipse Mosquitto是一个开源的(EPL/EDL 许可)消息代理,实现了MQTT的 5.0、3.1.1 和 3.1 版本。Mosquitto是轻量级的,适用于从低功耗的单板计算机到完整服务器的所有设备上使用。MQTT协议提供了一种使用发布/订阅模型执行消息传递的轻量级方法。这使得它适合于物联网信息传递,例如使用低功率传感器或移动设备,如手机、嵌入式计算机或微控制器。原创 2023-06-12 11:47:20 · 3486 阅读 · 0 评论 -
【物联网】Linux平台mosquitto-2.0.15安装教程
Eclipse Mosquitto是一个开源的(EPL/EDL 许可)消息代理,实现了MQTT的 5.0、3.1.1 和 3.1 版本。Mosquitto是轻量级的,适用于从低功耗的单板计算机到完整服务器的所有设备上使用。MQTT协议提供了一种使用发布/订阅模型执行消息传递的轻量级方法。这使得它适合于物联网信息传递,例如使用低功率传感器或移动设备,如手机、嵌入式计算机或微控制器。原创 2023-06-11 11:23:45 · 1838 阅读 · 6 评论 -
【物联网】安装mosquitto时g++:命令未找到
安装mosquitto时报g++:命令未找到。由于没有g++命令,需要安装g++工具即可。重新编译mosquitto即可。原创 2023-06-11 10:55:04 · 499 阅读 · 0 评论 -
【物联网】安装mosquitto时fatal error openssl opensslconf.h 没有那个文件或目录
编译mosquitto时,出现找不到opensslconf.h文件,显示fatal error: openssl/opensslconf.h: 没有那个文件或目录。缺少 OpenSSL 的头文件,需要安装 OpenSSL 的开发包。查看opensslconf.h是否存在。3.2 安装openssl。原创 2023-06-11 10:49:06 · 1547 阅读 · 0 评论 -
【物联网】Linux平台cJSON安装教程
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它是基于 JavaScript 的一种字符串格式,独立于编程语言,可以用来存储和传输数据。JSON 数据可以是简单的数字、字符串、数组或其他复杂数据类型。它通常用于 Web 应用程序中,用于存储和传输数据,也可以用于其他应用程序中。JSON 格式由一系列特定的字符组成,这些字符称为“键”和“值”。键通常是字符串,值可以是字符串、数字、布尔值、数组或另一个 JSON 对象。原创 2023-06-11 10:12:18 · 1368 阅读 · 0 评论 -
【物联网】Linux平台OpenSSL安装教程
OpenSSL是一个安全套接字层密码库,囊括主要的密码算法、常用密钥、证书封装管理功能及实现ssl协议。OpenSSL整个软件包大概可以分成三个主要的功能部分:SSL协议库libssl、应用程序命令工具以及密码算法库libcrypto。SSL:Secure Socket Layer,安全套接字层协议,分为SSLv2和SSLv3两个版本,TSL在SSL3.0基础之上提出的安全通信标准化版。原创 2023-06-10 22:51:12 · 8482 阅读 · 3 评论 -
【物联网】cJSON学习笔记(下)
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它是基于 JavaScript 的一种字符串格式,独立于编程语言,可以用来存储和传输数据。JSON 数据可以是简单的数字、字符串、数组或其他复杂数据类型。它通常用于 Web 应用程序中,用于存储和传输数据,也可以用于其他应用程序中。JSON 格式由一系列特定的字符组成,这些字符称为“键”和“值”。键通常是字符串,值可以是字符串、数字、布尔值、数组或另一个 JSON 对象。原创 2023-06-08 13:36:36 · 501 阅读 · 1 评论 -
【物联网】cJSON学习笔记(上)
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它是基于 JavaScript 的一种字符串格式,独立于编程语言,可以用来存储和传输数据。JSON 数据可以是简单的数字、字符串、数组或其他复杂数据类型。它通常用于 Web 应用程序中,用于存储和传输数据,也可以用于其他应用程序中。JSON 格式由一系列特定的字符组成,这些字符称为“键”和“值”。键通常是字符串,值可以是字符串、数字、布尔值、数组或另一个 JSON 对象。原创 2023-06-08 11:23:36 · 438 阅读 · 0 评论 -
【物联网】JSON基本概念
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。它是基于的一个子集。JSON采用完全独立于程序语言的文本格式,但是也使用了类C语言的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。原创 2023-06-07 10:10:58 · 680 阅读 · 0 评论 -
【物联网】华为云物联网平台SDK移植到ARM平台详解
华为云物联网平台(IoT 设备接入云服务)提供海量设备的接入和管理能力,将物理设备联接到云,支撑设备数据采集上云和云端下发命令给设备进行远程控制,配合华为云其他产品,帮助您快速构筑物联网解决方案。使用物联网平台构建一个完整的物联网解决方案主要包括3部分:物联网平台、业务应用和设备。物联网平台作为连接业务应用和设备的中间层,屏蔽了各种复杂的设备接口,实现设备的快速接入;同时提供强大的开放能力,支撑行业用户构建各种物联网解决方案。原创 2023-06-04 12:28:25 · 740 阅读 · 0 评论 -
【物联网】ARM平台移植Paho详解
Paho是一个开源的MTT客户端库,由Eclipse IoT项目组织开发和维护。它提供了多种编程语言的客户端实现,使得MTT协议在各种平台上得以快速、简单地实现。本文将介绍Paho及其应用领域,帮助读者更好地了解这个工具。Paho是一个MTT客户端库,支持多种编程语言,包括Java、C++、Python、JavaScript等。Paho库的开源性、跨平台性和易用性,广受欢迎。Paho库的GitHub仓库上有大量的文档和示例代码,方便学习和使用。原创 2023-06-04 12:12:52 · 1831 阅读 · 4 评论 -
【物联网】ARM平台移植openssl-1.1.1详解
OpenSSL是一款开源的安全套接字层(SSL)和加密套接字层(TLS)库,它可以为互联网通信、邮件、文件传输和其他应用程序提供安全保护。它支持多种加密算法,包括对称和非对称加密,并且可以在各种操作系统和硬件平台上运行。OpenSSL由全球各地的开发者和组织共同维护和开发,是目前最流行的SSL和TLS库之一。命令行工具:openssl命令行工具可以用于生成证书、密钥、TLS连接和其他安全操作。库文件:openssl库文件包含了OpenSSL的主要功能,可以在程序中直接使用。原创 2023-06-04 11:48:51 · 2069 阅读 · 0 评论 -
【物联网】超级好用的MQTT客户端软件(MQTTfx下载和安装)
MQTT.fx是一款基于Eclipse Paho,使用Java语言编写的MQTT客户端工具。支持通过Topic订阅和发布消息,用来前期和物理云平台调试非常方便。它是一个用Java编写的MQTT客户端库,可以帮助开发人员在Eclipse环境下快速开发MQTT应用程序。Mqtt.fx提供了一系列功能,包括创建和管理连接,发送和接收消息,以及订阅和取消订阅主题。它还支持许多高级功能,例如持久化连接、自动重试、消息过滤和可靠性传输。Mqtt.fx可以在Eclipse中使用,也可以作为独立的Java应用程序运行。原创 2023-06-04 09:14:18 · 9475 阅读 · 2 评论 -
【物联网】华为云物联网平台-名词解释
名词解释参考:华为云社区。原创 2023-06-02 16:03:45 · 368 阅读 · 0 评论 -
【物联网】华为云物联网开发实践-基于MQTT协议的智慧路灯(mqttfx)
以“智慧路灯”为示例,通过MQTT.fx的设备模拟器替代真实的设备,带您快速体验设备上报数据到物联网平台和远程下发控制命令到设备的全过程。假设:路灯设备上报一条光照强度(luminance)消息;支持远程控制路灯开关状态的命令(switch),上报数据的格式为JSON格式。原创 2023-06-02 15:26:18 · 1212 阅读 · 0 评论 -
【物联网】华为云物联网平台-基于C示例代码的快速体验
基于C代码演示设备通过MQTTS/MQTT协议接入华为云物联网平台,通过平台接口实现南向“数据上报”、“命令下发”的功能,通过应用侧的示例代码接收北向服务端订阅的消息示例。以智慧路灯为例,设备将光照强度等信息上报到IoT平台,应用服务器再接收从平台推送来的设备数据。原创 2023-06-01 20:22:44 · 1390 阅读 · 0 评论 -
【物联网】华为云物联网平台-虚拟设备实现与云端双向通信
虚拟设备名称包含 “Simulator”字样,选择新注册的虚拟设备,单击右侧的“调试”,进入调试界面,同时设备变更为上线状态。在“设备模拟器”区域,输入上报的光照强度值(luminance),单击“发送”,在“应用模拟器”区域查看上报的结果。6.2 单击“在线调试”页签,单击“新增测试设备”,在弹出的页面中选择“虚拟设备”,并单击确认。5.2 在产品详情“模型定义”页面,单击“自定义模型”,配置产品的服务。在“新增命令”页面,单击“新增输入参数”,填写相关信息后,单击“确定”。步骤3:注册虚拟设备。原创 2023-06-01 17:44:12 · 1340 阅读 · 0 评论 -
【物联网】华为云物联网平台-向导式极速体验
4.7 解压huaweicloud_iot_device_quickstart.zip文件。4.8 运行huaweicloud-iot-device-quickstart.exe。4.2 在左侧的**“总览”**菜单栏里,单击“快速体验”按钮即可开始体验。4.4 注册设备,设备标识码和设备名称自己命名即可,然后点击注册设备。4.3 产品定义,选择产品名称,然后点击创建产品。4.5 选择设备演示包,然后点击下一步。支持向导式极速体验,企业版不支持。4.6 点击下载设备演示包。,单击“管理控制台”。原创 2023-06-01 16:44:54 · 369 阅读 · 0 评论