ESP32 入门教学,不入门,不教学

640?wx_fmt=jpeg

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 个,截图如下

640?wx_fmt=png

解压安装到 D 盘,里面有一个readme按照那个操作就好了,这个没有更简单的了。


设置好之后直接打开 eclipse 工程,就看到你的项目了,这时候你用的 sdk 是集成在压缩包里面的,肯定不是最新的,你要是做项目的话,就自己去乐鑫官网下载最新的 sdk 把这个目录下的 sdk 替换掉,别想整个不一样的名字再自己导入,替换名字是最快的,免得又出现奇葩的问题百度一天都解决不了。


然后在 esp-idf 上面右键,最下面有一个 properties 这个里面有设置,其中就是设置你要编译哪个项目

640?wx_fmt=png


然后设置 make menuconfig ,在esp-idf上面右键 make targets -> create 输入 mintty.exe -e make menuconfig

640?wx_fmt=png

然后继续上面的,在esp-idf上面右键 make targets -> create,输入 download 和 make flash

640?wx_fmt=png

上面搞定了之后,就可以 编译 ,烧录了,但是正常用 make flash 烧录可能有很多问题。所以我们需要另一个稳定点的工具来烧录,我这里就不扯皮那么多了,直接给出链接。


https://wiki.ai-thinker.com/esp_download


如何进入烧录模式,如何设置烧录分区的地址都有说明了,按照这个来搞就好了。给出个示例图片,给初学者一些参考吧。

640?wx_fmt=png

 

运行了 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.

大家有什么问题可以加我交流,最近时间比较有限,而且微信消息太多,看不过来,最好加知识星球给我留言,当然你也可以认为这是一个推广,而且我做这部分也是刚开始阶段,可能有些东西帮不到你,只是希望有一个共同交流的平台,不想加知识星球的,有问题可以发邮件给我,多谢,微信可以聊天,最好不要直接涉及问题。

640?wx_fmt=jpeg


推荐阅读

和我一起探索嵌入式

我就随便BB一下

谁都能看懂的网络模型知识

我认识的一位前辈~


完,各位共勉,每天多开心一点~

觉得不错,帮忙转发一下,让更多的人看到我的小号~感激不尽~

640?wx_fmt=gif         

640?wx_fmt=jpeg





本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/468636.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一个从华为离职的朋友

1、我在之前的很多文章里面都谈到了我有一个过硬的华为朋友,我很少去炫耀自己有多厉害,认识了谁谁,但是我非常在意那些跟自己有过交情的朋友,这些朋友不是说你离开了就失去了,也不是你落魄了就不能吹水了,今…

机器学习_简单线性回归与多元回归方程原理推导_处理二值数据_最小二乘法解或梯度下降解多元回归方程(详细推导)以及Python代码实现_回归方程度量方式

下面的有些叙述基于我个人理解, 可能与专业书籍描述不同, 但是最终都是表达同一个意思, 如果有不同意见的小伙伴, 请在评论区留言, 我不胜感激. 参考: 周志华-机器学习 最小二乘法求解多元回归方程: https://blog.csdn.net/weixin_39445556/article/details/83543945 梯度下…

手写Java线程池_超详细解说_绝对能运行_代码超详细注释

线程池 问题背景 只是单纯使用 new Thread(runnable).start(); 的方式创建线程, 将会导致严重的程序性能问题: 1.线程创建, 销毁需要消耗很大的系统资源; 2.虚拟机创建线程的数量是有限的; 2.线程调度切换也将使程序性能下降; 针对这些问题, 对线程数量进行管理, 有效地重复利…

分享一个非常 nice 的工具

最近有个问题,我需要经常使用远程连接工具,原因很简单,我需要控制另外一台电脑,我刚开始使用的是 teamviewer 这个软件,刚开始用的时间是非常爽的,不过有一天他给我来了个提示,说我的软件被商用…

推荐周立功先生的一本书

1. 这篇文章主要是推荐周工的一本书,大家在学习嵌入式的时候,很多人不明白嵌入式系统和单片机的区别,又感觉自己对嵌入式有所了解,知道什么是嵌入式,文章里的很多见解我觉得对很多人都非常有帮助,今晚上周工…

图管够!灌篮高手、女儿国…阿里日_这帮程序员太会玩了!

5月10日是阿里一年一度的阿里日,这对阿里人来说,是个非常特别的日子。 那什么是阿里日呢?看看官方介绍: 它起源于2005年4月20日,是为了纪念2003年5月的“非典”时期阿里人的激情和信念。因此阿里巴巴决定,今…

复习Collection_迭代器使用细节_泛型_综合案例

