第一节课任务要求:
任务一:使开发板上与 IO0 连接的红灯闪烁,亮 2 秒灭 3 秒,循环执行
任务二:使用 Blinker 按钮遥控开发板上与 IO2 连接的蓝灯的亮灭
任务三:使用 Blinker 色彩控制遥控气氛灯的颜色
任务四:使用 Blinker 文本输入框遥控显示屏上的显示输出
任务五:使用 Blinker 显示室内温湿度
任务六:使用显示屏显示室内温湿度,温湿度分别在显示屏的两行上显示,显示 格式为“HUMI:湿度值”、“TEMP:温度值”,湿度值和温度值分别显示到小数点后 两位。同时,可以在 Blinker 上显示室内温湿度
任务七:使用 Blinker 滑条遥控舵机旋转到某个角度
任务八:使用 Blinker 滑条遥控舵机和风扇同时动作
任务九:不使用 Blinker,使得舵机和风扇同时动作,舵机正转时,与 IO0 连接的 红灯长亮,与 IO2 连接的蓝灯熄灭,表示舵机正转;舵机反转时,与 IO2 连接的 蓝灯长亮,与 IO0 连接的红灯熄灭,表示舵机反转
ArduinoIDE编程环境搭建必备
- 安装Arduino:跟教程走就可以
- 下载并安装 8266 扩展库(用于 esp8266 开发板编程)(老师给的):
双击 8266_package_2.7.4.exe,安装 esp8266 扩展库。如果安装过其他版本的 esp8266 SDK,请先删除,再使用本安装包。
删除方法:电脑文件管理器地址栏输入%LOCALAPPDATA%/Arduino15/packages,回车进入,然后删除掉其中的 esp8266 文件夹。
安装完成后,再打开 Arduino IDE,即可在菜单栏→工具→开发板→ESP8266 Boards(2.7.4)中选择 Generic ESP8266 Module 开发板 - 下载并安装 blinker 库文件(用于 blinker 手机 app 连接通信)
blinker 安装包下载链接地址:https://github.com/blinker-iot/blinker-library。
Windows 系统:将下载好的 blinker-library-master 库文件拷贝到C:\Users\lenovo\Documents\Arduino\libraries文件夹中。 - 安装 YwRobot 开发板硬件驱动
将 YwRobot 开发板通过 Micro USB 线连接至电脑,连接好后开发板上的蓝色 PWR 灯常亮。
在第一次使用 YwRobot 开发板时,电脑会自动给 YwRobot 开发板安装驱动(使用的驱动芯片为 CH340)。安装完成后在电脑设备管理器中查看驱动是否安装成功。
安装成功后会有显示驱动对应的通信串口号。 如果因电脑原因导致驱动安装不上,就需要手动安装驱动。下载 CH340 驱动程序后 (老师给的),以管理员身份运行 SETUP.EXE 文件即可。
然后重新拔插下 YwRobot 开发板,直到在设备管理器中成功看到对应的 CH340 的驱动以及后面的 COM 口。
COM 端口号每台电脑不同,通常是除 1 和 2 以外的数字。
在Arduino IDE,菜单栏→工具→端口中选择COM口。 - 手机下载 blinker APP
Android 系统下载:应用市场中搜索“blinker”下载。(据同学说没找到)
IOS 系统下载:App Store 中搜索“blinker”下载。
下载完成后注册一个账号就可以使用 blinker 对外开放的功能。
实验例程
1.使开发板上与 IO0 连接的红灯闪烁,亮 2 秒灭 3 秒,循环执行
int led = 0;//define led control pin
void setup() {
// put your setup code here, to run once:
pinMode(led, OUTPUT);//output mode
}
void loop() {
digitalWrite(led, LOW);//点亮LED
delay(2000);// delay 2000ms
digitalWrite(led, HIGH);//熄灭LED
delay(3000);// delay 1000ms
// put your main code here, to run repeatedly:
}
2.使用 Blinker 按钮遥控开发板上与 IO2 连接的蓝灯的亮灭
记得修改工具-Builtin Led
#define BLINKER_WIFI
#include <Blinker.h>
char auth[] = "";
char ssid[] = "";
char pswd[] = "";
// 新建组件对象
BlinkerButton Button1("btn-abc");
BlinkerNumber Number1("num-abc");
int counter = 0;
// 按下按键即会执行该函数
void button1_callback(const String & state)
{
BLINKER_LOG("get button state: ", state);
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
}
// 如果未绑定的组件被触发,则会执行其中内容
void dataRead(const String & data)
{
BLINKER_LOG("Blinker readString: ", data);
counter++;
Number1.print(counter);
}
void setup()
{
// 初始化串口
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
BLINKER_DEBUG.debugAll();
// 初始化有LED的IO
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, HIGH);
// 初始化blinker
Blinker.begin(auth, ssid, pswd);
Blinker.attachData(dataRead);
Button1.attach(button1_callback);
}
void loop() {
Blinker.run();
}
如果设备显示离线可以断开WiFi
3.使用 Blinker 色彩控制遥控气氛灯的颜色
APP设置:
这里要注意数据键名是否匹配,partner因为把K打成k所以一直没成功
开发板连接:
#define BLINKER_WIFI
#include <Blinker.h>
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
#define PIN 13
#define NUMPIXELS 9
char auth[] = "";
char ssid[] = "";
char pswd[] = "";
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
BlinkerButton Button1("btn-abc");
#define RGB_1 "RGBKey"
BlinkerRGB WS2812(RGB_1);
void ws2812_callback(uint8_t r_value, uint8_t g_value, uint8_t b_value, uint8_t bright_value)
{
BLINKER_LOG("R value: ", r_value);
BLINKER_LOG("G value: ", g_value);
BLINKER_LOG("B value: ", b_value);
BLINKER_LOG("Rrightness value: ", bright_value);
pixels.setBrightness(bright_value);
for(int i = 0; i < NUMPIXELS; i++){
pixels.setPixelColor(i, r_value, g_value, b_value);
}
pixels.show();
}
void button1_callback(const String & state)
{
BLINKER_LOG("get button state: ", state);
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
}
void setup()
{
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, HIGH);
Blinker.begin(auth, ssid, pswd);
Button1.attach(button1_callback);
pixels.begin();
WS2812.attach(ws2812_callback);
}
void loop()
{
Blinker.run();
}