Wireless Farmer的博客

发布BLE、WIFI、Zigbee等无线通讯技术的个人学习笔记

  • 博客(45)
  • 收藏
  • 关注

原创 基于Docker+WSL+VSCODE的ESP32-C3开发环境搭建

前言继红旭无线发布了乐鑫ESP32-C3开发环境的搭键的视频教程后,微信群中有个网友私下跟小编聊到:“其实还有更简单的环境搭建方式”,然后丢下这两行命令就走了:docker pull espressif/idfdocker run -it espressif/idf 剩下一脸茫然的小编,一时半会不知所措;后来,抱着试一试且装逼的心态调查了一番,发现果然是个大杀器;众所周知,嵌入式这个圈子相较于互联网,在工具方面是绝对被碾压的,因为嵌入式开发者不断地在重复造轮子,效率极低!!!这也是为什么很多人喜欢

2022-04-08 14:10:02 3825 7

原创 基于JTAG对ESP32-C3的调试及下载

前言继上一章节《基于VSCODE的ESP32C3开发环境的搭建》之后,小编相信大部分读者借助红旭的肩膀,应该可以轻松地搞定ESP32-C3的开发环境搭建,并完成一些基础的开发;接下来,让我们继续趁热打铁,讲讲如何利用ESP32-C3的JTAG接口,对ESP32-C3进行下载或者调试仿真。JTAG接口为了更好地阐述并实现对ESP32-C3进行下载或者调试仿真,这里小编以HX-DK-商为蓝本,进行一系列的配置和讲解。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5X5w

2021-10-19 22:10:12 5996 6

原创 基于VSCODE的ESP32C3开发环境的搭建

前言众所周知,没有哪个工程师不被国内半导体厂商芯片的开发环境,折腾地死去活来的:要么核心技术在国外,导致下载的进度条根本不会动要么就是明明按照操作手册来,但是一编译就N多个错误要么安装的过程中又缺失某个文件,但官方的步骤中又没有提及要么提供的文档内容前后矛盾,让人看了之后一脸懵逼要全部写下来这些遭遇,小编可以围绕这个主题轻松写下一篇1000字以上的论文因此,小编在这里用极其微弱的声音呼吁,要想国货当自强,能不能花点人力先将最简单的开发环境弄成熟、好用、方便、稳定,又或者扶持第三方的团队一起

2021-10-19 21:58:49 3571 13

原创 【旭选优品】低功耗电流分析仪

2021-08-15 22:05:21 403

原创 【BLE学习笔记】之 BLE基础知识

前言很多时候,对于BLE的开发者而言,有90%的时间会用在coding上,从而很容易忽视了BLE硬件相关的知识。小编在下键盘准备敲打内容的时候,在想 “到底要不要花费时间在这占比很小的硬件部分?为什么BLE开发者都不太关心BLE硬件相关的内容?”,既然大家能看到这篇文章,说明小编认为BLE的硬件还是必须要了解的;至于为啥多数人不关注BLE硬件相关的内容,这个跟目前国内的市场有很大的关系,多数国内的BLE产品可以说只要有蓝牙这个功能就行了,至于RF参数会不会超标、连接更远的距离、能不能过得了认证等等这些并不

2021-08-13 14:31:47 7532 9

原创 4.0 IV Index更新过程

前言本篇文章是SIG Mesh保护网络安全的一种机制之一,同时也是红旭无线SIG Mesh理论教程的收尾之作;本身这个机制是不需要应用层的用户去干预的,SIG MESH协议栈会根据自身的情况,自主地去触发并维护这个IV Index更新进程;但是,为了让开发者知其然而知其所以然,小编认为还是很有必要讲解一番。为什么要IV Index更新在讲解IV Index更新之前,就不得不提及Sequence Number;甚至我们可以认为IV Index就是专门用于Sequence Number的补充;不知道读者

2021-03-30 21:53:42 778

原创 3.3 自主分包与MESH协议分包重组的区别

