cjson

#2020征文-开发板#鸿蒙开发板智能家居项目

吃可爱长大的小学妹 提交于 2021-01-26 09:52:20
鸿蒙智能家居项目 目录: 一、系统介绍 1 二、功能描述 2 (1)家电控制功能 2 (2)配网功能 3 (3)数据存储功能 3 (4)MQTT、OneNET接入协议支持 3 (5)驱动能力 3 三、代码描述 3 (1)代码流程 3 (2)家电控制部分 4 (3)OneNET初始化部分 5 (4)LED亮度控制 6 (5)数据存储 6 (6)按键处理 7 一、系统介绍 本系统硬件采用Hispark WiFi开发板,主控芯片为Hi3861,操作系统为Harmony OS,软件上支持MQTT、OneNET接入协议,驱动开发包括按键驱动、OLED驱动、PWD驱动开发,其它功能模块有NV数据存储、WiFi配网功能。 整个系统框架如下: 整个系统主要分为3大部分: (1)云平台:这里我使用的是OneNET云平台 (2)Harmony OS软件开发:在开发板上实现相关功能。 (3)硬件:使用到的硬件有:LED灯、OLED屏幕、按键。 整个鸿蒙开发板的软件分为4层: (1)应用:实现智能家居的应用逻辑处理部分。 (2)功能组件:包括MQTT、JSON、数据存储、WiFi配网功能等,为智能家居应用提供关键能力。 (3)内核:Harmony OS内核提供关键能力。 (4)驱动:包括PWM驱动、OLED驱动、WiFi驱动、按键驱动等,为硬件控制提供了能力。 二、功能描述 (1)家电控制功能

疫情监控三部曲——在STM32F103 MCU上实现(裸机版)

故事扮演 提交于 2020-12-12 12:49:08
好久没更新文章了,看看又做了什么些好玩的东西。 文章目录 前言 开发板的选择 获取疫情数据API接口 ESP8266发送HTTPS请求 LCD显示 代码下载 在其他MCU上的实现 前言 2020,新冠肺炎疫情在全球蔓延,国内得到了有效的控制,最近国内部分地区的疫情形势又紧张起来。 不知道大家是否了解我之前做的一个新冠肺炎疫情监控平台,基于跨平台Qt实现,从桌面Qt,到嵌入式Qt,相关文章: 基于桌面Qt环境的疫情监控平台开发笔记 : [开源]基于桌面Qt的肺炎疫情监控平台 [开源]基于桌面Qt的肺炎疫情监控平台1.1版本 基于嵌入式Qt环境的疫情监控平台开发笔记 : [开源]我用STM32MP1做了个疫情监控平台1—交叉编译环境搭建 [开源]我用STM32MP1做了个疫情监控平台2—Qt环境搭建 [开源]我用STM32MP1做了个疫情监控平台3—疫情监控平台实现 [开源]我用STM32MP1做了个疫情监控平台4—功能完善界面重新设计 作为疫情监控三部曲: 桌面PC > 嵌入式ARM Linux > MCU 。在前面两个平台上实现之后,就想着在内存和性能都比较有限的MCU上实现,比如STM32F103,但一直都没有找到一个合适的API接口,直到最近发现了一个数据量比较小,连接比较稳定的API。 于是,设计了这个基于STM32 MCU的疫情监控平台

基于STM32MP1和Qt的新冠疫情监控平台

自作多情 提交于 2020-12-04 06:02:50
0.前言 之前我使用桌面版本Qt实现了肺炎疫情监控平台: [开源]我用Qt做了个疫情数据实时监控平台 既然Qt是跨平台的,那么能不能在嵌入式平台实现一下呢? 最近刚好看到, ST官方在开展创客大赛活动,就买了米尔科技的YA157C开发板移植一下。 桌面Linux版本的运行效果: YA157C开发板实现效果: 1.准备工作 开发板简介 开发板型号: MYD-YA157C,512MB DDR3,4GB eMMC 主控芯片: STM32MP157AAC3 光盘资料版本: MYD-YA157C-20191225.iso 开发板如下: MYD-YA157C开发套件由核心板MYC-YA157C和底板MYB-YA157C组成,主控芯片是ST目前最高配置的MPU—— STM32MP157AAC3 ,双核Corte-A7+Cortex-M4,主频最高可达650Mhz。 硬件准备 12v电源适配器 USB-TTL模块:115200/8/1/无 网线 开发板和主机配置 开发板Linux版本:Linux 4.19.9 开发板IP:192.168.1.136 主机配置:Ubuntu 16.04 主机IP:192.168.1.111 2.数据接口的获取 疫情监控平台的实现,简单的说,就是数据的展示,而数据从哪里来呢? 现在很多互联网公司都做了自己的疫情监控平台,我这里采用的是腾讯新闻的数据源,数据内容很丰富

