8266 Ubuntu下 arduino开发

2024-04-13 10:20
文章标签 ubuntu 开发 arduino 8266

本文主要是介绍8266 Ubuntu下 arduino开发,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

8266 NodeMCU arduino开发

直接用usb连接8266的usb接口即可,设备中会出现/dev/ttyUSB0, 需要将其权限设置下sudo usermod -a -G dialout $USER. logout后生效.
下载arduino IDE,做以下设置:

  • file/preferences Additional boards manager URLS设置为http://arduino.esp8266.com/stable/package_esp8266com_index.json
  • Tools//Board设置为NodeMCU 1.0(ESP-12E Module)
  • Tools/Port设置为/dev/ttyUSB0
    编写下面代码
#define LED_BUILTIN 2
int i_frame = 0;
void setup() {   Serial.begin(9600);         // Start the Serial communication to send messages to the computerdelay(1);Serial.println("init done \n");// initialize inbuilt LED pin as an output.pinMode(LED_BUILTIN, OUTPUT);
}// loop function runs over and over  again forever
void loop() {char buff[255];sprintf(buff, "%d frame------", i_frame);Serial.println(buff);// Serial.print(i_frame);// Serial.println("loop----");digitalWrite(LED_BUILTIN, HIGH);   // turn the  LED on by making the pin 13 HIGHdelay(500);              // wait for a 0.5  seconddigitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the  pin 13 LOWdelay(500);              // wait for a 0.5 secondi_frame += 1;
}

点击upload即可.

注意

arduino esptool 可能会比较老导致刷入固件失败,那么可以用pip安装一个最新的版本,然后替换掉arduino用的这个版本.

pip install esptool
# 查看新安装的版本位置
pip show esptool
cd ~/.arduino15/packages/esp8266/hardware/esp8266/3.1.2/tools
mv esptool esptool_ori
cp ~/anaconda3/lib/python3.7/site-packages/esptool . -r

重新build即可.

  • 其他一些命令
# 获取flash信息
esptool.py --port /dev/ttyUSB0  --baud 115200 flash_id# 手动刷入bin
esptool.py --port /dev/ttyUSB0  --baud 115200 write_flash -fm dio 0x00000 ./0x00000.bin

mqtt示例

  • 先安装mqtt 库
    Sketch -> Include Library -> Manage Libraries… 输入PubSubClient, 选择Nick O’Leary版本
  • 下载MQTTX
    配置:
    Broker: broker.emqx.io
    TCP Port: 1883
    Websocket Port: 8083
  • 使用以下代码测试
#include <ESP8266WiFi.h>
#include <PubSubClient.h>// WiFi
const char *ssid = "2.4g"; // Enter your WiFi name
const char *password = "abc";  // Enter WiFi password// MQTT Broker
const char *mqtt_broker = "broker.emqx.io";
const char *topic = "esp8266/test";
const char *mqtt_username = "emqx";
const char *mqtt_password = "public";
const int mqtt_port = 1883;WiFiClient espClient;
PubSubClient client(espClient);void setup() {// Set software serial baud to 115200;Serial.begin(115200);// connecting to a WiFi networkWiFi.begin(ssid, password);while (WiFi.status() != WL_CONNECTED) {delay(500);Serial.println("Connecting to WiFi..");}Serial.println("Connected to the WiFi network");//connecting to a mqtt brokerclient.setServer(mqtt_broker, mqtt_port);client.setCallback(callback);while (!client.connected()) {String client_id = "esp8266-client-";client_id += String(WiFi.macAddress());Serial.printf("The client %s connects to the public mqtt broker\n", client_id.c_str());if (client.connect(client_id.c_str(), mqtt_username, mqtt_password)) {Serial.println("Public emqx mqtt broker connected");} else {Serial.print("failed with state ");Serial.print(client.state());delay(2000);}}// publish and subscribeclient.publish(topic, "hello emqx");client.subscribe(topic);
}void callback(char *topic, byte *payload, unsigned int length) {Serial.print("Message arrived in topic: ");Serial.println(topic);Serial.print("Message:");for (int i = 0; i < length; i++) {Serial.print((char) payload[i]);}Serial.println();Serial.println("-----------------------");
}void loop() {client.loop();
}
  • 在mqttx中输入message后,arduino 串口会打印出消息.

12F 接线参考

https://blog.csdn.net/qq_42190295/article/details/91867943
https://zhuanlan.zhihu.com/p/346356668

fm的设置参考官方解释:

flash-mode is qio for most ESP8266 ESP-01/07 (512 kByte modules) and dio for most ESP32 and ESP8266 ESP-12 (>=4 MByte modules). ESP8285 requires dout.
其他资料:
https://www.dfrobot.com.cn/images/upload/File/DFR0489/20170906115748b3idk3.pdf

这篇关于8266 Ubuntu下 arduino开发的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Ubuntu如何升级Python版本

《Ubuntu如何升级Python版本》Ubuntu22.04Docker中,安装Python3.11后,使用update-alternatives设置为默认版本,最后用python3-V验证... 目China编程录问题描述前提环境解决方法总结问题描述Ubuntu22.04系统自带python3.10,想升级

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

基于Java开发一个极简版敏感词检测工具

《基于Java开发一个极简版敏感词检测工具》这篇文章主要为大家详细介绍了如何基于Java开发一个极简版敏感词检测工具,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录你是否还在为敏感词检测头疼一、极简版Java敏感词检测工具的3大核心优势1.1 优势1:DFA算法驱动,效率提升10

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块

Java 与 LibreOffice 集成开发指南(环境搭建及代码示例)

《Java与LibreOffice集成开发指南(环境搭建及代码示例)》本文介绍Java与LibreOffice的集成方法,涵盖环境配置、API调用、文档转换、UNO桥接及REST接口等技术,提供... 目录1. 引言2. 环境搭建2.1 安装 LibreOffice2.2 配置 Java 开发环境2.3 配

Python38个游戏开发库整理汇总

《Python38个游戏开发库整理汇总》文章介绍了多种Python游戏开发库,涵盖2D/3D游戏开发、多人游戏框架及视觉小说引擎,适合不同需求的开发者入门,强调跨平台支持与易用性,并鼓励读者交流反馈以... 目录PyGameCocos2dPySoyPyOgrepygletPanda3DBlenderFife

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3

Django开发时如何避免频繁发送短信验证码(python图文代码)

《Django开发时如何避免频繁发送短信验证码(python图文代码)》Django开发时,为防止频繁发送验证码,后端需用Redis限制请求频率,结合管道技术提升效率,通过生产者消费者模式解耦业务逻辑... 目录避免频繁发送 验证码1. www.chinasem.cn避免频繁发送 验证码逻辑分析2. 避免频繁