前言虽然Bluetooth SIG专门制订了 《Mesh Model Specification》,但是仍然不能满足目前IOT设备的需求,很多目前市面上现有的产品均没有现成的Model可以拿来直接使用;另外一方面,芯片原厂并没有提供Model标准中指及的全部模型,只提供了部分的模型;但是,蓝牙联盟并没有将路堵死,也给开发者开放了一个Vendor Model,这样让产品的制造商有了更多的余地,这有利于Model的扩展,因为SIG Mesh产品最终还是要过认证的,如果某个厂商自定义的Vendor Model很

2021-02-24 21:10:38 535

原创 3.2 创建红旭Model

前言继上一篇Vendor Model浅析,大家如今知道,不管是SIG Model还是Vendor Model,其组成的结构都是一样的,即Model ID + Opcode + Message;因此,上篇的文章为本篇章创建红旭Model提供了理论的基础,既然要创建红旭Model,那么我们先看看红旭的开发板又有哪些功能,废话不多说:上图!!!功能定义由前言可知,红旭的开发板共有4个用户按键、4个LED灯、1个串口、一个USB和NFC接口;然而,此次红旭Model只用到按键、LED以及串口,其具体的功能定

2021-01-24 22:20:50 456

原创 3.1 Vendor Model浅析

前言众所周知,SIG Mesh网络中的数据交互是通过元素和模型来实现的;而元素又是模型的集合,即元素更多的是提供一个单播地址即一个入口点,然后进行入口点进行数据流的交互则是在模型中实现;更多元素和模型的内容请参考什么是Element和Model;除了 《Mesh_Model_Specification》 之外,SIG还需要Vendor Model的存在,即自定义模型;这也是本篇章的主题。Vendor Model在开始讲解Vendor Model之前,我们先看看Model在整个节点是如何存在的;从上

2021-01-06 21:03:15 1882 2

原创 如何利用红旭无线的nRF52840 Dongle进行SIG MESH抓包和BLE抓包

前言小编之前经常对群里的网友说“几十块钱的捉包都可以捉Mesh数据包的话,那Ellisys和Frontline不就倒闭了吗?”后来发现小编还是太“草率”了;随着科技地不断发展,目前是可以使用低成本的硬件来实现Mesh数据的捉包与解密的,那么到底是怎么做的呢?Here we go!前期准备首先,我们需要如下几个工具:红旭无线的52840 Dongle大名鼎鼎的协议分析软件Wireshark安装最新的版本即可Python 3.6以上注意:安装时需要将pip也安装上

2020-12-23 22:20:19 1651

原创 3.0 Multi Role的实现

前言继前面的一序列多篇幅的理论基础讲解,我估计读者们都磨刀霍霍想要狠狠地 “撸一发代码”;你们所想的,小编我已经Get到了,这不,这篇章就让大家结合之前诸多篇章所学到的知识,融会贯通到代码中来。Role我不知道读者们对小编之前的SIG MESH各个角色的功能简介中的内容还有没有印象,我在该篇文章提到,Mesh网络有以下几个角色:Proxy NodeRelay NodeFriend NodeLow Power NodeNormal Node但是,前四个角色中的一个或者多个并不是必须要存

2020-12-05 23:42:40 484 2

原创 2.9 Friend Node与Low Power Node详解及其工作流程

前言继前面章节的Proxy和Relay节点之后,该篇将讲深入讲解朋友节点的作用及其工作的流程。其在整个BLE Mesh网络中是极其重要的一个特性,甚至可以认为如果没有朋友这个特性的话,BLE Mesh是不完整的或者说是有缺陷的;因为IoT领域充斥着大量的由电池供电的低功耗设备,这也导致需要一个特别的设备来临时缓存这些低功耗设备的信息,在BLE Mesh中我们称这个特殊的设备为朋友节点,而其他的Mesh网络则称之为父节点;反之,低功耗设备就称为低功耗节点;但是,它们本质的功能都是相同的。由上图可以看出,

2020-11-17 22:45:36 736

原创 2.8 Relay Node详解及其工作流程

前言该章节小编将讲解中继节点的特性以及其工作流程,毫无疑问Relay Node在整个Mesh网络中置关重要的,可能很多读者可能会觉得 “这有什么难的?不就是帮忙转发其他的节点的Network PDU,从而扩大Mesh网络的范围嘛”;那么,你知道:“什么样的NetWork PDU才会被转发吗?”“已经帮忙中继了别人的数据,但是又收到该节点射频范围内其他节点所转发的同样的数据包,这个时候怎么处理?”“转发别人的数据包,需要更改哪些内容?直接原封发出去可以吗?”“中继节点自己做为源头时发送出去的数据包