Redis的搭建和Redis的集群搭建

时光总嘲笑我的痴心妄想 提交于 2020-11-25 09:20:31
1、Redis的官网: https://redis.io/ Redis的测试网站: http://try.redis.io/ 2、参考博客: https://www.cnblogs.com/mafly/p/redis_cluster.html http://blog.mayongfa.cn/258.html windows安装参考: http://www.cnblogs.com/jaign/articles/7920588.html#top 3、Centos操作系统中Redis的安装: 开始使用的hadoop用户和自己指定的目录,然后出现了一些问题,最后使用了root用户进行安装,顺利安装。自己安装多小心吧。 首先下载一下Redis,详细参考 http://blog.mayongfa.cn/258.html 。 然后将redis解压缩到指定的目录,解压缩操作: 4、编译安装redis: 执行make出现错误: [hadoop@slaver1 package]$ cd ../soft/redis- 3.2 . 5 / [hadoop@slaver1 redis - 3.2 . 5 ]$ ls 00 -RELEASENOTES COPYING Makefile redis.conf runtest- sentinel tests BUGS deps MANIFESTO runtest

润小云解读鸿蒙OS系列(一):分布式软总线概览

拈花ヽ惹草 提交于 2020-11-11 19:49:14
当年思过崖上,令狐冲苦战田伯光,幸得风老前辈指引:你先使一招‘白虹贯日’,跟着便使‘有凤来仪’,再使一招‘金雁横空’,接下来使‘截剑式’……一口气滔滔不绝的说了三十招招式。那三十招招式令狐冲都曾学过,连贯起来却何其复杂,还好有风老前辈指导,摆脱拘泥不化,融会贯通,终悟独孤九剑。 如今的IT设备种类繁多,客厅的电视,墙上的摄像头,手心的手机,耳朵里的蓝牙耳机,手腕上的智能手表,桌上的电脑;它们可以独立工作,也可以用某种方式进行相互连接;但如果希望它们协同工作,发挥出更大的威力,就要颠覆传统的观念,用新的视角来理解它们;现在想法有了,招式也有了(各IT设备),缺的是融合;华为的鸿蒙OS便为此而生,其中的分布式软总线模块,便是剑法心经。 无招胜有招,有了分布式软总线的加持,我们名下的这些设备可以实现无缝互联,对于用户而言,无论设备在哪,以什么方式进行接入,之间如何互通,这些复杂的逻辑由鸿蒙搞定,无视距离和协议的界限,即可以最简单的方式,高效、安全地进行数据交互。 同时在鸿蒙OS的体系中,分布式软总线也是另外两大绝学 - 分布式数据管理和分布式任务调度的基石;因此学习和理解分布式软总线,也是深入了解整个鸿蒙OS不错的入口。 鸿蒙OS代码已逐步开源,下载源码并非难事;分布式软中线代码仓库地址如下: communication_interfaces_kits_softbuskit_lite

openresty lua的 userdata:null与ngx.null问题总结

久未见 提交于 2020-08-18 08:37:50
背景 解析json的时候发现一个问题,如果字段中包含null值, 返回的结果不是 nil 而是 userdata 类型的 ngx.null 分析 nil是lua中基本数据类型之一,用来表示一个无效值,如果一个变量被设置为nil相当于告知该变量未定义(不存在)一样 OpenResty 的 Lua 接口还提供了一种特殊的空值,即 ngx.null,用来表示不同于 nil 的“空值” json中的value如果是null, 经过cjson.decode以后,该 value的类型就是userdata,值是ngx.null , 如果强制转换为字符串,则打印出来的内容是 “userdata: null”, 所以decode之后,判断value是否为空的时候,需要和ngx.null比较 测试 -- test_cjson.lua local cjson = require('cjson') local cjson_decode = cjson.decode local cjson_encode = cjson.encode local aa = '{"cc":null}' bb = cjson_decode(aa) print(type(bb.cc)) print(tostring(bb.cc)) 输出 userdata userdata: NULL 参考 https://notes

基于mosquitto库搭建mqtt客户端发布实现与阿里云的通信

