山重水复疑无路,柳暗花明又一村 。

一、模块使用

1.DFPlayer Mini MP3音乐播放模块

在这里插入图片描述
接线图,注意*在TX,RX与MP3模块的RX,TX之间连一个1k电阻。因为DFPlayer Mini模块工作电压应该是3.3V,而主控板传入电压为5V,因此需要1K左右电阻分压。*
在这里插入图片描述
内存卡文件配置,非常重要!!!!!!!

注意:文件夹命名需要是mp3,放置在SD卡根目录下,而mp3文件命名需要是4位
数字,例如"0001.mp3",放置在mp3文件夹下。 如需中英文命名,可以添加在
数字后,例如"0001hello.mp3"或者"0001后来.mp3"

例如:
在这里插入图片描述
一定是要有延时要不然播放不完整!!!!!!!!
代码块:
在这里插入图片描述
代码:

/*!
 * MindPlus
 * uno
 *
 */
#include <DFRobot_PlayerMini.h>
#include <SoftwareSerial.h>
// 创建对象
DFRobot_PlayerMini mp3;
SoftwareSerial     softSerialmp3(2, 3);
// 主程序开始
void setup() {
    
    
	mp3.begin(&softSerialmp3);
	mp3.volume(100);
	mp3.start();
}
void loop() {
    
    
	mp3.playMp3Folder(1);
	delay(5000);
}

2.舵机

在这里插入图片描述
有PWM功能引脚才能用!!!!!!
程序贴在这里了

#include <Servo.h>
 
#define PIN_SERVO 10
Servo myservo;
 
void setup()
{
    
    
  myservo.attach(PIN_SERVO);
}
 
void loop()
{
    
    
  myservo.write(0);
  delay(1000);
  myservo.write(80);
  delay(1000);
  myservo.write(160);
  delay(1000);
  myservo.write(80);
  delay(1000);
  myservo.write(0);
  delay(1000);
}

二、函数,库…

1.字符串操作函数(太牛逼了,强烈推荐,给爷好好学!!!!!!!!)

先贴出来原链接:https://www.cnblogs.com/1996jiwei/p/6666818.html
String.h库函数 贴出来两个比较常用的吧!
1.寻找字符串第几个

str.charAT(n)

描述
获取字符串的第n个字符
参数
n :是一个索引,作为下标
2.截取字符串
描述
用来截取字符串中间的某一位置。另外是决定那里结束
用法:

string1.substring(from); //返回 from 之后的
string1.substring(from,to); //返回 from 和 to 之间的

参数:

string1:原本的字符串
from:要截取的字符串从第几个字开始。
to:要截取后面的第几个字

3.实战

#include "String.h"
String a_1,a_2,S;
void setup()
{
    
    
  Serial.begin(9600);//打开串口,设置波特率9600
  a_1 = "hello";
}
void loop()
{
    
    
    S = a_1.charAt(3);  //取对象里面的方法charAt
    a_2=a_1.substring(0,3);
    Serial.print(a_2);
    Serial.println();//输出换行符
    delay(200);
}

2、串口接收字符串

String comdata = "";

void setup()
{
    
    
    Serial.begin(9600);
}

void loop()
{
    
    
    while (Serial.available() > 0)  
    {
    
    
        comdata += char(Serial.read());
        delay(2);
    }
    if (comdata.length() > 0)
    {
    
    
        Serial.println(comdata);
        comdata = "";
    }
}

3.软串口冷知识

除HardwareSerial外,Arduino还提供了SoftwareSerial类库,它可以将你的其他数字引脚通过程序模拟成串口通信引脚。
通常我们将Arduino UNO上自带的串口称为硬件串口,而使用SoftwareSerial类库模拟成的串口,称为软件模拟串口(简称软串口)。
在Arduino UNO上,提供了0(RX)、1(TX)一组硬件串口,可与外围串口设备通信,如果要连接更多的串口设备,可以使用软串口。
软串口是由程序模拟实现的,使用方法类似硬件串口,但有一定局限性:在Arduino UNO MEGA上部分引脚不能被作为软串口接收引脚,且软串口接收引脚波特率建议不要超过57600。