2020-10-29 22:26:45 804 2

原创 2.7 Proxy Node详解及其工作流程

前言小编在前面的几个章节讲解了MESH各层的帧格式、入网的整个过程以及基础模型的作用,基本上构筑了SIG MESH的理论地基;接下来让读者们跟随着小编的步伐趁热打铁,继续讲解节点中各角色的工作流程是怎么样的;对于各角色的功能,不知道大家脑海里是否还有印象,小编在SIG MESH各个角色的功能简介中就提及到,节点的角色是由其特性所决定,而这个特性是可选的,一个节点可以存在零个或者多个特性。那么,接下来小编要讲的就是Proxy特性,即代理节点。Proxy Protocol既然是要讲解到代理节点,那么就不得

2020-10-18 22:32:51 745 2

原创 2.6 Health Model浅析

前言继上一章节Configuration Model浅析 之后,小编相信一直读我们文章的朋友现在已经知道如何通过Configuration Model去配置或者获取节点的相关参数;但是,如果想要进一步获取当前节点的“健康”状态,还是需要Health Model来处理;那么,这个时候又会有读者跳出来说:“在Configuration Model章节中不是有Heartbeat吗?为什么还要这个Health Model?”那么,我们就讲解一下它们之间的区别:Heartbeat最常用的就是告诉同一个

2020-10-08 23:27:41 653

原创 2.5 Configuration Model浅析

前言我相信读过小编前面章节内容的读者,或多或少已经对整个BLE Mesh的入网过程,Mesh Packet的各个层的作用以及在Mesh网络中数据是如何交互的有一定的了解;那么,接下来我们继续讲解Mesh中的基础模型 (Foundation Model)之一的Configuration Model。然而,Configuration Model又分两种类型:ServerClient然而,需要注意的是:不管是Server还是Client,在节点中都是强制要求必须有的一个模型。Configuratio

2020-10-02 16:36:40 1860

原创 2.4 BLE Mesh各层帧包格式详解

前言继前面几个章节的铺垫,我想读者或多或少对BLE MESH整个入网过程的了解,应该十成中起码占了有八成吧,剩下的2成通过反复阅读应该不是什么大问题;讲完了BLE MESH入网过程,那么接下来就是进行Model之间的数据交互了;这也是以后BLE MESH开发过程需要掌握的重要知识,试想一下这样一个场景:我想没有人希望这样子吧?只有深刻地了解各个层的帧结构,当遇到这样或那样的问题时,我们通过抓包器分析对比就能很快锁定问题的源头,从而为我们快速解决问题打下坚实的基础,这也是本篇章节的主要目的。PB-GA

2020-09-27 21:14:46 2047

原创 2.3 SIG MESH第一个实例---Generic On Off Model