自作多情 提交于 2020-08-15 17:55:43
我们先看一下搭建mqtt的基本流程图吧(不是项目的流程图,我简单画的一个)。 关于调用mosquitto库中的函数的学习,可以参考一下我写的常见mosquitto库中函数的学习: https://blog.csdn.net/makunIT/article/details/107283260 在写代码的时候,我用到了iniparser库和cJSON库,我们要先明白iniparser库以及cJSON库,为什么要学习这个呢?首先iniparser库可以对ini文件进行解析、设置、删除等操作,我们知道当我们与阿里云进行通信时,需要很多参数,比如要知道阿里云的域名,端口、以及username、passwd、客户端id以及发布的主题、服务质量都需要进行配置,所以使用iniparsesr库可以解决很多配置的问题。如下图是我写的ini文件 关于iniparser库的学习可以参考以下我之前写的博客,博客链接为: https://blog.csdn.net/makunIT/article/details/107209915 那么我们为什么还需要学习cJSON库那,cJSON是一个超轻巧,携带方便,单文件,简答的可以作为ANSI-C标准的解析器。而json是一种在服务器端和客户端交换数据的轻量级数据格式,而对于阿里云的上报会比较严格,还需要相同的json格式发布阿里云平台才能收到

阿里云物联网的设备监控与固件升级(OTA)实现

百般思念 提交于 2020-08-12 00:08:43
阿里云物联网的设备监控与固件升级(OTA)实现 阿里云物联网平台提供API接口(iotkit-Sdk开发包)方便设备接入其物联网平台,只要调用其函数接口就可以实现设备数据快速上网与云端操控。本文将就设备状态监控与固件升级展示物联网平台如何实现设备接入与维护的。 本文采用了阿里云V2.10的源代码开发包[https://github.com/aliyun/iotkit-embedded],通过源代码编译了其静态库。 1、在本文案例中将实现对边缘设备内的某服务进行启动、停止的状态监控,和远程升级该服务。 首先看看如何实现服务的启动、停止以及状态查询,直接上代码: win平台,CLogger为日志类,读者可用其他输出函数代替: #include <windows.h> #include <tchar.h> #include <strsafe.h> //#include <iostream> #include "atlcomtime.h" #pragma comment(lib, "advapi32.lib") #include "Log.h" VOID WINSVC::SvcQuery(char *svr, int &svc_state) { SC_HANDLE schSCManager; SC_HANDLE schService; // Get a handle to the SCM

不可不知的JSON处理库(cJSON)

喜欢而已 提交于 2020-08-09 05:53:55
不可不知的JSON处理库(cJSON) ANSI C中的超轻量级JSON解析器 JSON(JavaScript对象表示法)是一种轻量级的数据交换格式。人类易于阅读和书写。机器很容易解析和生成。它基于JavaScript编程语言标准ECMA-262第三版(1999年12月)的子集 。JSON是一种完全独立于语言的文本格式,但是使用C语言家族(包括C,C ++,C#,Java,JavaScript,Perl,Python等)的程序员熟悉的约定。这些属性使JSON成为理想的数据交换语言。 cJSON旨在成为您可以完成工作的最简单的解析器。它是资源只有一个C的头文件和C文件,所以方便移植。它可以为你各种需要的json字符串处理,包括打包、解析、修改、删除、添加等。在这里将一探究竟。 在这里将着重叙述json的打包和解析,更多处理玩法,见文章末尾链接。 开始cJSON cJSON合并到您的项目 因为整个库只有一个C文件和一个头文件,所以您只需复制cJSON.h并复制cJSON.c到项目源并开始使用它。 cJSON用ANSI C(C89)编写,以便支持尽可能多的平台和编译器。 下载: https://github.com/DaveGamble/cJSON/releases Cjson结构体 / The cJSON structure: / typedef struct cJSON {

一周总结——2020.6.28

断了今生、忘了曾经 提交于 2020-07-23 19:58:02
目录标题 前言 1.本周总结 ①硬件部分 ②软件部分 2.下周计划 ①硬件部分 ②软件部分 总结 前言 1.本周总结 ①硬件部分 自学完模电信号转换电路部分,练习使用热风枪焊接。 ②软件部分 FreeRTOS应用层学完,并制作了个基于stm32+FreeRTOS+ESP8266的小型气象站的项目并附带一个时间(通过读取服务器的数据,用cJSON解码,并通过操作系统实时显示)(虽然不是很难,但是坑还是非常的多。。。。比如FreeRTOS和cJSON申请内存的函数冲突,Heap_Size太小导致解码卡死等等。。。。。。)(读取的是最近三天的天气,但由于懒得解码了,就只读了隔天的数据。。。。) 2.下周计划 ①硬件部分 打算再次温故一下前面的内容(打算偷点懒😂,因为着实学着有点头疼了) ②软件部分 Linux基本入门,FreeRTOS基本学完(共25章,已看到20章,还差5章) 总结 深入学习了下stm32,比如利用操作系统同时驱动各种模块,又可以用emWin等进行GUI开发,打算抽空研究一下emWin(移植又是一个大坑😭),不过重心还是打算放在Linux上。 来源: oschina 链接: https://my.oschina.net/u/4258176/blog/4329541