#include <SoftwareSerial.h>
//实例化软串口
SoftwareSerial mySerial(2, 3); // RX, TX

void setup()
{
    
    
  Serial.begin(115200);
  while (!Serial) {
    
    
  }

  Serial.println("Goodnight moon!");

  mySerial.begin(9600);
  mySerial.println("Hello, world?");
}

void loop()
{
    
    
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read());
}

多个软串口怎么用?###很重要

当需要连接多个串口设备时,可以建立多个软串口,但限于软串口的实现原理,Arduino UNO只能同时监听一个软串口,当存在多个软串口设备时,你需要使用listen() 函数指定需要监听的设备。如程序中存在portOne、portTwo两个软串口对象时,你欲监听portOne,便需要使用portOne.listen() 语句,要切换监听port2,便使用portTwo.listen() 语句。
示例程序如下:

/*
Arduino UNO软串口通信
通过listen()切换监听软串口
*/

#include <SoftwareSerial.h>
SoftwareSerial portOne(10, 11);
SoftwareSerial portTwo(8, 9);

void setup() {
    
    
  Serial.begin(9600);
  while (!Serial) {
    
    
  }

  portOne.begin(9600);
  portTwo.begin(9600);
}

void loop() {
    
    
//监听1号软串口
  portOne.listen();

  Serial.println("Data from port one:");
  while (portOne.available() > 0) {
    
    
    char inByte = portOne.read();
    Serial.write(inByte);
  }

  Serial.println();
//监听2号软串口
  portTwo.listen();

  Serial.println("Data from port two:");
  while (portTwo.available() > 0) {
    
    
    char inByte = portTwo.read();
    Serial.write(inByte);
  }

  Serial.println();
}

三、ESP8266+BILNKER

1、配置环境

第一:下载arduino:
下载地址:https://www.arduino.cc/en/software
第二步:下载并安装blinker Arduino库
https://diandeng.tech/dev

Windows:将下载好的blinker库解压到
 我的电脑>文档>Arduino>libraries 文件夹中

第三步:下载blinker

Android下载:
点击下载
或 在android应用商店搜索“blinker”下载安装
IOS下载:
点击下载
或 在app store中搜索“blinker”下载

第四步:打开后自己注册后登录

2、添加设备

每一个设备在blinker上都有一个唯一的密钥,blinker设备会使用该密钥认证设备身份,从而使用blinker云平台上的相关服务。
进入blinker App,点击“添加设备”,进行设备添加。
选择独立设备,再选择WiFi接入,即可获取一个唯一的密钥。暂存这个密钥,此后程序中会使用到它。
在这里插入图片描述

在这里插入图片描述
本示例可以将设备端采集的温湿度数据,通过心跳包同步数据的方式,显示到APP上。
通过界面编辑功能,添加两个数据组件,将数据键值分别设为humi和temp,两个组件分别对应温湿度数据。 如图:
在这里插入图片描述

这个组件名要记得,是和arduino交互的!
OK,添加完成

3、arduino程序编写以及上传

先更改自己的信息

char auth[] = "Your Device Secret Key";
char ssid[] = "Your WiFi network SSID or name";
char pswd[] = "Your WiFi network WPA password or WEP key";

复制到arduino ide编辑器

#define BLINKER_WIFI

#include <Blinker.h>


char auth[] = "Your Device Secret Key";
char ssid[] = "Your WiFi network SSID or name";
char pswd[] = "Your WiFi network WPA password or WEP key";
BlinkerNumber HUMI("humi");
BlinkerNumber TEMP("temp");
float humi_read = 0, temp_read = 0;
void heartbeat()
{
    
    
    HUMI.print(humi_read);
    TEMP.print(temp_read);
}

void setup()
{
    
    
    Serial.begin(115200);
    BLINKER_DEBUG.stream(Serial);
    BLINKER_DEBUG.debugAll();
    Blinker.begin(auth, ssid, pswd);
    Blinker.attachHeartbeat(heartbeat);

}

void loop()
{
    
    
    Blinker.run();
    humi_read = 54.3;
    temp_read = 16.5;

    Blinker.delay(2000);
}

在这里插入图片描述
在这里插入图片描述
OK,完成
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Mrli0530/article/details/120315466