1.
Internet of things (iot)这个概念非常火,物联网是什么?把所有物品通过射频识别等信息传感设备与互联网连接起来,实现智能化识别和管理。 物联网通过智能感知、识别技术与普适计算、泛在网络的融合应用,被称为继计算机、互联网之后世界信息产业发展的第三次浪潮。
最常见的就是智能家居了,比如你拉屎,拉完后有个东西自己给你擦屁股,擦完屁股又自动给你冲马桶,然后你出来后自动给你洗手,这还不完,你拉完屎后躺床上看手机,手机弹出一个提示「先生,你今天21:20分在家里拉了3斤屎」。
我这次给大家介绍一个芯片,esp32,没有收过任何费用,就是纯技术分享,让初学者少踩点坑吧,我也是最近用这个芯片,觉得爽得一X。
这个芯片最大的优势就是便宜,便宜和易于开发让以前很多不敢想象的智能家居变成了可能,开发环境可以在windows下开发也可以在linux 环境下开发,而且对于嵌入式来说做了这部分对于网络蓝牙都有比较深刻的了解了,以后做其他系统开发也不会有太大难度。
2.
先介绍下如何搭建编译和烧录环境,我用的是最傻瓜的环境,我觉得这个也是最容易上手的,我们所有的功能核心都是代码,所以我觉得这部分你习惯就好。
https://wiki.ai-thinker.com/ai_ide_install
链接里面有一个百度网盘,没有密码的直接下载
https://pan.baidu.com/s/1skRvR1j#list/path=%2F
注意下载第 1 个,截图如下
解压安装到 D 盘,里面有一个readme按照那个操作就好了,这个没有更简单的了。
设置好之后直接打开 eclipse 工程,就看到你的项目了,这时候你用的 sdk 是集成在压缩包里面的,肯定不是最新的,你要是做项目的话,就自己去乐鑫官网下载最新的 sdk 把这个目录下的 sdk 替换掉,别想整个不一样的名字再自己导入,替换名字是最快的,免得又出现奇葩的问题百度一天都解决不了。
然后在 esp-idf 上面右键,最下面有一个 properties 这个里面有设置,其中就是设置你要编译哪个项目
然后设置 make menuconfig ,在esp-idf上面右键 make targets -> create 输入 mintty.exe -e make menuconfig
然后继续上面的,在esp-idf上面右键 make targets -> create,输入 download 和 make flash
上面搞定了之后,就可以 编译 ,烧录了,但是正常用 make flash 烧录可能有很多问题。所以我们需要另一个稳定点的工具来烧录,我这里就不扯皮那么多了,直接给出链接。
https://wiki.ai-thinker.com/esp_download
如何进入烧录模式,如何设置烧录分区的地址都有说明了,按照这个来搞就好了。给出个示例图片,给初学者一些参考吧。
运行了 make menuconfig 或者修改了头文件的话,第一次编译时间就会慢很多,这时候你需要耐心等待,或者换一个台式电脑,台式电脑完爆笔记本这个不用再说了。
编译相关的一些命令
make menuconfig – 运行配置菜单,做过kernel开发的会非常熟悉.
make defconfig - 为所有的配置项设置默认值
make app 只编译app模块
make all 编译所有
make flash 编译并刷机
make clean – 清除编译产生的文件.
make monitor 查看串口输出
make erase_flash – 擦除ESP32上的整个Flash.
make partition_table 查看分区
make size - 显示Bin文件中各个部分的大小
make size-components -, size-files - 每个模块所占内存的大小,这个在项目代码膨胀后还是比较有用的。
3.
上面是第三方公司安信可集成的开发环境还有一些文档,想获取更专业的东西,还是要去官方网站,乐鑫官方网站提供了很多资料和文档给我们,我列举一下
中文的编程指南
https://docs.espressif.com/projects/esp-idf/zh_CN/latest/index.html
论坛,如果你是长期搞这个的话,注册论坛账号显得你会比较专业一些
https://www.esp32.com/
官网 sdk 下载,第一个就是 ESP32 的
https://www.espressif.com/zh-hans/support/download/sdks-demos
ESP32 技术规格书相关文档下载
https://www.espressif.com/zh-hans/support/download/overview
ESP32 概述
https://www.espressif.com/zh-hans/products/hardware/esp32/overview
开源一小步的 ESP32 入门指导
https://blog.csdn.net/qq_24550925/article/details/85933563
mqtt
如果你要用 mqtt 先看看你的 sdk 里面有没有下载这部分的组件,如果没有要用命令下载,参考这里
https://github.com/espressif/esp-mqtt/blob/master/README.md
4.
ESP32 是跑 freertos 系统,所以我准备了一本书籍,想学习这方面的同学可以下载来看看,不管是什么系统,都离不来进程,线程,有了进程和线程,就一定存在竞态和同步,嵌入式系统和安卓系统不一样,资源非常非常有限,所以你要去了解他的分区,要了解去如何裁剪,每加一个功能都要考虑消耗多少资源,等等。
书籍下载链接如下
https://pan.baidu.com/s/1LPvy6if-D5_0nUarqfM9Qg
提取码: odr1
ESP32 的空中升级挺有意思的,它分了三个区域,factory ,A,B区域,factory是第一次默认烧录的区域,也就是出厂的程序,然后第一次空中升级会把固件写入A区域,然后重启后会运行A区域程序,这时候再进行空中升级会把固件写入B区域,这时候再重启的时候就运行B区域的代码,这样做可以保证在升级过程中断电还是可以保证原来的固件不会有问题。而且有一天觉得功能有问题,我还可以恢复出厂设置,跑factory分区的代码。这个有点像 android ,是不是有点一通百通?
5.
大家有什么问题可以加我交流,最近时间比较有限,而且微信消息太多,看不过来,最好加知识星球给我留言,当然你也可以认为这是一个推广,而且我做这部分也是刚开始阶段,可能有些东西帮不到你,只是希望有一个共同交流的平台,不想加知识星球的,有问题可以发邮件给我,多谢,微信可以聊天,最好不要直接涉及问题。
推荐阅读
和我一起探索嵌入式
我就随便BB一下
谁都能看懂的网络模型知识
我认识的一位前辈~
完,各位共勉,每天多开心一点~
觉得不错,帮忙转发一下,让更多的人看到我的小号~感激不尽~