【学习记录】基于Arduino IDE的NodeMCU开发环境

一、前言

        大概是半年前学习了关于NodeMCU和OLED屏幕的使用,还测试了获取天气信息的程序。但是最近重新拿起来的时候,又是一脸茫然,根本不知道从哪里开始。所以我的感触是做板子开发还得经常操作,不然操作不熟悉,再加上自己也半生不熟,更是一阵乱摸索。

        昨天尝试使用ESPlorer编辑NodeMCU开发板,但后面被一些奇怪的问题困惑了,如Not enough memory;一点RST按键,开发板就从电脑上丢失,这时候只能重启电脑。

        今天下午我决定重新走Arduino IDE开发NodeMCU的路子,目前来说,比使用ESPlorer顺利很多。这里简单记录一下。

二、基于Arduino IDE的ESP8266开发环境配置

1、下载Arduino IDE并安装。

        Arduino IDE可以直接从网上下载,无论是官网还是论坛,它的安装包还是很好获取的。

2、添加其他开发板管理器地址

        Arduino IDE不能直接识别出NodeMCU开发板,需要下载相关的依赖。

        首先打开Arduino IDE,点击:文件》首选项,在其他开发管理器地址处添加,图1所示为添加后的首选项界面:http://arduino.esp8266.com/stable/package_esp8266com_index.json

图1 添加开发板管理地址

        注:我使用的IDE版本是2.3.2,早前的版本可能有点不一样。

3、下载开发板依赖

        点击:工具》开发板》开发板管理器,输入ESP8266搜索并下载对应内容,如图2所示,是我搜索到的界面。这里我已经下载过来,可以用就行。

图2 在开发版管理器搜索ESP8266并下载依赖

三、一些简单的程序测试 

1、AP模式及blink

        这部分代码主要从太极创客的网站上来的,它们在B站和网站都有相关教程,可以看视频和文档学习。

/*
NodeMCU接入点模式
By 太极创客(http://www.taichi-maker.com)
2019-03-11
 
此程序用于演示如何将NodeMCU以接入点模式工作。通过此程序,您可以使用
电脑或者手机连接NodeMCU所建立WiFi网络。
 
网络名: taichi-maker
密码:12345678
 
如需获得更多关于如何使用NodeMCU开发物联网的教程和资料信息
请参考太极创客网站(http://www.taichi-maker.com)
并在首页搜索栏中搜索关键字:物联网
*/
 
#include <ESP8266WiFi.h>        // 本程序使用ESP8266WiFi库
 
const char *ssid = "taichi-maker"; // 这里定义将要建立的WiFi名称。此处以"taichi-maker"为示例
                                   // 您可以将自己想要建立的WiFi名称填写入此处的双引号中
 
const char *password = "12345678";  // 这里定义将要建立的WiFi密码。此处以12345678为示例
                                    // 您可以将自己想要使用的WiFi密码放入引号内
                                    // 如果建立的WiFi不要密码,则在双引号内不要填入任何信息
 
void setup() {
  Serial.begin(9600);              // 启动串口通讯
 
  WiFi.softAP(ssid, password);     // 此语句是重点。WiFi.softAP用于启动NodeMCU的AP模式。
                                   // 括号中有两个参数,ssid是WiFi名。password是WiFi密码。
                                   // 这两个参数具体内容在setup函数之前的位置进行定义。
 
  
  Serial.print("Access Point: ");    // 通过串口监视器输出信息
  Serial.println(ssid);              // 告知用户NodeMCU所建立的WiFi名
  Serial.print("IP address: ");      // 以及NodeMCU的IP地址
  Serial.println(WiFi.softAPIP());   // 通过调用WiFi.softAPIP()可以得到NodeMCU的IP地址

  pinMode(LED_BUILTIN, OUTPUT);  // 将led引脚设置为输出模式
}
 
void loop() { 
  digitalWrite(LED_BUILTIN, LOW);  //拉低led引脚电平
  delay(1000);
  digitalWrite(LED_BUILTIN, HIGH); //拉高led引脚电平
  delay(2000);
}

将这部分代码编译烧录到NodeMCU开发板后,开发板的灯就会blink-blink闪烁。这时候打开手机的wifi功能会看到对应名称的一个wifi,说明这时候已经成功将开发板做成一个wifi热点,虽然没有网。这个时候我的心情是大好了,比起前面使用ESPlorer时遇到的诸多坎坷,Arduino IDE让我看到了希望。

2、OLED 屏幕测试

这部分的代码是直接从u8g2的示例中搞来的,但是需要取消注释一行内容(就是下面代码U8G2_SSD...很长的那句)。我在下面直接整理好了。

#include <Arduino.h>
#include <U8g2lib.h>

#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif

U8G2_SSD1306_128X32_UNIVISION_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE);   // Adafruit Feather ESP8266/32u4 Boards + FeatherWing OLED


/*U8G2_SSD1306_128X32_univision_F_SW_I2C: 这部分指定了OLED屏幕的类型(128X32的SSD1306)和连接方式(IIC)。
u8g2()这部分代码是为了初始化u8g2对象。
其中参数U8G2_R0表示屏幕旋转为正常方向(R1、R2、R3分别对应顺时针旋转90、180、270°);
SCL和SDA分别代表IIC总线的时钟线和数据线引脚,U8X8_PIN_NONE表示没有使用复位引脚
*/

void setup(void) {
  u8g2.begin();  //初始化显示屏
}

void loop(void) {
  u8g2.clearBuffer();					// clear the internal memory
  u8g2.setFont(u8g2_font_ncenB08_tr);	// choose a suitable font
  u8g2.drawStr(0,10,"Hello World!");	// 在指定坐标(x,y)处绘制文本
  u8g2.sendBuffer();					// 将缓冲区的内容刷新到显示屏上
  delay(1000);  
}

对了,忘了交代OLED和NodeMCU的接线了,这里补充一下:

图3 oled与NodeMCU的接线图(转载)

 当完成上述操作(oled和wifi那个是不一样的,大家可以根据需要凑到一起),就可在屏幕上展示如图4内容:

图4 在oled上显示“Holle World!”

四、 总结与展望

1、总结

上述实验内容为后续的NodeMCU开发打下重要基础,其中包括使用NodeMCU发射wifi信号、使用oled屏幕显示信息,使用blink灯观测开发板状态。

2、展望

后续尝试接入陀螺仪传感器获取实时数据,通过NodeMCU开发板发送到云端,并于Oled显示基本信息。

  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值