ESP8266(1):搭建Linux环境ESP8266_RTOS_SDK,ESP8266使用GPIO控制继电器

news2024/12/28 18:05:44

0)准备工作,之前一直对esp8266不了解,现在想着给鱼缸加个定时打氧的程序,控制泵的工作。所以购买了一个esp8266 Relay,自己摸索写个简单程序。让泵工作一段时间,再休眠一段时间。

1)宿主机Ubuntu 20.04.5

2)下载cross compile

https://dl.espressif.com/dl/xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-amd64.tar.gz

3)clone源码

git clone https://github.com/espressif/ESP8266_RTOS_SDK.git

使用最新的程序

~/esp8266/ESP8266_RTOS_SDK$ git log
commit af0cdc36fa2600033d0a09301c754008cf1503c1 (HEAD -> master, origin/master, origin/HEAD)
Merge: 35375c17 d93c5bb8
Author: Dong Heng <dongheng@espressif.com>
Date:   Sat May 6 10:04:24 2023 +0800

    Merge branch 'feature/httpd_support_reuse_addr' into 'master'
    
    feat(httpd): Allow binding to same address and port upon restarting server without delay
    
    See merge request sdk/ESP8266_RTOS_SDK!1675

4)安装pip

~/esp8266$ python --version

Python 2.7.18

$ wget https://bootstrap.pypa.io/pip/2.7/get-pip.py # 下载安装脚本

$ sudo python get-pip.py # 运行安装脚本

~/esp8266$ sudo python  get-pip.py

DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at Release process - pip documentation v23.2.dev0 pip 21.0 will remove support for this functionality.

Collecting pip<21.0

  Downloading pip-20.3.4-py2.py3-none-any.whl (1.5 MB)

     |████████████████████████████████| 1.5 MB 27 kB/s

Collecting setuptools<45

  Downloading setuptools-44.1.1-py2.py3-none-any.whl (583 kB)

     |████████████████████████████████| 583 kB 31 kB/s

Collecting wheel

  Downloading wheel-0.37.1-py2.py3-none-any.whl (35 kB)

Installing collected packages: pip, setuptools, wheel

Successfully installed pip-20.3.4 setuptools-44.1.1 wheel-0.37.1

~/esp8266$

~/esp8266/ESP8266_RTOS_SDK$ python -m pip install --user -r requirements.txt

5)cd esp8266/ESP8266_RTOS_SDK/examples/get-started/hello_world

make menuconfig

make all

6)在多多上买的esp8266 relay,很小的一个东西。

 7)GPIO0接地,开始烧录。

我们先看下ESP8266-01S引脚说明:

序号引脚名称I/O描述DC特性备注
1UTXDAT 串口发送输出3.3V开机时禁止下拉
2GND
3CH_PD(EN)模块断电信号3.3V 1)高电平工作; 2)低电平模块供电关掉;
4GPIO2预留,默认悬空3.3V开机上电时必须为高电平,禁止硬件下拉;内部默认已拉高
5GPIO16I复位信号(RESET)3.3V低电平复位,高电平工作(默认高);
6GPIO0模块状态灯/工作模式选择3.3V1)默认WiFiStatus:

WiFi工作状态指示灯控制信号;

2)工作模式选择:

上拉:FlashBoot,工作模式;

下拉:UARTDownload,下载模式(下载固件);

7VCCI模块采用单电源供电,通过 1 个VCC 电源引脚供电,电压范围:3.0V-3.6V,电流>600mA

Vmax=3.6V

Vmin=3.0V

Vnorm=3.3V

电源供电能力请大于600mA;否则可能会引起模块工作异常,或者无线性能不好。
8URXDAT 串口发送输入3.3V

从引脚定义来看,我们只需要把GPIO0引脚下拉接地就可以进入烧录固件模式啦。

8)make menuconfig时,选择8M flash size. make之后,会提示编译出来的文件,烧录地址是什么

 esp8266/ESP8266_RTOS_SDK/components/esptool_py/esptool/esptool.py --chip esp8266 --port /dev/ttyUSB0 --baud 115200 --before default_reset --after hard_reset write_flash -z --flash_mode dout --flash_freq 40m --flash_size 8MB 0x0 esp8266/ESP8266_RTOS_SDK/examples/wifi/getting_started/station/build/bootloader/bootloader.bin 0x10000 esp8266/ESP8266_RTOS_SDK/examples/wifi/getting_started/station/build/wifi_station.bin 0x8000 esp8266/ESP8266_RTOS_SDK/examples/wifi/getting_started/station/build/partitions_singleapp.bin

