热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux+MicroPython+esp8266YES!

MicPythonMicroPython是澳大利亚程序员和物理学家DamienGeorge在2013年一次成功的众筹活动后最初创建的。MicroPython和CPython在Pyt


MicPython

MicroPython是澳大利亚程序员和物理学家Damien George在2013年一次成功的众筹活动后最初创建的。MicroPython 和 CPython 在 Python 3 语法上保持高度的一致性,常用的标准语法命令都已经支持

Python语言有多种实现。如CPython、Jython、PyPy等。可以说MicroPython正是这Python大家族中的一员。但与其他Python成员不同的是,MicroPython更适用于嵌入式系统,如ESP8266、ESP32、Pico树莓派等物联网开发板。CPython是目前最为流行的Python实现,可以说CPython就是标准Python了。

既然有了CPython那为何还要多一个MicroPython呢?

Python与MicroPython所适用的系统在硬件资源和软件环境上差别很大。物联网开发板可供用户使用的的内存只有几Mb。而电脑或手机内存最少也有1Gb,天壤之别。

通常嵌入式开发里最流行的语言是C,学习Python或MicroPython是不是多此一举呢? 咱就玩玩,怎么方便,怎么快乐怎么来!人生苦短,快用python。用这个有啥优势呢

动态开发

使用C语言开发时,需要将写好的程序编译成二进制文件然后上传开发板。如果修改程序内容,则需要再次编译,再次上传。贼麻烦(你要是用过Arduino IDE你就知道,那个编译速度 啧)。而MicroPython是一种动态语言。无需编译就可以直接让开发板运行程序内容。同时,我们在程序执行过程中也可以动态的调整程序参数,十分便于我们调试程序。

OTA开发

所谓OTA就是无需用电脑与开发板联线就可以实现设备固件更新。MicroPython配有webrepl开发环境,便于我们使用WiFi对开发板进行固件更新或修改。wifi一连,啪就上去了,很快啊

更便捷的文件管理

MicroPython固件一刷,ESP8266就像个一个小型操作系统,文件系统都有了,还要啥自行车。

丰富的开源库让开发更加便捷

和Arduino一样MicroPython也有非常丰富的开源库供我们使用。无论是控制电机、取传感器信息还是使用HTTP协议或MQTT协议、实现物联网操作。这可比用C开发快多了,MicoPython代码跑的可能不如用C写的编译好的二进制快,who care


搭建环境

linux+esp8266+micpython 咱们当然是在linux下整!


第一步:确定端口

确定你的esp8266的端口号

注意这时候还没有将你的esp8266插入电脑

esp8266连入电脑

多了个/dev/ttyUSB0没错,你的esp8266对应的端口号就它了。

linux一切皆文件,来瞅瞅这个文件的属性,看看我们一会儿有没有权限通过这个文件刷入固件MicoPython固件。

果然没有权限。 自己加!

权限777 加满 能要的俺全要。

不用太担心安全性,等你usb一拔,再插上权限又都没了。ttyUSB0是个临时文件


第二步:下载固件

MicroPython官网 www.micropython.org下载固件


第三步:擦、刷

# 安装工具
pip install esptool
#先擦
~/.local/bin/esptool.py --port /dev/ttyUSB0 erase_flash
#后刷
~/.local/bin/esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash --flash_size=detect 0 ./esp8266-20210420-unstable-v1.15.bin



行了,你的esp8266现在就像个小操作系统啦,能解释MicoPython程序了


第四步:开发环境

我们来看看

安装thonny

# Arch 系列
sudo pacman -S thonny
#ubuntu
sudo apt install thonny

打开thonny 工具 > 设置 > 解释器

成了!!!



推荐阅读
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • svnWebUI:一款现代化的svn服务端管理软件
    svnWebUI是一款图形化管理服务端Subversion的配置工具,适用于非程序员使用。它解决了svn用户和权限配置繁琐且不便的问题,提供了现代化的web界面,让svn服务端管理变得轻松。演示地址:http://svn.nginxwebui.cn:6060。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • 前言无论使用哪种语言,我们都需要关注性能优化,提高执行效率。选择脚本语言需要持久的速度。在某种程度上,这句话说明了Python作为一种脚 ... [详细]
  • python语言单行注释符_Pyhton 单行、多行注释符号使用方法及规范
    python中的注释有多种,有单行注释,多行注释,批量注释,中文注释也是常用的。python注释也有自己的规范, ... [详细]
  • 在Python编程教程的这一部分中,我们通常讨论Python编程语言。我们展示了如何执行我们的第一 ... [详细]
  • pythonruby本文是Sqreen的第一位工程师Benoit(他在Ruby代理和Python后端上工作)分享的个人经验。早在2008年, ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • Python字典推导式及循环列表生成字典方法
    本文介绍了Python中使用字典推导式和循环列表生成字典的方法,包括通过循环列表生成相应的字典,并给出了执行结果。详细讲解了代码实现过程。 ... [详细]
  • 本文介绍了使用Python根据字典中的值进行排序的方法,并给出了实验结果。通过将字典转化为记录项,可以按照字典中的值进行排序操作。实验结果显示,按照值进行排序后的记录项为[('b', 2), ('a', 3)]。 ... [详细]
  • 本文介绍了Python版Protobuf的安装和使用方法,包括版本选择、编译配置、示例代码等内容。通过学习本教程,您将了解如何在Python中使用Protobuf进行数据序列化和反序列化操作,以及相关的注意事项和技巧。 ... [详细]
  • 我们需要用到一个python强大的库:python-dox直接pipinstallpython-docx在项目中加个赤壁赋.docx的空文件附上完整的python代码fromdoc ... [详细]
  • 开发笔记:超全的《 Django 入门教程 》上线了,居然还免费!
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了超全的《Django入门教程》上线了,居然还免费!相关的知识,希望对你有一定的参考价值。 ... [详细]
  • python基础知识之前我们已经看到Python能够将运算符与字符串组合在一起,以便在屏幕上显示消息。例如,此代码将打印单词“Hello”, ... [详细]
  • python的种类
    Cpython  Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。Jy ... [详细]
author-avatar
马宝宝
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有