查看“首页”的源代码
←
首页
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
== 常用技术栈 == === 可连接TCP/IP的物联网设备 === 开发物联网设备时,无论设备是通过WiFi、2G/3G/4G/5G或以太网连接网络,如设备支持TCP/IP,通常采用[[MQTT]]作为主要通信协议。 除了主要通信协议,通常物联网设备还需要支持NTP对时,有时还需要使用到Http作为辅助协议。 主要使用的协议如下: {| class="wikitable" !协议名称 !说明 !备注 |- |[[MQTT]] |MQTT是专门针对物联网开发的轻量级传输协议。 |通常采用TCP,可实现实时控制。 |- |[[LwM2M]] |LwM2M是一种轻量级的、标准通用的物联网设备管理协议,可用于快速部署客户端/服务器模式的物联网业务 |通常采用UDP,常见于NB-IOT模块。 由于UDP的在公网上的老化(公网的NAT转换机制),在公网上不能实现实时控制,只能应用于周期上报的设备。 在专网或者局域网内可实现实时控制。 |- |[[CoAP]] |CoAP是一种用于受限节点与受限网络的web传输协议,由IETF提出。 |通常采用UDP,可使用DTLS加密,一般情况下用于在受限环境中替代http。 |- |Http/Https |超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议。 |通常用于调用后端服务器的api接口。 |- |NTP |NTP是用来使计算机时间同步化的一种协议。 | |} ==== 低成本方案 ==== 低成本方案主要是指硬件采用SOC方案并且操作系统采用嵌入式操作系统的方案或者外设方案: * [[Air724UG]] :4G模块,可使用C/C++进行二次开发。 * [[ESP8266]] : WIFI模块。 * [[ESP32]] : WIFI模块,可接以太网PHY实现以太网上网。 * [[W600]] : WIFI模块。 * [[W800]] : WIFI模块。 * [[CH579]] : 自带以太网PHY,可实现以太网上网。 *[[W5500]] :全硬件以太网外设芯片,需配合主控使用。 ==== 一般方案 ==== 一般方案主要指资源相对充足的方案,一般采用Linux作为内核: * [[MT7688]] :可采用以太网或者WIFI联网,通过USB可接4G上网模块通过RNDIS上网。 === 带交流计量功能的设备 === ==== 单相SOC方案 ==== 对于单相计量(即常见的家用电)设备,通常采用SOC方案: * [[RN8211B]] * [[HT502X]] 此类SOC通常可以使用内置的模块完成包括计量功能在内的大部分需求,在某些情况下也可开发高精度的直流计量设备。<br> 如需与其它设备进行交互,通常还需要添加通信模块或者使用串口通信。<br> 若使用串口通信,本人常用[[Modbus]] RTU作为具体协议,将具体的硬件资源映射为线圈(可读写的位)、输入线圈(只读的位)、保持寄存器(可读写)、输入寄存器(只读)。<br> * [[SimpleModbusRTUPacket]] ==== 单相非SOC方案 ==== 若由于需要采用低成本导致计量部分相对于强电非隔离,而设备上又需要输出隔离接口时,通常采用非SOC方案+串口/SPI口隔离,常用芯片方案: * [[RN8209]] 此方案需要另外加一个主控芯片。 ==== 三相非SOC方案 ==== 若待计量的电路为三相电路,常用芯片方案: * [[RN8302B]] 此方案需要另外加一个主控芯片。<br> 注意:截至编辑时,尚未发现三相SOC方案。 === 带有特殊功能的路由器/WIFI网关 === 芯片方案: * [[MT7688]] 软件开发方案: * [[ openwrt ]] 在内核[[Devicetree|设备树(dts)]]配置中使能需要使用的标准接口,并在openwrt的[[Kconfig|menuconfig]]中选中对应的kmod包后,即可使用[[Linux]]用户程序(非内核模块)操作硬件设备。<br> 对于SPI、I2C与UART而言,用户可通过打开/dev目录下的相应字符设备即可使用。<br> 对于GPIO而言,可使用sysfs文件系统目录:/sys/class/gpio目录进行GPIO操作。<br> == 常用芯片及模块 == === 常用芯片及核心模块 === {| class="wikitable sortable" |+ 常用芯片及核心模块 |- ! 芯片/模块名称 !! 说明 !! 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]] |- |Air105 |廉价大内存mcu,4M flash,640K SRAM,Cortex-M4F |[[Air105]] |- |Lichee Zero |全志V3s开发板,64M DRAM,廉价Linux开发板,V3s芯片可手贴 |[[V3s]] [https://wiki.sipeed.com/hardware/zh/lichee/Zero/Zero.html Lichee Zero] |} <br> 注意:此章节可能不包含资料较多,应用极其成熟的芯片系列。<br> === 外设芯片及外设模块 === {| class="wikitable sortable" |+ 外设芯片及外设模块 |- ! 名称 !! 说明 !! 接口 !! wiki(若有) |- | RN8302B || 三相计量芯片 || SPI || [[RN8302B]] |- | RN8209C/RN8209D || 单相计量芯片 || * UART * SPI | [[RN8209]] |- | NRF24L01+ || 2.4G无线芯片,具有众多兼容替代(如Si24R1) || SPI+GPIO(中断、CE) || [[NRF24L01+]] |- |W5500 |全硬件栈以太网芯片 |SPI |[[W5500]] |- |中景园0.96寸OLED点阵屏 |分辨率128x64,显示驱动(控制)芯片SSD1306 | * IIC * SPI+GPIO(DC、RES) |[[SSD1306]] [[中景园0.96寸OLED点阵屏]] |- |AHT20 |温湿度传感器 |IIC |[[AHT20]] |- |DS1307 |RTC(实时时钟) |IIC |[[DS1307]] |} == 常用嵌入式操作系统、BootLoader、嵌入式固件及嵌入式软件库 == {| class="wikitable sortable" |+ |- ! 名称 !! 说明 !! wiki(若有) |- | FreeRTOS || 嵌入式操作系统 || [[FreeRTOS]] |- | rt-thread || 物联网嵌入式操作系统 || [[ rt-thread ]] |- |nuttx||嵌入式操作系统||[[nuttx]] |- |paho.mqtt.embedded-c|| MQTT客户端,可移植到各种芯片平台||[[paho.mqtt.embedded-c]] |- |openwrt||操作系统,嵌入式Linux构建工具||[[ openwrt | openwrt]] |- |u8g2 |单色/点阵屏驱动库 |[[u8g2]] |- |U-Boot |通用引导加载器。通常用于加载[[Linux]]。 |[[U-Boot]] |- |Newlib |嵌入式C运行库(通常配合GCC使用) |[[Newlib]] |} ==常用工具== {| class="wikitable sortable" |+常用工具 |- !名称!!说明!!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 |- |Xfel |全志SOC的FEL工具(可下载固件等) |[[Xfel]] |- |busybox |unix工具箱,可用于创建体积极小的rootfs |[[busybox]] |} ===IDE环境/开发环境/开发工具=== {| class="wikitable sortable" |+ !名称 !说明 !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的集成开发环境。本人主要用于测试[https://www.wch.cn/ WCH]的单片机。 |http://www.mounriver.com/ |- |RT-Thread Studio |一站式的 RT-Thread 开发工具,通过简单易用的图形化配置系统以及丰富的软件包和组件资源,让物联网开发变得简单和高效。本人主要用于开发与rt-thread相关设备。 |https://www.rt-thread.org/ |} === 电子硬件设计(原理图绘制/PCB绘制/其它相关工具) === {| class="wikitable" |+ !名称 !说明 !wiki(若有)/链接地址 |- |立创EDA |高效的国产PCB设计工具,永久免费。可在线使用。 |https://lceda.cn/ |- |KiCad |跨平台开源电子设计套装。 |https://www.kicad.org/ |- |freerouting |自动布线工具。可配合立创EDA或KiCad使用。本人用于替代立创EDA自带的自动布线。 |https://www.freerouting.app/ https://github.com/freerouting/freerouting.git |} === 流程图/框图绘制 === {| class="wikitable" |+ !名称 !说明 !wiki(若有)/链接地址 |- |dia |跨平台开源流程图绘制工具 |http://dia-installer.de/ https://sourceforge.net/projects/dia/ |} === 图像处理 === {| class="wikitable" |+ !名称 !说明 !wiki(若有)/链接地址 |- |GIMP |免费开源图像编辑器 |https://www.gimp.org/ |} === 国际化/本地化 === {| class="wikitable" |+ !名称 !说明 !wiki(若有)/链接地址 |- |Poedit |.po编辑工具。可编辑使用 [[xgettext]] 生成的翻译文件 |https://poedit.net/ |} === 压缩/解压缩 === {| class="wikitable" |+ !名称 !说明 !wiki(若有)/链接地址 |- |7-zip |开源免费的压缩/解压缩软件。Windows下有GUI程序,Linux下只有控制台版本。 |http://www.7-zip.org |} === 虚拟磁盘 === {| class="wikitable" |+ !名称 !说明 !wiki(若有)/链接地址 |- |imdisk |Windows下开源虚拟磁盘工具,可方便挂载内存盘(存放临时文件)。 |https://sourceforge.net/projects/imdisk-toolkit |} === 安装/卸载 === {| class="wikitable" |+ !名称 !说明 !wiki(若有)/链接地址 |- |Geek Uninstaller |Windows下程序卸载工具,具有免费的版本。 |https://geekuninstaller.com/ |} ===小工具(自写/修改/组合)=== {| class="wikitable" |+ !名称 !说明 !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支持的桌面平台均支持。 |- |OneNETTool |开发OneNET辅助工具 |[[OneNETTool]] | *Windows *Linux (ubuntu 20.04) |- |QGDW12184Tool |开发Q/GDW 12184辅助工具 |[[QGDW12184Tool]] | *Windows *Linux (ubuntu 20.04) |- |XServerForWSL1 |利用cygwin中的X服务对WSL提供X服务 |[[XServerForWSL1]] |支持WSL1的Windows |- |linux_binfmt_pe |使用[[wine]]直接执行PE可执行文件的Linux内核模块 |[[linux_binfmt_pe]] | * Linux内核 |} == 常用库 == 此章节主要对使用的比较多的库做一个整理。 {| class="wikitable" |+ !名称 !官网 !说明 !Wiki |- |wxWidgets |https://www.wxwidgets.org/ |跨平台GUI库 |[[wxWidgets]] |- |Qt |https://www.qt.io/ |跨平台库(包括GUI) |[[Qt]] |} === 工具库(自写/修改) === {| class="wikitable" |+ !名称 !说明 !Wiki(若有) |- |DeployWin |MSYS2与CygWin下编程辅助打包库。一般配合CMake的CPack使用。 |[[DeployWin]] |} ==常用镜像站== 在找各种源码资源时,经常遇到国外网站下载较慢的情况下,此时通常需要更换镜像站。 例如: *ubuntu系统的软件包(包括使用deboostrap的镜像源) *python软件包 *gnu软件源码包 *linux源码 {| class="wikitable" |+ !地址 !说明 |- |http://mirrors.ustc.edu.cn/ |中国科学技术大学镜像站 |- |https://mirrors.tuna.tsinghua.edu.cn/ |清华大学镜像站 |- |http://mirrors.163.com/ |网易开源镜像站 |- |http://mirrors.aliyun.com/ |阿里开源镜像站 |} == 静态文档网站 == 一些静态的网页文档,如[https://www.doxygen.nl/ doxygen]生成的帮助文档与[https://docsify.js.org/#/ docsify]制作的静态说明文档。 {| class="wikitable" |+ !类型 !URL !备注 |- |静态文档仓库 |https://heyahong.github.io/#/ |采用github pages托管,源代码仓库:https://github.com/HEYAHONG/HEYAHONG.github.io.git |- |网站 |http://docs.hyhsystem.cn |采用nginx服务器,运行于云服务器 |} ==相关链接== *[[测试资源]] *[[第三方资源]] *[[方案发现与探索]] *[[杂项笔记与测试代码]] *[[常见问题]]
返回至“
首页
”。
导航菜单
个人工具
登录
命名空间
首页
讨论
变体
已展开
已折叠
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息