首页:修订间差异

来自资料库(何亚红)
跳转到导航 跳转到搜索
无编辑摘要
(未显示同一用户的25个中间版本)
第1行: 第1行:
== 常用技术栈 ==
== 常用技术栈 ==
=== 可连接TCP/IP的物联网设备 ===
=== 可连接TCP/IP的物联网设备 ===
开发物联网设备时,无论设备是通过WiFi、2G/3G/4G/5G或以太网连接网络,如设备支持TCP/IP,通常采用MQTT作为主要通信协议。<br>
开发物联网设备时,无论设备是通过WiFi、2G/3G/4G/5G或以太网连接网络,如设备支持TCP/IP,通常采用[[MQTT]]作为主要通信协议。
相关WiKi:<br>
* [[Paho.mqtt.embedded-c]]
* [[SimpleMQTTGateWayStack]]
<br>
除了主要通信协议,通常物联网设备还需要支持NTP对时,有时还需要使用到Http作为辅助协议。<br>
除了主要通信协议,通常物联网设备还需要支持NTP对时,有时还需要使用到Http作为辅助协议。<br>
=== 带交流计量功能的设备 ===
=== 带交流计量功能的设备 ===
==== 单相SOC方案 ====
==== 单相SOC方案 ====
第35行: 第32行:


== 常用芯片及模块 ==
== 常用芯片及模块 ==
=== 可编程开发的芯片及模块 ===
=== 常用芯片及核心模块 ===
{| class="wikitable sortable"
{| class="wikitable sortable"
|+ 可编程开发的芯片及模块
|+ 常用芯片及核心模块
|-
|-
! 芯片/模块名称 !! 说明 !! wiki(若有)
! 芯片/模块名称 !! 说明 !! wiki(若有)
第86行: 第83行:
| FreeRTOS || 嵌入式操作系统 || [[FreeRTOS]]
| FreeRTOS || 嵌入式操作系统 || [[FreeRTOS]]
|-
|-
| paho.mqtt.embedded-c || MQTT客户端,可移植到各种芯片平台 || [[paho.mqtt.embedded-c]]
| rt-thread || 物联网嵌入式操作系统 || [[ rt-thread ]]
|-
|nuttx||嵌入式操作系统||[[nuttx]]
|-
|paho.mqtt.embedded-c|| MQTT客户端,可移植到各种芯片平台||[[paho.mqtt.embedded-c]]
|-
|-
| openwrt || 操作系统,嵌入式Linux构建工具 || [[ openwrt ]]
|openwrt||操作系统,嵌入式Linux构建工具||[[ openwrt | openwrt]]
|}
|}


== 常用工具 ==
 