前言通过前面的理论铺垫,我相信大部分读者应该对SIG MESH有了一定的了解了吧;因为前面的几个章节都比较偏向于理论,所以该章节我们配合示例工程来巩固并加深对SIG MESH的一些概念以及流程的了解。Light Switch Server本章小编选择最简单的标准模型Generic On Off为例,将前面讲解到的理论知识在本示例工程中尽可能多地穿插讲解。在开始之前,我们先看看主函数由哪几部分组成:int main(void){ initialize(); start();

2020-09-23 21:17:46 1085

原创 2.2 PB-ADV入网过程

前言我相信看过我们PB-GATT入网过程的读者,应该对入网的全过程有了一个相对程度的了解吧;当然啦,如果短期间看不明白也没有关系,那就多看几遍。接下来,小编仍然还是给大家讲解Mesh入网的全过程,只不过此次是PB-ADV的方式入网;那么,接下来先讲讲什么是PB-ADV。什么是PB-ADV?对于有一些了解的读者,看到这个名词时肯定会说“这不就是通过广播包互相收发数据,从而配置入网嘛”,其实对于总的概括来说是没有错的。但是,我们有一些关键的地方我们仍然还要注意:与PB-GATT不同的是,PB-A

2020-09-19 14:10:23 1144 11

原创 2.1 PB-GATT入网过程

前言根据我们前面的几个章节内容可知,目前可以通过两种方式进行入网操作:PB-GATT主要用于那些不具备PB-ADV特性的设备,间接地加入SIG Mesh网络,如手机、平板电脑等等;前提是未启动配置的设备即Unprovisioned device,使能了proxy特性;PB-ADV通过ADV承载的方式,将未启动配置的设备加入SIG Mesh网络,多用于携带有SIG Mesh协议栈的设备;那么,本章节主要讲解如何通过PB-GATT的方式,将unprovisioned device加入S.

2020-09-12 22:38:09 1714 3

原创 2.0 Mesh Beacon帧格式

前言基础篇章已经讲解完成,我坚信大伙应该对SIG Mesh已经有了大概的概念。接下来,让我们继续前进深层次地了解这些概念是如何变成现实中看不见摸不着,但是又能监测到的Mesh信标是怎么样的。SIG Mesh Beacon载荷包关注红旭无线Mesh教程的朋友,我相信大家应该对SIG MESH协议各个层的作用中提到的SIG Mesh载荷包还有印象吧?Mesh的数据包是BLE广播包的另外一种体现...

2020-01-30 15:15:59 3046 14

原创 1.7 如何使用VSCode搭建SIG MESH开发环境

前言继上一章节讲完了如何使用SES搭建SIG MESH开发环境,我相信大部分人都已经可以愉快地使用SES开始自己的SIG MESH之旅了。然而,此次小编却剑走偏锋采用CMake+Vscode+nRF5-SDK-for-Mesh的组合来搭建此次MESH的开发环境。因此,本章节仅适合有一定基础且又进取的人,从而也不太适合啥都要现成的工程师 (如果有的话,看到这里就可以移动你的鼠标到右上角,并单击)...

2019-12-16 21:18:40 944

原创 1.6 如何使用SES搭建SIG MESH开发环境

前言经过前面几个基础章节地讲解,我相信大家就算不能很熟悉地了解SIG MESH,也应该有一定的认知。因此,接下来是时候给大家演示如何使用SES搭建SIG MESH的开发环境了。什么是SESSES是SEGGER Embedded Studio的缩写,后继小编将用SES来代替它。SES是SEGGER公司开发的一个跨平台IDE (支持Windows、Linux、MaC OS)。至于SEGGER公...

2019-12-16 21:00:35 996

原创 1.5 什么是Element和Model

前言原本小编是想将Element(元素)和Model(模型) 拆分开成两篇独立的文章来讲解,但是实在没有办法做到;因为它们两者之间的绑定实在太深了,如何非要将他们剥离之后单独讲解会很容易导致理解不连贯;如果用过BLE的读者应该就会比较好理解这两个新的名词,其分别类似于profile与service的关系。当然啦,新人也不必悲观,下面我用两幅图来让大家先有一个基础的了解。什么是Element(...

2019-08-17 20:22:05 1367

原创 1.4 SIG MESH协议各个层的作用

前言不管是Bluetooth low energy还是SIG MESH的载荷包,都是由不同的协议层从上到下层层拼装,最后由PHY层将数据发送出去;因此,层数越多就意味着越复杂。正因为如此,我们想要深层次的了解SIG MESH就务必要先了解SIG MESH协议栈各层的作用,只有这样你才能玩弄MESH于股掌之中,而不是云里雾里。SIG MESH 协议层一览在我们开始讲解各个层的作用之前,先看看整...

2019-08-17 11:20:23 3121 2

原创 1.3 SIG MESH各个角色的功能简介

前言基本上目前比较主流的一些组网技术,如Zigbee、Thread以及一些私有的Mesh技术,均会引入角色这个概念即想将一个mesh网络搭建起来,务必各个角色各司其职,这个网络才会完善且稳定。如果还是觉得有点抽象,我们可以把mesh网络看成一个 “公司”,一个公司有董事长、总经理、部门经理、普通职工,这样才是一个正常公司的组织架构。同样的,SIG Mesh网络这个组织框架也是如此。特性一个节...

2019-08-15 23:14:12 2301

原创 1.2 Nordic MESH SDK 文档框架简介

前言在开始真正的基于Nordic BLE芯片的SIG Mesh开发之前,我们还须务必先了解Nordic官方提供的SDK包的框架,不要一上来就操作猛如虎,后来发现自己250如何下载Mesh SDK目前下载Mesh SDK开发包的方式有两种:Nordic官网下载这种方式比较简单,但是我不推荐。原因是你要定期上官方查看是否有更新。众所周知,Nordic官网有的时候真的是卡,遇到暴脾气的工...

2019-08-10 13:08:38 2669

原创 1.1 SIG MESH简介

前言继Zigbee、Thread、WiFi Mesh之后,物联网行业中的组网阵营又冒出了一匹黑马—BLE Mesh。然而在这之前,BLE的组网能力在江湖上是排不上名号的。鉴于IPHONE 4S对BLE的普及起到了火箭级的推动作用,使得BLE几乎是智能穿戴届的一哥。可是随着越来越复杂的IoT应用,相较于之前点对点的数据传输,组网的需求越来越旺盛。因此,基于BLE的广播模式的多对多网状网络将彻底打破...

2019-08-06 21:29:25 15599

原创 如何测量脉冲宽度

前言对于脉冲宽度的测量,小编其实也很少有接触到,但是有一次项目量产时需要写一套自动化测试软件,刚好需要测量某个IO口输出的脉冲宽度。所以对一些需要测量的系统,这个操作还是挺常用。因此,小编接下来将介绍如何使用nrf52840实现这个功能。开发环境操作系统Windows10SDKnRF5_SDK_15.2.0_9412b96IDESEGGER Embedded Studio ...

2019-02-04 16:48:58 17154

原创 如何使用硬件定时器及计数器

前言我相信在嵌入式领域的各位大佬,不管在什么样的项目或多或少都是要用到定时器吧,基本上大部分项目均会涉及到定时。然而,计数或许用得会比较少。那么今天小编就给大伙讲讲如何配置使用Nordic 52840的定时器以及计数器。原理小编这个人有个习惯,面对新的物种或者技术我均会先去了解下原理。最终才会去写代码。我个人认为写代码是最不费时间的,最费时间的是写代码前期的了解以及思路构思。如果前期准备的不...

2019-02-03 23:03:31 3454

原创 如何修复或者更新nRF52840 Dongle固件

前言近期,nRF Connect的版本升级到了v2.5.0,导致一些发货出去的nRF52840 Dongle根据nRF Connect的指引升级Bootloader时,出现无法升级的情况。最初,我们在遇到这个问题时也很纳闷,为什么在v2.4.0版本升级没有问题,怎么到了v2.5.0反而出问题了呢。后来,我们在官方的Release Note中看到了如下信息:Updated connectivi...

2019-02-01 15:48:02 6463 5

原创 什么是 PPI,它能干什么?

前言在我接触Nordic的BLE之前,我从未听说过PPI,更不知PPI是何物。后经查阅,发现这东西真叼似DMA又不是DMA,但是用起来又跟DMA很像。共同点就是大家都完全释放了CPU,不同点则是DMA是从内存中存取数据,而PPI则是有点类似于区块链的智能合约一样,只要条件满足Event就会去触发Task.开发环境操作系统Windows10SDKnRF5_SDK_15.2.0_94...

2019-02-01 15:21:42 3851 2

原创 单击,双击,N 击又有何难?

前言不管是初学者还是已经在职场上耕耘多年的老工程师,不管是触摸的还是机械的开关多多少少会离不开跟按键打交道。但是,很多IOT的产品基本上很难看到一排的按键的,大多都是零星的1~2个按键。因此,要想在这么少的按键上实现复杂的功能,就务必会涉及到各种功能组合键。基于小编这几年项目上的经验,单击、双击、长按以及N击是用到最多的。这里就给大家分享下如何实现这些功能。开发环境操作系统Window...

2019-01-27 16:47:02 783

原创 PWM点灯,我们是专业的

前言一说到PWM我想对搞嵌入式的人来说再熟悉不过了,基本上不会有人不认识PWM是什么东西。PWM其全称为Pulse Width Modulation,翻译成中文就叫脉冲宽度调制。然而,小编觉得这样的叫法太装逼了,说得通俗一点不就是方波嘛,高电平持续多长时间,低电平持续多长时间。高电平的时间加上低电平的时间就是一整个周期。这样用土话解释一番会不会更好理解一点呢?可是,就这么简单的玩意,我仍然听到...

2019-01-27 15:58:07 1986 2

原创 windows开发ESP32的福音,编译速度堪比Linux

前言在阅读本篇文章之前,为了更好地理解即将展开的内容,读者们还是需要提前阅读如何搭建ESP32开发环境以及使用vscode开发ESP32之修订篇这两篇文章.如果是我们的老朋友,那接下来的内容也自然可以看得明白.接下来,小编将给大家讲解使用全新的方式,更快更适合Windows环境下使用vscode来开发ESP32开发.系统环境小编要讲的内容均在以下环境进行测试通过,其他的系统环境理应...

2018-09-08 13:53:45 11672 4

原创 使用vscode开发ESP32之修订篇

前言 自从小编在网上发布了如何搭建ESP32开发环境这篇文章之后,收到诸多网友的赞评和意见.借此机会,感谢网友们给小编提出宝贵的意见,促进完善该序列的文档.鉴于大家反馈的信息,小编总结并完善了一些内容,故发布了这次的修订篇章节.速度这也是很多网友吐槽最多的一个G点,什么?你说为啥?因为触发了G点很容易高潮.由于历史原因Windows10之前,windows是没有类UNIX模拟...

2018-09-07 17:03:10 14402 2

原创 如何使用Vscode开发调试nRF52840(全网首发)

前言使用nRF52840已经有段时间了,虽然还没有完全将nRF52840的所有功能都玩一遍,但从目前情况来看,做为一款多协议并存的无线芯片来说还是很强大的,即使目前市场上以及公司层面上对其的评价也大多是功能虽强,但价更高。但是,做为Nordic的拳头产品以及随着IoT市场对多协议、大容量以及更复杂的功能的需求越来越旺盛,nRF52840势必在不久的将来会投入各个落地的应用中去。好像扯得有点远了...

2018-09-02 14:27:34 5518 8

原创 Sig Mesh第一课:基于Generic OnOff Model的Mesh点灯应用

前言 该文字教程主要是讲解如何通过Nordic官方的Mesh SDK包,创建一个标准的Generic OnOff模型.目前网络上对于关于SIG MESH相关的实战文字教程很少,截至目前小编写这篇文章时还未发现有任何实战的文字教程.更多的是SIG MESH前景、概念以及跟其他的无线通讯技术的对比.其实,这些概念SIG MESH的spec都有说明的.因些,小编可以毫不客气地说我们红旭应该是全网...

2018-07-19 10:34:50 5441 2

原创 ESP32的第三课:三板斧之利用mbedtls获取天气预报

前言为什么这一篇教程的命名要加上三板斧呢?看过电视剧的都知道,三板斧是隋末唐初名将程咬金的成名绝技,三板斧的招式是一招还比一招猛.继入门教程以及以下两篇实战教程如何创建自己的第一个热点和按键单击以及多击的实现推出以来,据各路大佬读者反馈来看,收到了相当多的正面评价以及高度的赞扬.那种场面千言万语犹如此图在此,小编感谢大家的赞扬,也虚心接受大家的批评.我相信经过阅读上面提到的那些文章之后,现在入...

2018-07-02 15:19:19 1652

原创 Nordic 52840的第一课:Hello World

前言 众所周知,基本上所有嵌入式入门的第一课都是跟灯有关,什么跑马灯、流水灯、点天灯等等.然而,在笔者看来第一课应该跟互联网的第一课一样,向世人宣布我来了,即Hello World.因此,红旭的Nordic 52840第一课也是一样. 准备动作在准备开始Hello World之前,我们还必须要有一个Nordic 52840的模板工程,这样我们才可以在工程模版的基础上进行...

2018-06-15 13:17:00 4237 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除