文章归档

学习笔记

自建CA服务器学习笔记

​ 我人生中的第一次遇到证书问题并加以解决,还是在大约3年前,那时还专门写了一篇文章《解决Chrome更新到63后.dev/.app后缀域名强制HTTPS的问题》。当时是因为本地开发环境一直都是用的.dev后缀结尾的域名,一直都是以http://www.test.dev的方式进行本地web开发。那天浏览器突然提示访问不安全的网站,此处黑人问号?? Chrome强制.dev后缀的域名都得走https,无奈之下,不想更换后缀的我走上了自签发https证书的道路,但当时直接使用了开源工具,并没有深入研究。

​ 日月如梭,今时今日的我已经不再是那个年少的小孩!日常工作中免不了与SSL/TLS这玩意儿打交道,除了访问web用https外,只要与建立加密连接有关的统统都少不了证书和秘钥。这次需要自建CA服务器并签发下级证书以达到加密访问的目的,那么这次的笔记将会成为以后温习的主要文献了。(哈哈哈)

阅读剩下更多

默认配图
学习笔记

ESP-Touch智能配网是如何实现的

写在前面

近年来物联网发展迅速,目前依旧是比较热门的领域,现今世界处处都是物联网,可谓无处不物联(哈哈,扯远了!)。我接触物联网这块比较晚,去年才开始入门,最早的实战项目就是将传感器上云,借助腾讯的物联网通信平台,我可以对传感器进行远程控制以及读取传感器采集到的数据。当然,这些都离不开网络(Internet)。设备上云的首要前提就是接入互联网,而接入互联网的方式有很多种(如:有线网络、无线WiFi、NB-IoT、移动蜂窝2G/3G/4G等),不同场景下自然有各自合适的网络接入方式。

我们现在生活中的很多智能家电都是通过WiFi接入的,不用我说大家也能举很多例子(像小米智能家居有小爱同学、空气净化器、电视、冰箱、洗衣机等blablabla~),这些设备刚到手的时候你一般都需要按照指导说明去下载个APP,然后绑定设备给设备配网,给设备配网可不像给手机连上WiFi那么容易,毕竟你买的小爱同学不能接鼠标键盘,也没有操作系统给你用。那么配网是如何完成的呢?

快速配网的两种途径:

  1. SoftAP配网
  2. SmartConfig配网

第一种很好理解,就类似给自己家里的路由器配置网络,你首先通过WiFi或者网线连接你家路由器,然后进入http://192.168.xxx.xxx进行Web可视化配置,也有一些小型单片机,自己搭载了一个WiFi模组以AP模式运行,你通过指定的APP就可以与其建立通信并发送配置信息过去。但是这种配网方式比较繁琐,用户体验较差。

第二种就比较高级了,你只需要打开设备的配网开关,并在你的手机上连接即将给设备配置的WiFi网络,然后在App或者小程序上输入对应的密码并点击开始,设备能够在很短的时间内(大约7~30s)就可以完成网络的配置。

这篇文章我将以我自己的学习成果来讲述SmartConfig配网的整个过程

阅读剩下更多

ESP-Touch智能配网是如何实现的
开放平台

腾讯云物联网通信平台设备动态注册鉴权流程

前置条件

物联网平台

  1. 在物联网平台创建新产品(普通产品),认证方式选用“秘钥认证”。
  2. 在产品设置中打开动态注册配置开关,并允许自动创建设备。
  3. 记录产品ID和产品秘钥(ProductID/ProductSecret)。

设备端

  1. 命名设备的唯一标识(如设备MAC、IMEI号、芯片ID等)即DeviceName。
  2. 将物联网平台获取的产品ID和产品秘钥烧录至设备中。

注册流程

第一步:生成验签参数

1
2
3
4
deviceName: #设备名称
nonce: #随机整数
productId: #产品ID
timestamp: #时间戳

拼接字符串“deviceName=%s&nonce=%d&productId=%s&timestamp=%d”,使用HMAC_SHA1算法,ProductSecret作为Key对字符串进行摘要,然后使用Base64编码该摘要获得验签参数(Signature)的值

阅读剩下更多

默认配图
算法

线性插值算法之一维数组矩阵

此篇文章用于记录工作中所需的数据插值算法:线性插值(以两个相邻数据的均值作为中间值插入两数之间)

惊喜预览图:

原始数据:原始采集动图一次插值数据:1次插值数据动图二次插值数据:2次插值数据动图

现有数据是一个8x8的温度矩阵(值为真实温度的100倍),存放在一个长度为64的一维数组中,测试数据如下:

1
2275,2250,2350,2350,2325,2350,2325,2400,2325,2275,2350,2350,2350,2350,2325,2350,2275,2300,2325,2350,2325,2300,2350,2325,2200,2275,2250,2275,2325,2275,2300,2275,2250,2250,2225,2250,2275,2325,2325,2350,2200,2250,2275,2250,2300,2275,2300,2325,2200,2250,2200,2250,2375,2325,2250,2250,2100,2125,2225,2300,2450,2325,2200,2225

问题分析

将8x8的矩阵利用插值算法转化成15x15(8个数据中插入7个虚拟值)矩阵根本思路:

  1. 将8x8的数据进行横向插值为一个15x8的数组;
  2. 将15x8的数字进行纵向插值为一个15x15的数组;

转化公式的分析:

先将问题简化,分析一个4x4的矩阵:

阅读剩下更多

默认配图
返回顶部