==常用工具==
{| class="wikitable sortable"
{| class="wikitable sortable"
|+ 常用工具
|+常用工具
|-
!名称!!说明!!wiki(若有)/链接地址
|-
|-
! 名称 !! 说明 !! wiki(若有)
|easy-rsa||使用SSL/TLS时,自签证书制作/管理工具||[[easy-rsa]]
|-
|-
| easy-rsa || 使用SSL/TLS时,自签证书制作/管理工具 || [[easy-rsa]]
|buildroot||嵌入式Linux构建工具||[[buildroot]]
|-
|-
| buildroot || 嵌入式Linux构建工具 || [[buildroot]]
|debootstrap||Linux系统根文件系统创建工具,可创建Debian系Linux系统根文件系统||[[debootstrap]]
|-
|-
| debootstrap || Linux系统根文件系统创建工具,可创建Debian系Linux系统根文件系统 || [[debootstrap]]
|crosstool-ng||交叉编译工具链创建工具||[[crosstool-ng]]
|-
|-
| crosstool-ng || 交叉编译工具链创建工具 || [[crosstool-ng]]
|ScreenToGif
|在Windows下录屏制作gif的工具
|https://github.com/NickeManarin/ScreenToGif.git
|}
|}


 
===IDE环境/开发环境/开发工具===
== 部分测试的资源 ==
此章的内容为部分功能正常。<br>
若是自己写的代码,可能出现不可忽视的缺陷的资源。<br>
若是第三方代码,可能是不常用的资源。<br>
=== 软件 ===
{| class="wikitable sortable"
{| class="wikitable sortable"
|+ 软件
|+
!名称
!说明
!wiki(若有)/链接地址
|-
|codeblocks
|免费的C/C++ IDE,可开发多种C/C++程序。本人只要将它用作基于CMake构建的工程的代码编写。
|http://www.codeblocks.org/
|-
|-
! 名称 !! 说明 !! 链接 !! Wiki(若有)
|Microsoft Visual Studio
|微软的开发工具集。本人主要用于开发WIN32程序。本人优先使用codeblocks作为C/C++开发环境,VS占用的空间太大,但有些第三方库在Windows上可能只支持MSVC,故而必须使用VS。
|https://visualstudio.microsoft.com/zh-hans/
|-
|-
| contiki|| 嵌入式操作系统 || http://www.contiki-os.org/ || [[contiki]]
|keil5
|用于ARM嵌入式芯片的开发。注意:keil5不是免费的。
|https://www.keil.com/
|-
|-
| nuttx || 嵌入式操作系统 || https://nuttx.apache.org/ || [[nuttx]]
|IAR
|}
|本人主要使用针对ARM嵌入式芯片的开发。注意:IAR不是免费的。
 
|https://www.iar.com/
=== 芯片及模块 ===
{| class="wikitable sortable"
|+ 芯片记录
|-
|-
! 芯片/模块名称 !! 说明 !! 链接 !! Wiki(若有)
|QtCreator
|用于创建基于Qt的程序。
|https://www.qt.io/product/development-tools
|-
|-
| XT-BL12 || BL602模块,WIFI/蓝牙 SOC,RISC-V内核 || [http://bouffalolab.com/ 博流智能科技] ||
|MounRiver
|基于Eclipse的嵌入式ARM/RISC-V的集成开发环境。本人主要用于测试[https://www.wch.cn/ WCH]的单片机。
|http://www.mounriver.com/
|}
|}


== 尚未测试的资源 ==
===小工具(自写/修改)===
=== 已发现但未使用过的芯片及模块 ===
{| class="wikitable"
{| class="wikitable sortable"
|+
|+ 芯片记录
!名称
!说明
!wiki
!支持平台
|-
|-
! 芯片/模块名称 !! 说明 !! 链接 !! Wiki(若有)
|CC3200_GangGenerator
|生成用于烧录CC3200 SPI Flash的工具
|[[CC3200_GangGenerator]]
|
*Windows
|-
|-
| HT501X || 单相计量SOC,Cortex-M0内核 || [http://www.hitrendtech.com 钜泉光电] ||
|WMToolHelper
| W600烧录工具
|[[WMToolHelper]]
|
*Windows
*Linux (ubuntu 20.04)
|-
|-
| HLK-M50 || RDA5981模块,WIFI SOC,Cortex-M4内核 || [https://www.unisoc.com 紫光展锐] ||
|WinBleTool
| Windows下调试BLE的工具
|[[WinBleTool]]
|
*Windows 10(及以上)
|-
|-
| XR806 || WIFI/蓝牙 SOC,Arm-Star ARMv8-M MCU || [https://xr806.docs.aw-ol.com/ XR806] ||
|SimpleBLETool
|调试BLE的工具
| [[SimpleBLETool]]
|
*Windows 10+
*Linux(ubuntu 20.04+)
|-
|-
| PB-02 || PHY6212模块,蓝牙 SOC,Cortex-M0内核 || [http://phyplusinc.com/ 奉加微电子] ||
|cutecom-ng
|基于Qt5的串口工具。个人修改版。
|[[cutecom-ng]]
|只要是Qt5支持的桌面平台均支持。
|}
 
== 常用库 ==
此章节主要对使用的比较多的库做一个整理。
{| class="wikitable"
|+
!名称
!官网
!说明
!Wiki
|-
|-
| TB-02 || TLSR8258模块,蓝牙 SOC,TC32内核 || [http://www.telink-semi.cn/ 泰凌微电子] ||
|wxWidgets
|https://www.wxwidgets.org/
|跨平台GUI库
|[[wxWidgets]]
|-
|-
| ST17H66 || 蓝牙 SOC,Cortex-M0内核 || [http://lenzetech.com 伦茨科技] [http://doc.lenze.club/home?filePath=%2Fpublic%2Fstore 资料下载] ||
|Qt
|https://www.qt.io/
|跨平台库(包括GUI)
|[[Qt]]
|}
|}


=== 软件 ===
==常用镜像站==
{| class="wikitable sortable"
再找各种源码资源时,经常遇到国外网站下载较慢的情况下,此时通常需要更换镜像站。
|+ 软件
 
例如:
 
*ubuntu系统的软件包(包括使用deboostrap的镜像源)
*python软件包
*gnu软件源码包
*linux源码
 
{| class="wikitable"
|+
!地址
!说明
|-
|-
! 名称 !! 说明 !! 链接 !! Wiki(若有)
|http://mirrors.ustc.edu.cn/
|中国科学技术大学镜像站
|-
|-
| rt-thread || 嵌入式操作系统 || https://www.rt-thread.org/ ||
|https://mirrors.tuna.tsinghua.edu.cn/
|清华大学镜像站
|-
|-
| micropython || 嵌入式操作系统,Python3在嵌入式设备的实现。 || https://micropython.org/ ||
|http://mirrors.163.com/
|网易开源镜像站
|-
|-
| sylixos|| 嵌入式操作系统 || https://www.sylixos.com/ ||
|http://mirrors.aliyun.com/
|-
|阿里开源镜像站
| mbed-os|| 嵌入式操作系统 || https://os.mbed.com/ ||
|-
| LiteOS|| 物联网操作系统,OpenHarmony内核之一。 || http://www.huawei.com/liteos ||
|}
|}
==相关链接==
*[[测试资源]]
*[[方案发现与探索]]
*[[杂项笔记与测试代码]]
*[[常见问题]]

2022年12月24日 (六) 05:42的版本

常用技术栈

可连接TCP/IP的物联网设备

开发物联网设备时,无论设备是通过WiFi、2G/3G/4G/5G或以太网连接网络,如设备支持TCP/IP,通常采用MQTT作为主要通信协议。 除了主要通信协议,通常物联网设备还需要支持NTP对时,有时还需要使用到Http作为辅助协议。

带交流计量功能的设备

单相SOC方案

对于单相计量(即常见的家用电)设备,通常采用SOC方案:

此类SOC通常可以使用内置的模块完成包括计量功能在内的大部分需求,在某些情况下也可开发高精度的直流计量设备。
如需与其它设备进行交互,通常还需要添加通信模块或者使用串口通信。
若使用串口通信,本人常用Modbus RTU作为具体协议,将具体的硬件资源映射为线圈(可读写的位)、输入线圈(只读的位)、保持寄存器(可读写)、输入寄存器(只读)。

单相非SOC方案

若由于需要采用低成本导致计量部分相对于强电非隔离,而设备上又需要输出隔离接口时,通常采用非SOC方案+串口/SPI口隔离,常用芯片方案:

此方案需要另外加一个主控芯片。

三相非SOC方案

若待计量的电路为三相电路,常用芯片方案:

此方案需要另外加一个主控芯片。
注意:截至编辑时,尚未发现三相SOC方案。

带有特殊功能的路由器/WIFI网关

芯片方案:

软件开发方案:

在内核设备树(dts)配置中使能需要使用的标准接口,并在openwrt的menuconfig中选中对应的kmod包后,即可使用Linux用户程序(非内核模块)操作硬件设备。
对于SPI、I2C与UART而言,用户可通过打开/dev目录下的相应字符设备即可使用。
对于GPIO而言,可使用sysfs文件系统目录:/sys/class/gpio目录进行GPIO操作。

常用芯片及模块

常用芯片及核心模块

常用芯片及核心模块
芯片/模块名称 说明 wiki(若有)
RN8211B 单相计量SOC RN8211B
HT502X 单相计量SOC HT502X
Air724UG 4G模块,进行C语言开发 Air724UG
ESP-12F WIFI透传模块,可支持二次开发,主芯片为ESP8266 ESP8266
ESP-32S ESP32模块,可支持WIFI、蓝牙、以太网,可采用esp-idf开发 ESP32
TB-01 W600开发板,WIFI SOC,Cortex-M3内核 W600
TB-08 W800开发板,WIFI/蓝牙 SOC, XT804内核 W800
CH579 以太网、蓝牙、USB SOC,Cortex-M0内核MCU CH579
HLK-7688A MT7688芯片核心模块,可采用openwrt开发 MT7688
E18-MS1 CC2530芯片核心模块,可采用contiki开发或者Z-Stack开发 CC2530


注意:此章节可能不包含资料较多,应用极其成熟的芯片系列,如STM32

外设芯片及外设模块

外设芯片及外设模块
名称 说明 接口 wiki(若有)
RN8302B 三相计量芯片 SPI RN8302B
RN8209C/RN8209D 单相计量芯片 UART/SPI RN8209
NRF24L01+ 2.4G无线芯片,具有众多兼容替代(如Si24R1) SPI+GPIO(中断、CE) NRF24L01+

常用软件

本章节不包含工具类软件(如集成开发环境、编译工具链等)。

名称 说明 wiki(若有)
FreeRTOS 嵌入式操作系统 FreeRTOS
rt-thread 物联网嵌入式操作系统 rt-thread
nuttx 嵌入式操作系统 nuttx
paho.mqtt.embedded-c MQTT客户端,可移植到各种芯片平台 paho.mqtt.embedded-c
openwrt 操作系统,嵌入式Linux构建工具 openwrt


常用工具

常用工具
名称 说明 wiki(若有)/链接地址
easy-rsa 使用SSL/TLS时,自签证书制作/管理工具 easy-rsa
buildroot 嵌入式Linux构建工具 buildroot
debootstrap Linux系统根文件系统创建工具,可创建Debian系Linux系统根文件系统 debootstrap
crosstool-ng 交叉编译工具链创建工具 crosstool-ng
ScreenToGif 在Windows下录屏制作gif的工具 https://github.com/NickeManarin/ScreenToGif.git

IDE环境/开发环境/开发工具

名称 说明 wiki(若有)/链接地址
codeblocks 免费的C/C++ IDE,可开发多种C/C++程序。本人只要将它用作基于CMake构建的工程的代码编写。 http://www.codeblocks.org/
Microsoft Visual Studio 微软的开发工具集。本人主要用于开发WIN32程序。本人优先使用codeblocks作为C/C++开发环境,VS占用的空间太大,但有些第三方库在Windows上可能只支持MSVC,故而必须使用VS。 https://visualstudio.microsoft.com/zh-hans/
keil5 用于ARM嵌入式芯片的开发。注意:keil5不是免费的。 https://www.keil.com/
IAR 本人主要使用针对ARM嵌入式芯片的开发。注意:IAR不是免费的。 https://www.iar.com/
QtCreator 用于创建基于Qt的程序。 https://www.qt.io/product/development-tools
MounRiver 基于Eclipse的嵌入式ARM/RISC-V的集成开发环境。本人主要用于测试WCH的单片机。 http://www.mounriver.com/

小工具(自写/修改)

名称 说明 wiki 支持平台
CC3200_GangGenerator 生成用于烧录CC3200 SPI Flash的工具 CC3200_GangGenerator
  • Windows
WMToolHelper W600烧录工具 WMToolHelper
  • Windows
  • Linux (ubuntu 20.04)
WinBleTool Windows下调试BLE的工具 WinBleTool
  • Windows 10(及以上)
SimpleBLETool 调试BLE的工具 SimpleBLETool
  • Windows 10+
  • Linux(ubuntu 20.04+)
cutecom-ng 基于Qt5的串口工具。个人修改版。 cutecom-ng 只要是Qt5支持的桌面平台均支持。

常用库

此章节主要对使用的比较多的库做一个整理。

名称 官网 说明 Wiki
wxWidgets https://www.wxwidgets.org/ 跨平台GUI库 wxWidgets
Qt https://www.qt.io/ 跨平台库(包括GUI) Qt

常用镜像站

再找各种源码资源时,经常遇到国外网站下载较慢的情况下,此时通常需要更换镜像站。

例如:

  • ubuntu系统的软件包(包括使用deboostrap的镜像源)
  • python软件包
  • gnu软件源码包
  • linux源码
地址 说明
http://mirrors.ustc.edu.cn/ 中国科学技术大学镜像站
https://mirrors.tuna.tsinghua.edu.cn/ 清华大学镜像站
http://mirrors.163.com/ 网易开源镜像站
http://mirrors.aliyun.com/ 阿里开源镜像站

相关链接