收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
单片机开源项目
- 开源逆变器
- 网友 aziddy 的一个开源作品,基于经典的 Adafruit Feather 328P 开发板(MCU主控是微芯公司的ATmega328P) 和 128x64 OLED 屏的mini电子游戏机。
- PIKOCUBE是一个非常有趣的项目,它是个可编程骰子,带有 54 颗 LED、陀螺仪,支持 WiFi 控制。项目所有资料都是公开的,包含PCB图纸,结构设计,Arduino 代码,上位机端App。由一个 ESP8285-01F、六块 PCB 和 54 颗 LED 组成。其结构设计十分巧妙,在制作的过程中也处处体现出结构的精巧。
- WATCH-X是一款基于LittleVGL的开源智能手表项目, 能够支持高质量流畅(60FPS+)的动画效果的显示,炫酷的界面加上易于扩展的系统框架,非常容易上手。
- garden monitor - 基于树莓派的灌溉系统 基于树莓派驱动的物联网滴灌系统利用物联网来监测和维护植物的正常生长,将传感器与植物相结合,实时监测植物状态,配合App软件,可以根据反馈的数据做出对应的操作来保证植物的健康生长。整个系统由树莓派采集数据信息,例如光照、温湿度和土壤中的水分含量等,随后将各种传感器的数据传送到云数据库中进行处理。使用智能手机应用程序在任何地点支持访问,用户在手机APP上将指令(例如水泵的状态)发送至滴灌系统并执行相关的命令。
- LCR Meter AU2019,阻抗(Z)是表征无源电子元件(电阻、电容、电感)的重要参数。要确定阻抗,就必须测量至少两个值(大小和相位),一般是元件两端的电压和流过该元件的电流7. Macro Mechanical Keypad - 6键超迷你键盘DIY Arduino
- ESP32-Smart-Watch - 基于ESP32 WROOM的开源智能手表
- RunTiny - 基于ATtiny10仅778字节实现的跑步小游戏
- ART-Pi - RT-Thread 推出的 DIY 开源硬件和项目主页
- sigrok开源逻辑分析软件,DSLogic就是魔改sigrok软件,salease也可以通过Sigrok开源软件,实现同样的协议解析
- weather-ink-screen - 支持汉朔2.9寸墨水屏E029A01的天气预报
- NXP最新调试工具MCU-Link vs. LPC-Link2
- Mega-Cube 是一个基于 PL9823 驱动 4096 个 LED 的光立方,主控方面是基于恩智浦 i.MXRT1060
- soft-and-hard 是一个以物联网项目为主方向分享 web 开发教程,制作并演示一个物联网系统是怎么跑起来的,介绍如何学习相关知识
- EEVengers/ThunderScope 雷电USB4开源示波器
- 12.8-GSPS analog front end reference design for high-speed oscilloscope and wide-band digitizer
- 开源EC
- T12 焊台所需的全部软硬件设计,PID 参数都是成熟的,功能完成度非常高
- 开源的SMU精密供电设备
- 6位手持开源万用表
- Little Bee是一款经济实惠的高性能电流探头和磁场探头,可更有效地调试和分析电子设备
- 红外测温仪 GY-906 红外线温度计传感器
- JL_AC79_DevKit V1.0 是一款高集成度WiFi 802.11b/g/n以及双模蓝牙V2.1到V5.0组合的音视频多媒体系统板
- X-TRACK 是一款开源 GPS 自行车码表,拥有可显示实时位置的离线地图,支持记录和显示实时轨迹以及导出标准GPX格式的轨迹文件
- Daytripper是一个激光绊脚器摸鱼神器
- 基于ESP32的哔哩哔哩小电视
- NumWorks一款基于STM32F412设计的图形计算器
- PSLab 是 Pocket Science Lab 的简称,它的目标是创建一个开源硬件设备(所有资源全开),可用于电子爱好者做实验。并提供了一系列用于工程实验的传感器,包括示波器,波形发生器,频率计数器,可编程电压,电流源和数据记录器。PSLab 从硬件,软件,手机端软件,电脑端软件全开源,界面效果极其炫酷
- 美信推出的全开源便携式精密校准器,精度高达 0.01%
- 开源的无刷电机驱动项目vedderb,软硬件都开源
- 基于rp2040的开源逻辑分析仪pico-coder,搭配上位机软件pulseview使用
- 成本非常低的开源的小飞艇Bllimpduino 2
- 一款集简易示波器、简易函数信号发生器、电阻测量、可调电源、输出电流测量于一体的STM32简易仪器仪表
- 基于ESP32和STPD01的双通道可调智能电源
- 开源的无刷电机驱动项目,这个项目主要分为几个部分,VESC固件,物料清单,VESC硬件,VESC工具软件,是一个非常完整的软硬件项目,并且配套的软件也出色
- Build a USB-C Power Supply, USB-PD allows for voltages up to 20V at currents up to 5A to be delivered across the interface
- ESP32S3、4寸480*800屏幕、光固化外壳,作品定位桌面小摆件,支持电脑运行数据监测、天气、新闻、疫情、日历等等,支持白天夜间模式切换、支持web配置
- 基于STM32L432设计的安全密钥小产品Somu
- 开源的标准 GNU 调试器Black Magic Probe
- ctxLink 是基于 Black Magic Probe(BMP)的开放式硬件,开放式固件调试开发板,支持WiFi连接和电池供电的操作。它实现了SWD和JTAG接口,用于ARM Cortex-M微控制器的远程无电缆编程和调试
- Segger 公司为它们的 Flasher 工具项目配套设计的一款 QSPI Flash 快速评估套件,有了它,你可以在 15 分钟之内快速测试任意一款 NOR Flash
- Nordic二代功耗测量套件Power Profiler Kit II,分辨率100nA,范围200nA到1A
- SC1933+IP2726低成本大功率氮化镓电源方案,支持多种快充协议,最大功率65W
- 基于树莓派单片机的24通道,100Msps的逻辑分析仪
- 四足机器人开源BLDC电机控制器MOTEUS
- 基于树莓派单片机实现超低成本的双光纤网卡100BASE-FX
- 开源便携监测器CatSniffer,支持Zigbee,蓝牙,LoRa,Thread,Sub 1GHz,6lowpan
- 开源的PCB贴装机SimplePnP
- DIY缝纫机
- 稚晖君机械键盘固件,不同于QMK、ZMK这样的开源固件,为了适配大量的键盘型号,导致存在代码臃肿、性能优化不足、扩展性不太好等问题。稚晖君基本上把全速HID设备的性能都拉到了顶。他在固件中实现了HID设备枚举、1kHz的硬实时报文以及1ms的超低延迟
- 电源类 22期 | 数控升降压 桌面可调电源
- 448个数码管模拟水流的炫酷效果
- 21通道120Msps的树莓派单片机逻辑分析仪加3通道ADC,上位机采用sigrok/pulseview
- 电源类 23期 | 同步整流降压 数字电源
- google开源的超长键盘
- TMCM-1617 无刷直流伺服驱动器的开源硬件参考设计。为了在机械臂应用中使用,该板设计了标准夹持器电子外形。它能够通过EtherCAT®,IO-Link®,或使用 Trinamic 的 TMCL 协议 RS485 控制无刷直流电机
- QUARK 是一个简单、易于使用的多功能开发工具,适用于 Arduino、ESP32、STM32 和类似的平台
- 低成本2.5KV USB电源隔离方案
- 开源的旋转拨号手机
- 基于树莓派单片机的电子书 网站2
- 开源USB PD供电mini SMD回流焊加热板
- 开放式ECU控制模块
- 单片机实现低配版全功能软件无线电,范围0.5-30 MHz,支持SSB、AM、FM和CW
- 开源串口,SPI,I2C和1-Wire开发工具
- 开源电源EEZ BB3
- 开源电源EEZ BB3推出一款H7的主控板子
- 开源10V基准电源,不断电运行一年,误差小于1uV
- ESP32 Web版开源示波器
- Microchip 推出的智能冷却板(cold plate)参考设计,主控基于 PIC16F17146,可以冷却其金属表面和上面的任何东西
- 高质量的麦克风项目,麦克风构建使用克隆RK12/CK12胶囊,U87麦克风和定制前置放大器板。该板非常简单,但高性能
- 立创开源硬件平台3盘位热插拔硬盘柜FRHD-SAS-3C-A FrostAutumn
bootloader
- RT-FOTA - 基于 STM32 的开源 Bootloader 框架,类似RT-Thread 官方RT-OTA 项目的民间开源版
- wolfBoot 开源的安全启动bootloader
- OpenBLT 开源的bootloader, ST发布的OpenBootloader库升级至V5.0,支持FDCAN,I2C,SPI, USB, UART,它与STM32系统引导加载器完全兼容,因此它具有相同的支持接口和命令。它也使用相同的上位机工具,如STM32CubeProgrammer
- TinyUF2 主要针对使用 TinyUSB 协议栈的 MCU,目前支持ESP32-S2、i.MXRT10xx、LPC55xx、STM32F4。使用 UF2 bootloader,可以方便的通过 USB 以磁盘模式更新程序,无需其它软件,非常方便。
GUI
- Tiny TFT Graphics Library. This is a graphics library for the family of small colour TFT displays based on the ST7735 and ST7789 driver chips. This library allows you to plot points, draw lines, draw filled rectangles, and plot text with an optional scale factor.
- Cortex-M处理器的2D图形加速库——Arm-2D
- 玲珑GUI - 面向单片机级别低价产品的开源GUI 玲珑GUI是高效的界面开发解决方案。代替串口屏、组态,降低产品成本,产品软硬件自主可控。配套界面开发软件,图形化编辑界面,生成C代码,直接和用户产品代码结合。配套下载升级软件和bootloader,解决产品升级功能和图片下载问题。
- GuiLite是一个具有5000行C++代码的准系统GUI框架,它可以在所有平台上运行(例如,iOS,Android,Linux,Windows,macOS,Docker和带或不带OS的MCU)。GuiLite是可嵌入的,它在其他UI框架内运行(例如,Qt,MFC,Winform,Cocoa)。您可以同时使用GuiLite功能和主机UI功能。
- SimpleGUI - 一款针对单色显示屏设计的GUI接口库
- VirtualLCD - 可用于 GUI 移植的 LCD 模拟器
- LVGL | GUI-Guider的使用分享
- LVGL的多语言转换工具MCU_Font
- 点阵GUI库U8G2,常用于OLED
- u8g2_wqy 是适合 u8g2 的中文字体,采用文泉驿点阵宋体作为源本,提供 12x12、13x13、14x14、15x15 和 16x16 点阵字库
- RUST编程语言小型GUI库
- HTML5 X Y Oscilloscope Github分享的一个完全基于HTML5写成的X Y示波器软件,只有一个页面,文件也只有十几KB的大小,不仅支持双通道波形的显示,而且可以做频谱分析。信号源就用电脑或手机的麦克风。
- Virtual Oscilloscope - 可插入网页设计的虚拟示波器插件
- Virtual Oscilloscope - 可插入网页设计的虚拟频谱仪插件
- 简单炫酷开源C库图形库
- EmberGL(Ember Graphics Library) 是一个底层开源图形库,类似于OpenGL/DirectX/Vulkan,专为 MCU 和其他内存受限的非 GPU 系统上的实时 2D/3D 渲染而设计
- ESPUI:让ESP32和ESP8266轻松拥有Web界面
- TFT_eSPI 是一个为 MCU 设计且兼容 Arduino IDE 的图形和字体库,它已针对 RP2040, STM32, ESP8266 和 ESP32 类 MCU 进行了性能优化,当然也可以配合其他 32 位处理器使用,但将使用较慢的通用 Arduino 接口调用
- LovyanGFX 是一个为 MCU 设计的 TFT 图形驱动库,底层主要适配 ESP32 SPI, I2C, 8bitParallel / ESP8266 SPI, I2C / ATSAMD51 SPI,同时支持非常多的 LCD 驱动芯片
Lib
- LibU - 支持多平台的 C 语言程序库
- microseconds - MCU通用微秒(us)计时函数框架
- libopencm3 - 开源Cortex-M系列单片机固件库
- 8051 ELL函数库,是网友泽文i针对其丰富的芯片资源,基于keil开发的软件包。函数库采用了LL库的编程思想,充分考虑8051的特性,结合硬件条件,提供大量标准的API函数,供开发者访问底层硬件细节。并且函数库的大小可裁剪,在代码密度和执行效率上做了很好的平衡。
- LW_OOPC 是Light-Weight Object-Oriented Programming in(with) C的缩写, 这个框架是由台湾的高焕堂先生以及他的MISOO团队首创, 之后由金永华继续改进优化。网友 Akagi201 在金永华对于高焕堂的lw_oopc的源码的基础上进行了一些简单的修改和调试,使得lw_oopc能够用在实际的嵌入式项目中, 作为一个很好的框架传播开来。LW_OOPC 非常的轻量级, 但却很好的支持了很多面向对象的特性, 比如继承, 多态,可以优美的实现面向接口编程。
- key_board 是网友 wei513723 维护的用于单片机中的小巧多功能按键支持库。
- SQLite是世界上部署最广泛的数据库,它是一种C语言库,它实现了一个小型,快速,自包含,高可靠性,功能齐全的SQL数据库引擎。
- SQLCipher扩展了SQLite项目,以添加安全性增强功能,使其更适合于加密的本地数据存储,例如:动态加密,篡改检测,内存清理,强密钥派生等。SQLCipher基于SQLite,并且稳定地集成了稳定的上游发行功能。
- FlexibleButton 一个基于标准 C 语言的小巧灵活的按键处理库
- letter-shell 一个功能强大的嵌入式shell
- nr_micro_shell 适用于资源较少的MCU的shell
- 串口(UART)自动波特率识别程序设计
- RanFS - 一个轻量级的嵌入式文件系统库
- TBOX - 一个用 C 语言实现的跨平台开发库
- iRTU 是基于合宙 air202/208/800/801/720/724/H/D/G/U 系列模块的开源DTU/RTU解决方案,已成功运行在上百万设备,安全可靠
- irtu-gps 基于iRTU项目(一个开源的DTU/RTU解决方案,基于合宙硬件模块),实现了GPS数据的接收和展示,设备PCB开源/服务器端开源/小程序全开源
- mbedTLS - 最小巧的 SSL 加密库
- LwIP - 小型开源 TCP/IP 协议栈
- AT Command 是一种 AT 命令通信解析模块,支持裸机(at_chat)和OS版本(at)。适用于modem、WIFI模块、蓝牙通信
- RIL - 适用嵌入式的无线通信模块(GSM/GPRS/CatM1/NB)管理框架,目前已支持EC21、BG96、 HL8518等模组
- TJpgDec小型JPEG解码库
- 通用精简的超轻量物联网虚拟机EVM EVUE IOT.js
- 跨硬件、跨平台的物联网解决方案Blinker,提供APP端、设备端、服务器端支持,使用公有云服务进行数据传输存储
- 嵌入式设备和传感器节点设计的关系型数据库LittleD
- IonDB资源受限系统的键值数据库
- ECBM 是基于STC8单片机的外设函数库
- nRF51_Platform - 基于nRF51平台(蓝牙4.0)的轻量级SDK
- OpenLoongsonLib1c - 基于龙芯1C的底层驱动函数库
- libjpeg包含了JPEG解码、JPEG编码和其他的JPEG功能的实现,C语言编写
- FatFs 是日本工程师 ChaN 开发的面向小型嵌入式系统的一种通用的 FAT 文件系统,C 语言编写
- PikaScript(前称mimiscript)是一个完全重写的超轻量级python引擎,零依赖,零配置,可以在少于4KB的RAM下运行(如stm32g030c8和stm32f103c8),极易部署和扩展
- Ring-Buffer 是特意为嵌入式系统精简优化的环形队列,源代码仅 80 行,实现简洁可靠
- QueueForMcu 是一个基于单片机实现的队列功能模块,主要用于8位、16位、32位非运行RTOS的单片机应用,兼容大多数单片机平台
- 适用于极小资源芯片的开源加密算法库avr-crypto-lib,适用于51/avr单片机
- wolfSSL 是一个基于C语言的轻量级 SSL/TLS 库,专门针对嵌入式和 RTOS 环境,主打特点是体积小,速度快,功能齐。
- CRC库
- rxi_log是基于 C99 实现的简单日志库
- uLog 为嵌入式微控制器或任何资源有限的系统提供结构化的日志记录机制。它继承了流行的 Log4c 和 Log4j 平台背后的一些概念,但开销更低
- EasyLogger是RT-Thread大佬的作品,已经集成到RTOS的内部了,支持的功能非常丰富,基本满足各种开发的需求
- libinimini 是一个非常简单的 ini 配置文件解析库,适用于 RTOS 或裸跑的单片机
- heatshrink 是基于 LZSS 的小型压缩库,使用 50-300 字节的内存可以很好地运行。支持压缩和解压。用avr-gcc测试,仅需1KB Flash空间
- 嵌入式系统的轻量级C库—PicoLibC
- Opus 是用 C 语言开发的一个高灵活度的音频编码器,针对 ARM、x86 有特殊优化
- Qfplib 是 ARM Cortex-M 内核的 IEEE 754 浮点库家族。Qfplib 有三个分支针对不同的内核,并以不同的优化目标编写
- 一种超轻量的可纠错的通用单片机flash存储方案TinyFlashDB
- 小而美的、用于嵌入式系统的USB主从协议栈CherryUSB
- FatFS 作者 ChaN 老师做的一个 miniDDS 库。方案基于 ST 公司的 STM32F303K8T6,该芯片集成了三个12位D-A转换器(高转换率、多通道、1 Msa/sec)。ChaN 老师在方案实现中详细研究了利用 LUT 数据插值提高合成波形精度的方法
- Mbed推出的精简 printf 实现Minimal printf,C 标准库里的 printf 实现比较占空间
- CMSIS-DSP软件包
- IO模拟CAN协议CANT
- IO模拟CAN协议CANTC和Python包canhack,方便大家移植到各种不带CAN的芯片
RTOS
- Lua-RTOS-ESP32是一款支持Lua编程的RTOS,目前支持ESP32,ESP8266和PIC32MZ,还带有图形化的上位机编程界面
- TinyGo是一个将Go语言带入具有单处理器内核的微控制器和小型系统的项目,其通过创建基于LLVM的新编译器来实现在微控制器上运行Go程序,这有望带来更小更高效的代码,并且肯定会带来更大的灵活性。
- KLite是由个人编写的嵌入式操作系统内核,创建于2015年5月6日,并以MIT协议开放源代码。它是一款入门级的小型抢占式操作系统内核,以简洁易用为设计目标,旨在降低学习嵌入式操作系统编程和入门的难度。简洁的API风格,简洁的调用方式,简单的移植方法,可能是目前最简单易用的嵌入式操作系统内核.
- AntOS - 适用 8051 的超轻量级实时操作系统
- AliOS Things 发布于2017年杭州云栖大会, 是 AliOS 家族旗下的、面向IoT领域的、高可伸缩的物联网操作系统
- cola_os 是一个 300 行代码实现多任务管理的 OS,在很多 MCU 开发中,功能很简单,实时性要求不强,如果使用 RTOS 显得太浪费,任务多了管理不当又很乱,所以 cola_os 这种简单好用的轮询式任务管理是更合适的选择
工具
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)
网嵌入式知识点,真正体系化!**
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)