
IoT嵌入式
文章平均质量分 81
专注介绍iot领域主流的wifi芯片和蓝牙,如esp8266、esp32、rtk8710开发应用的一些教程,分享wifi、蓝牙开发的小小经验。
是嗨森啦
通信工程专业,从事软件开发多年,小厂大厂都呆过,做过嵌入式(IoT类)。现主要从事移动端开发,主要使用C/C++、Kotlin、Java、前端JS,擅长原生、NDK、跨平台等。对机器学习、计算机视觉AI也感兴趣,合作、工作介绍、问题解答,私信~
展开
-
esp8266~lwip突破MTU最大1500限制
1. 背景 在去年的项目开发中,遗留了一个比较难解决的问题,需要udp传图,当时的解决办法是将图片在应用层切片依次传输到wifi芯片,而且还用的是定长的明文传输。 一直在想有什么好办法可以优化,首先想到寻找比较高效的编码算法做简单的编码也基本可以接收了,但经过各种查找还是base64用得最多最普遍,经过base64编码后的图片长度大概增加了原来长度的1/3,1200+1200/3 = 16...原创 2019-05-24 16:37:56 · 6547 阅读 · 2 评论 -
esp32~mp3播放实例解析
前言esp32-ADF音频框架,Demo看了好几次,也只知道个大概。音频涉及的东西太多了,入门就先熟悉这个框架。官方文档:https://docs.espressif.com/projects/esp-adf/en/latest/api-reference/index.htmlElements of the Audio Development Framework框架中包含流、编解码器、音...原创 2019-03-26 10:36:27 · 12040 阅读 · 3 评论 -
esp8266/32~msys32编译环境使用问题汇总
记录使用msys32开发esp32中遇到的奇葩问题和解决方法。原创 2019-03-22 08:57:03 · 3916 阅读 · 5 评论 -
esp32~MP3音频文件学习
主要了解了MP3文件结构及每个部分含义,音频处理的专业术语概念。比较重要的概念:1. 编码从信息论的观点来看,描述信源的数据是信息和数据冗余之和,即:数据=信息+数据冗余。音频信号在时域和频域上具有相关性,也即存在数据冗余。将音频作为一个信源,音频编码的实质是减少音频中的冗余。自然界中的声音非常复杂,波形极其复杂,通常我们采用的是脉冲代码调制编码,即PCM编码。PCM通过抽样、量化、编码三...原创 2019-03-17 16:33:55 · 5581 阅读 · 0 评论 -
WiFi配网~智能家居配网解决方案
1. 什么是配网?2. 如何解决配网?3. 方案一,4. 方案二5. 方案三原创 2019-01-19 18:41:13 · 8487 阅读 · 6 评论 -
esp8266~使用逻辑分析仪调试分析软件SPI
本文介绍如何使用USB逻辑分析仪调试SPI协议原创 2018-12-29 16:35:53 · 4303 阅读 · 0 评论 -
esp8266~获取mpu6050六轴传感器数据 [可在此基础上做wifi平衡小车]
1 . 前言上周查看esp8266 github上面有没有更新外设SPI驱动,可惜还是没有,但是看到了之前一直找的hw_timer硬件定时器,乐鑫更新维护的速度还行吧。于是又顺便看了下I2C的demo,居然发现新大陆,因为当天技术交流群里有人讨论mpu6050六轴传感器制作平衡车,好奇就买了个传感器来坐下实验顺便再熟悉下I2C。刚开始把demo编译烧写进去之后跑飞了,如下提示:出现上面的错误...原创 2018-12-29 14:48:20 · 9525 阅读 · 7 评论 -
esp8266~SPI使用
前言最近项目上遇到困难,esp8266的SPI用起来有点晕,这里先记录下来,后面再更新。一. 官网硬件驱动的代码使用demo:#include "gpio.h"#include "spi_register.h"#include "spi_interface.h"void原创 2018-11-24 11:08:42 · 14987 阅读 · 1 评论 -
esp8266/32~资源帖[持续更新]
整理了esp8266/32,一路学习中遇到的问题和官方的资料。原创 2019-01-01 00:30:21 · 3822 阅读 · 1 评论 -
esp32~外接摄像头OV7255
本文纯属实验,验证测试esp32 摄像头性能,最后给出一个参考建议。esp32 发布已经很久了,但一直没有火起来的感觉。随着边缘计算、AI语音的风,不知道esp32能不能彻底火起来,esp32音频方案倒是挺靠谱的,目前支持比较良好,已支持亚马逊、DuerOS、Google等平台。原创 2018-10-28 23:09:07 · 25162 阅读 · 27 评论 -
esp32-lyrat开发板介绍
1. 功能描述ESP32-LyraT 是⾯面向语⾳音交互市场的开发板,采⽤用 ESP32-WROVER 模组,模组包含双核处理理器器和 4.5 MB 运⾏行行内存,搭配少量量外围器器件即可实现⾼高度集成的⾳音频解决⽅方案。-支持多种音源输入:Wi-Fi、蓝牙音频、AirPlay、DLNA、line-in 等-双麦克拾音,可以开发近场以及远场语音识别-支持各种主流无损音频格式:ALAC, A...原创 2018-10-27 16:10:06 · 5036 阅读 · 6 评论 -
esp32~Sniffer模式的人流量检测
项目参考: ESP32 应用实践:基于混杂接收模式的人流量检测本想着移植到esp8266,可是它不支持sniffer和sta共存,实际写代码确认了wifi连上路由打开sniffer后,发现它掉线了,查询官方api文档也验证了这一点。有点可惜,本想写篇教程的,失败!方案不可行,测试了上面给的demo挺稳的,大家看一下顺便可以熟悉下IDF编程风格。...原创 2018-10-09 15:24:21 · 4418 阅读 · 2 评论 -
esp8266~GPIO中断和硬件定时器的正确使用
最近项目需要检测IO口下降沿信号和定时计数,于是就用到了GPIO中断和硬件定时器。有点可惜,github上面RTOS版sdk没有硬件定时器的使用方法,能够参考的只有1.5的sdk,然而我不会移植,只能班门弄斧。参考网上给的demo,实际在项目中用了发现网上给的用法很坑,有一些点需要注意,总结分享给大家,以下用法基于sdk 1.5。1、gpio硬件中断使用2、硬件定时器...原创 2018-10-08 19:29:53 · 9872 阅读 · 0 评论 -
esp8266~启动模式和烧写错误
在使用8266时遇到了如下错误: magic error 烧写工具配置出错了,2Mb = 16Mbit 启动日志分析 boot(1,6) 模式flash 代码ESP8266有三种BOOT模式,由MTDO(GPIO15),GPIO0,GPIO2决定MTDO GPIO0 GPIO2 Mode Description L L H UART ...原创 2018-08-02 09:12:11 · 20473 阅读 · 2 评论 -
esp8266~makefile学习
1、makefile使用规则目标、指令、依赖 Makefile 是和 make 命令一起配合使用的. makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。很多大型项目的编译都是通过 Makefile 来组织的, 如果没有 Makefile, 那很多项目中各种库和代码之间的依赖关系不知会多复杂....原创 2018-09-04 22:32:24 · 2363 阅读 · 0 评论 -
esp8266~入坑sdk 3.0 IDF框架和linux交叉编译环境搭建
一、交叉编译环境搭建步骤1、安装virtualbox、ubuntu虚拟机共享windows文件夹,注!virtualbox最好装在C盘,不然安装虚拟工具经常会失败。 2、新建共享目录,挂载共享目录到虚拟机中 sudo mount -t vboxsf share /mnt/Share/3、下载 xtensa-lx106-elf 交叉编译工具,这里根据操作系统选择Window...原创 2018-09-15 16:06:37 · 7932 阅读 · 0 评论 -
基于node的智能家居
基于node的智能家居原创 2017-07-29 07:02:26 · 2213 阅读 · 0 评论 -
蓝牙初探~2018亚洲大会笔记
开始使用蓝牙是高中的时候,传图片传mp3,需要配对什么的。 当时诺基亚手机很少支持,不像现在那么普及,所有智能手机都有。 大学的时候瞎折腾,蓝牙小车经典蓝牙模块型号是: HC-05主从一体串口透传模块,当时是想做个蓝牙开关,从csdn上找到了蓝牙的app源码于是有了这样的想法。 只是大概记住了有下面一些特性:AT指令操作它,有效范围10米; 点对点,主从切换; 经典蓝牙2.0没...原创 2018-06-08 20:01:34 · 908 阅读 · 0 评论 -
蓝牙亚洲大会学习笔记(补)
GAP - 广播ibeacon数据帧广播数据帧Eddystone帧access message帧provisioning构架流程appkeyeleman/model原创 2018-06-23 11:24:51 · 1294 阅读 · 0 评论 -
STM32~配置时钟频率[一文带你解决STM32主频配置]
一. 时钟树二. 使用外部晶振作为时钟源三. 内部时钟源为时钟源原创 2019-01-12 11:22:19 · 39263 阅读 · 3 评论 -
make~warning: Clock skew detected. Your build may be incomplete.
今天使用make编译项目时,终端提示: warning: Clock skew detected. Your build may be incomplete.大概是时间不对,文件创建修改的时间比操作系统时间超前了,这是由于在virtrualbox共享文件夹造成的,怎么解决尼?要确保操作系统时间大于文件修改时间! 1、修改linux操作系统时间 date —— 查询当前系统时...原创 2018-09-15 13:16:12 · 3488 阅读 · 0 评论 -
1T和12T单片机的区别
标准51单片机是12T的,就是说12个时钟周期(晶振周期,例如12M的,周期是1/12M,单位秒),机器做一个指令周期,刚好就是1/12M*12=1uS,常见指令例如nop就是一个周期,刚好1uS,其他的大多多于一个周期,乘除法更多。所以如果计算指令时间可以这样算。而现在51核的单片机工艺质量上去后,频率大大提高,增强型51有6T的,如果接12M的话,一个nop就只需要0.51uS,如果是ST...转载 2018-07-24 08:18:52 · 3306 阅读 · 0 评论 -
串口、波特率等概念
1:比特率:9600bps就是每秒中传输9600bit,也就是相当于每一秒中划分成了9600等份。如此,那么每1bit的时间就是1/9600秒=104.16666666666666666666666666667us。约0.1ms。既然是9600等份,即每1bit紧接着下一个比特,不存在额外的间隔。也不管是啥起始bit,数据bit,奇偶bit,停止bit。2:帧格式,帧间隔。在电脑里...转载 2018-06-09 17:00:53 · 20559 阅读 · 0 评论 -
IAR一些配置
设置Tab键:在代码段点击右键,找到Options->Editor,将上面的Tab Size设置为4,Index Size 也设置为4这样就可以实现直接按Tab键就可以缩写4个空格。 type color type style background Default Silver Normal Black C Keyword Lime...原创 2018-06-03 15:25:08 · 1656 阅读 · 0 评论 -
程序是运行在flash中还是RAM中?
前言最近在做项目中遇到一些疑虑,包括OTA升级时会不会阻塞到其他工作线程、select原理和正确用法、如何快速正确理解产品到软件框架构建、嵌入式应用的代码优化方法。本篇文章主要针对第一个问题,请教外援,他解释:正常情况下代码是在OTA1中运行的,当OTA时程序下载固件到OTA2成功后从flash中OTA2对应地址启动。当时觉得不对劲,程序怎么会在flash中运行?查了下,对于x86的pc机和单...原创 2018-03-17 22:37:05 · 8718 阅读 · 4 评论 -
STM32F429系统架构
1、系统架构主系统由 32 位多层 AHB 总线矩阵构成,可实现以下部分的互连: 八条主控总线: —Cortex™-M4F 内核 I 总线、D 总线和 S 总线 — DMA1 存储器总线 — DMA2 存储器总线 — DMA2 外设总线 — 以太网 DMA 总线 — USB OTG HS DMA 总线原创 2017-12-29 11:08:57 · 3097 阅读 · 0 评论 -
STM32~FPU协处理器
浮点单元支持单精度浮点计算、一些转换操作、存储器访问和寄存器组间的数据传输。 对于没有浮点运算单元的MCU(51、AVR),CPU是按照IEEE-754标准的算法来完成运算,消耗资源多,运算时间长。对于有FPU协处理器,浮点运算是由相关指令完成。现在有硬件浮点运算能力的主要有高端DSP,通用CPU和高级的ARM+DSP处理器等。原创 2017-12-04 10:58:03 · 8686 阅读 · 2 评论 -
Linux学习~部署Apollo服务器(mqtt)
linux部署Apollo服务器 实验环境:jdk1.8、Ubutun16、apache apollo1.7.1 ActiveMQ Apollo is a faster, more reliable, easier to maintain broker built from the foundations of the original ActiveMQ.原创 2017-11-19 21:24:45 · 8266 阅读 · 3 评论 -
Linux学习~安装jdk
linux安装jdk 实验环境:Ubuntu 16,jdk 1.8 步奏: 1、Oracle官网下载jdk1.8 linux x64 tar.gz 2、创建/usr/lib/jvm路径解压jdk到/usr/lib/jvm原创 2017-11-12 21:25:42 · 696 阅读 · 0 评论 -
Linux学习~树莓派gpio控制
1、前置技能Vi 命令行文本编辑器熟练使用C语言语法熟悉交叉编译操作指令及原理熟悉putty和常用linux操作命令了解嵌入式设备驱动概念和框架2、设计目标编写用户程序实现对Raspberry Pi的GPIO口输出高、低电平,让接在GPIO口上的发光二极管闪烁。熟悉linux系统设备驱动程序框架原创 2017-01-08 10:08:07 · 5830 阅读 · 0 评论 -
Onion Omega2 introduce
reprinted from the official website. Introducing the Omega2, the 5IoTcomputer.WhattheheckisanIoTcomputer?ItisaLinuxcomputerdesignedspecificallyforbuildingconnectedhardwareapplications.Itcombinesthetin原创 2016-08-28 10:46:48 · 3229 阅读 · 0 评论 -
Linux(树莓派b+)学习~putty远程登录
硬件条件:树莓派b+主板,8G sd卡,网线,鼠标+键盘,LCD微雪7寸显示器,笔记本电脑,电源线软件工具:Putty想要用Putty远程登录树莓派不是那么复杂,由于没有无线网卡本文使用LCD显示器手动配置静态ip后通过网线直连笔记本电脑网卡,不能达到远程登录x-window远程登录需要使用树莓派下载并安装vnc服务器。树莓派刷好系统后默认使用的是dhcp协议,下面对具体步奏说明:1、原创 2015-07-06 20:18:58 · 2701 阅读 · 0 评论 -
理清计算机汉字编码问题(上)
ASCII(American Standard Code for Information Interchange:美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的信息交换标准,并等同于国际标准ISO/IEC 646。ASCII码表分为两部分:控制字符和可显示字符。这个不用多解释,相信学过C语言或者计算机电子信息相关专业的都涉及,更多请参考ASCII码对照表。原创 2019-05-05 09:38:10 · 4472 阅读 · 1 评论