Collection_迭代器使用细节_泛型_综合案例 主要内容 Collection集合迭代器增强for泛型 第一章 Collection集合 1.1 集合概述 集合:集合是java中提供的一种容器,可以用来存储多个数据。 集合和数组既然都是容器,他们之间的区别: 数组的…

Kubernetes dashboard集成heapster

图形化展示度量指标的实现需要集成k8s的另外一个Addons组件: Heapster 。 Heapster原生支持K8s(v1.0.6及以后版本)和 CoreOS ,并且支持多种存储后端,比如: InfluxDB 、 ElasticSearch 、 Kafka 。 下载源包和images文件 下载地址h…

ESP32 分区介绍

软件设计分区表 如上图是正常运行需要的分区,一个系统的正常运行是需要这么多分区的。 分区表,我们软件默认配置的分区表如下 # Espressif ESP32 Partition Table # Name, Type, SubType, Offset, Size, Flags nvs,data,nvs,0x9000,16K, otadata,data,…

python坦克大战_Life is short,you need Python——Python实现坦克大战(一)

先展示一下效果搓搓小手手,坦克大战即将开始……https://www.zhihu.com/video/1140743290784817152一、游戏引擎的安装安装方式有两种:1.pip安装 windows R --> cmd --> pip install pygame2.pycharm安装 File -->setting -->project -->…

复习Java字节流_字符流使用及案例

字节流_字符流 主要内容 IO流字节流字符流异常处理Properties 第一章 IO概述 1.1 什么是IO 生活中,你肯定经历过这样的场景。当你编辑一个文本文件,忘记了ctrls ,可能文件就白白编辑了。当你电脑上插入一个U盘,可以把一个视频…

ESP32 coredump 分析

1. 上次写了一个 ESP32 入门,我想有必要再写这篇文章,这次主要是分析 coredump 的,这就像 Android 和 Linux 系统的死机分析,有意思,也有难度。我们写代码的时候,不可避免的会遇到一些 coredump 的问题&am…

我那个在华为过得很好的朋友

最近华为的事件又上了热搜,不管是微信还是知乎,都在啃这个热点,一种是看热闹不闲事大的,一种是看热闹闲事大的,我呢?昨晚跟我的一个华为朋友玩了几把王者荣耀,虽然不能带他全盘浪,但…

Redis概述_使用命令对redis的数据进行增删改查_Jedis连接redis进行数据操作_redis进行数据缓存案例

学习目标 redis 概念下载安装命令操作 1. 数据结构持久化操作使用Java客户端操作redis Redis 前言(从百度上抄的, 看看了解一下, 懒得排版了) 1. 概念: redis是一款高性能的NOSQL系列的非关系型数据库1.1.什么是NOSQLNoSQL(NoSQL Not Only SQL),意即…

要有敬畏之心

最近开始周六也没有休息,心理上还是很难接受,也不是说周六上班有多累,就是没有找到对的感觉,就像和一个不喜欢的姑娘相亲,就算姑娘家财万贯,貌美如花,自己还是提不起兴趣,可能这就是…

复习Java_List_Set_HashSet原理_Collections使用_Comparator使用

复习Java_List_Set_HashSet原理_Collections使用_Comparator使用 主要内容 数据结构List集合Set集合Collections 第一章 数据结构 2.1 数据结构有什么用? 加快应用开发, 提高程序健壮性, 提高程序可重用性 2.2 常见的数据结构 数据存储的常用结构有&#xff…

最近,我也要买书了

1.当当网给我做的一个活动,购书优惠,确实是福利了,而且筛选的书籍对我们做嵌入式都是比较有帮助的,你应该知道,做活动的时候,价格都是比较不错,不要错过了时间再想要当时的价格,有需…

复习Java异常处理_异常分类_自定义异常_线程初步了解

复习Java异常处理_异常分类_自定义异常_线程 主要内容 异常、线程 教学目标 第一章 异常 1.1 异常概念 异常,就是不正常的意思。在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将受影响.在程序中的意思就是: 异常…

跟我师兄聊天引发的思考

我一个师兄,上大学的时候关系很好,我师兄也很喜欢打篮球,也许这就是我们有很多共同话题的原因,人是很奇怪,特别是做技术的,本来就比较闷,很难跟陌生人马上来电,但是如果有个共同爱好…

别忘了当初你为何出发

最近,特别喜欢听一个广播,宝安905,估计是因为我最近营养不太够,需要多喝一些鸡汤,刚好这个电台广播的鸡汤非常够味,非常符合我现在的胃口。比如这一句「你想收获世界上最好的东西,先让世界看到最…