虽然我们是在linux上编译出来的,还是可以使用windowns上的工具烧录固件。同样也可以用make flash直接在linux上操作。

 9)完成之后

使用串口工具查看打印信息,

 

 10),代码部分,查看relay的硬件图,它是由gpio0来控制的,所有我们只需要操作它,给它相应的高低电平,即可。

#define GPIO_LED_NUM0 0,

    while(1)
    {
        printf("open gpio\n");
        gpio_set_level(GPIO_LED_NUM0, 1);        /*open*/
        gpio_set_level(GPIO_LED_NUM2, 1);        /*open*/
        vTaskDelay(1000*6 / portTICK_PERIOD_MS);   /* 延时500ms*/

        printf("close gpio\n");
        gpio_set_level(GPIO_LED_NUM0, 0);        /*close */
        gpio_set_level(GPIO_LED_NUM2, 0);        /*close */
        vTaskDelay(1000*6/ portTICK_PERIOD_MS);   
    }

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

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

相关文章

Vue 项目利用 HBuilderX 打包 APP 流程

想要将 Vue 打包成 App&#xff0c;要借助一些插件工具&#xff0c;例如&#xff1a;Electron、Cordova 等&#xff0c;或者直接利用开发工具&#xff0c;例如&#xff1a;Android Studio、HBuilderX 等。本文的目的是带大家通过 HBuilder 开发工具对 Vue 项目进行打包。 一、…

MySQL-函数

1.什么是函数 函数在计算机语言的使用中贯穿始终&#xff0c;函数的作用是什么呢&#xff1f;它可以把我们经常使用的代码封装起来&#xff0c; 需要的时候直接调用即可。这样既 提高了代码效率 &#xff0c;又 提高了可维护性 。在 SQL 中我们也可以使用函数 对检索出来的数据…

7.设计模式之责任链模式

前言 责任链&#xff0c;即将能够处理同一类请求的对象连成一条链&#xff0c;所提交的请求沿着链传递&#xff0c; 链上的对象逐个判断是否有能力处理该请求&#xff0c;如果能则处理&#xff0c;如果不能则传递给链上的下一个对象。为了避免请求发送者与多个请求处理者耦合在…

git如何将本地分支推送到远程(远程上没有该分支)

Author: wencoo Blog&#xff1a;https://wencoo.blog.csdn.net/ Date: 12/05/2023 Details:文章目录 正文 或 背景7.如果远程新建了一个分支&#xff0c;本地没有该分支。8.如果本地新建了一个分支 branch_name&#xff0c;但是在远程没有。报错解决 参考打赏 正文 或 背景 本…

Java8之Stream操作

Java8之Stream操作 stream干啥用的&#xff1f;创建流中间操作终结操作好文推荐----接口优化思想 stream干啥用的&#xff1f; Stream 就是操作数据用的。使用起来很方便 创建流 → 中间操作 → 终结操作 Stream的操作可以分为两大类&#xff1a;中间操作、终结操作 中间操作可…

【项目源码】采用UWB技术开发的定位系统源码,室内定位系统源码

UWB技术定位系统源码&#xff0c;高精度人员定位系统源码&#xff0c;智慧工厂人员定位系统源码&#xff0c;室内定位系统源码 技术架构&#xff1a;单体服务 硬件&#xff08;UWB定位基站、卡牌&#xff09; 开发语言&#xff1a;java 开发工具&#xff1a;idea 、VS Code…

字节小组长薪资被应届生员工倒挂7K,不把老员工当人?

一位字节跳动的小管理爆出&#xff0c;无意中看到了整个部门薪资&#xff0c;本以为自己算比较高的&#xff0c;但看完之后整个人都傻眼了。小组长的职位月薪28K&#xff0c;而手下组员却是35K&#xff0c;当天晚上抽了一包烟也没想明白是为什么。 楼主表示&#xff0c;自己是字…

基于java的闲置物品交易系统的设计与实现

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据你想解决的问题&#xff0c;今天给…

YOLOv5改进系列(4)——添加ECA注意力机制

【YOLOv5改进系列】前期回顾: YOLOv5改进系列(0)——重要性能指标与训练结果评价及分析 YOLOv5改进系列(1)——添加SE注意力机制 YOLOv5改进系列(2)——添加CBAM注意力机制

T265录制的rosbag拆包:拆IMU序列和图像序列方法以及如何制作双目euroc、双目tum数据集

