Arduino
一、模块使用
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,完成