目录 1.录制bag包 2.左右目图像的拆解 3.拆IMU数据 4.如何制作eruoc与tum数据集 4.1 eruoc数据集格式 4.2 对齐时间戳 4.3 编写imu.csv文件 4.4 生成索引文件 4.一个脚本完成拆包 1.录制bag包 这里推荐我的同学的博客&#xff0c;大家可以参考这篇博客录制T265的ros包并…

移动互联网市场是不需要Android 开发了吗?

就近有不少朋友在吐槽&#xff1a;如今Android工作真的难找&#xff01;从年初找到了现在&#xff0c;是市场不需要Android 开发人才了&#xff0c;人都迷茫了&#xff0c;是不是应该考虑转行了&#xff1f; 其实这种情况往年也是有的&#xff0c;但是今年显得的更严重一些。我…

【el-select】多选的简单用法

即使element用了很久&#xff0c;还是会有新的东西没用过 el-select的多选和日期组件有范围的el-date-picker很相似&#xff0c;都是绑定数组&#xff0c;然后给需要的字段再赋值 加上multiple属性即可&#xff0c;collapse-tags看自己需不需要 这个时候v-model绑定的是数组 …

【C++初阶】C++模版(初阶)

文章目录 前言泛型编程函数模版函数模板概念函数模板格式函数模板的原理函数模板的实例化1.隐式实例化2.显式实例化 函数模版的匹配规则 类模版类模板的定义格式类模板的实例化 总结 前言 C的模版也是相较于C语言更有优势的地方&#xff0c;正是有了模版&#xff0c;才让C真正…

vue-admin-template 后台模版初始化及问题汇总

参考&#xff1a;https://segmentfault.com/a/1190000023185109?sortvotes 问题一&#xff1a;Unsupported engine 后来经过分析&#xff0c;发现&#xff0c;element-ui 的版本依赖锁定是在一个叫做package-locak.json 中&#xff0c;并且找到了相关配置。 package-lock.js…

C语言文件:数据文件a.txt中保存了若干个学生的学号、姓名和成绩。请编程读出显示文件内容并分类统计各等级人数,最后显示统计结果。

一、作者想先说一点废话&#xff08;狗头表情&#xff09; 想必经常看我博客的小伙伴们已经发现我最近的博客风格和以往有些不同。以往的博客都是“一本正经不敢胡来”&#xff0c;但近段时间&#xff0c;文章风格却变得“废话连篇放荡不羁”&#xff0c;究竟是为什么呢&#…

像素画板-第14届蓝桥杯省赛Scratch初级组真题第4题

[导读]&#xff1a;超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成&#xff0c;后续会不定期解读蓝桥杯真题&#xff0c;这是Scratch蓝桥杯真题解析第133讲。 像素画板&#xff0c;本题是2023年5月7日举行的第14届蓝桥杯省赛Scratch图形化编程初级组真题第4题&#xf…

基于VCSEL红外激光,柔性AR隐形眼镜方案诞生

研发AR隐形眼镜有多难&#xff1f;从备受关注的Mojo Vision来看&#xff0c;这家公司成立了8年时间&#xff0c;累计融资超过2.26亿美元&#xff0c;但由于产品进展和融资受阻问题&#xff0c;不得不大幅裁员、重组&#xff0c;将重心从AR隐形眼镜转移到Micro LED显示业务。 为…

生态、遥感、大气、水文水资源、地下水土壤、人工智能等多领域教程

理论讲解案例实战动手实操讨论互动 针对 生态农林、遥感、语言土壤、统计、人工智能等领域全套教程。包含:InVEST模型、DSSAT模型、CENTURY模型、CASA模型、SWH蒸散模型、BGC模型、MAXENT模型、CLM模式、CLUE模型、PROSAIL模型、Biomod模型、Hydrus模型、Meta分析、ArcGIS、MAT…

黑马点评Redis实战(优惠卷秒杀)

本文是上一篇文章的后续&#xff0c;上一篇文章链接 马点评Redis实战(短信登录;商户查询缓存) 锁 一、优惠卷秒杀 id是一个订单必备的属性&#xff0c;而订单的id属性是必须唯一的&#xff0c;首先我们会想到使用数据库主键id&#xff0c;并设置为自增。这样似乎就能满足唯…

tracker_query_storage fail, error no: 28, error info: No space left on device

先说结论&#xff1a; 这个错误信息提示磁盘空间不足&#xff0c;导致tracker查询存储失败。错误代码28表示系统中没有足够的可用空间。这个问题的解决方法是清理磁盘空间&#xff0c;释放足够的存储空间。 [rootlocalhost fdfs]# fdfs_test /etc/fdfs/client.conf upload /h…