Wemos D1快速入门
Wemos D1快速入门
I/O口的输入输出
void setup()
{
pinMode(D2, OUTPUT); //设置引脚为输出引脚
pinMode(D3, INPUT); //设置引脚为输入引脚
}
void loop()
{
digitalWrite(D2, HIGH); // 输出高电平
digitalWrite(D2, LOW); // 输出高电平
digitalRead(D3); //读取D3脚返回值 1或0
delay(1000); //延时1秒
}
串口通信
Serial.begin()
- 描述:开启串口,通常置于setup函数中
- 原型:
Serial.begin(speed);
Serial.begin(speed,config);
- 参数:
-
speed:波特率,通常为9600,115200等
-
config:设置数据位、校验位和停止位。默认SERIAL_8N1表示8个数据位,无校验位,1个停止位。
- 返回值:无
Serial.println()
- 描述:串口输出数据并换行
- 原型:
Serial.println(val);
Serial.println(val,format);
- 参数:
-
val:打印的值,任意数据类型
-
format:输出数据格式
返回值:返回写入的字节数
Serial.available()
- 描述:判断串口缓冲区的状态,返回串口缓冲区读取的字节数
- 原型:Serial.available()
- 参数:无
- 返回值:可读取的字节数
Serial.read()
- 描述:读取串口数据,一次读一个字符,读完后删除已读数据
- 原型:Serial.read()
- 参数:无
- 返回值:返回串口缓存区第一个可读字节,当没有可读数据时返回-1,整数类型
典例
void setup()
{
pinMode(D2, OUTPUT); //设置引脚为输出引脚
Serial.begin(115200); //初始化串口,设置波特率为115200
}
void loop()
{
if (Serial.available()>0) //检测串口是否有数据
{
int cmd = Serial.read(); //读取串口数据
if (cmd == 1) //如果读取的数据是1
digitalWrite(D2,LOW); //D2输出低电平
else
digitalWrite(D2,HIGH); //D2输出高电平
}
}
SG90舵机
servo函数的用法
attach | 连接舵机(自带库仅9/10脚有效) |
---|---|
write | 角度控制 |
writeMicroseconds() | 更精准的角度控制(um级) |
read() | 读上一次舵机转动角度 |
attached() | 检查舵机是否连接控制板上 |
detach() | 断开舵机连接,使接口(9/10脚)可做PWM输出 |
典例 |
#include<Servo.h>
Servo myduoji; //定义一个类
void setup()
{
myduoji.attach(D5); //连接D5所接的舵机
}
void loop()
{
myduoji.write(0); //角度为0度
delay(1000);
}
超声波
典例
long gettime() //获取高电平时间
{
digitalWrite(Trig, HIGH);
delayMicroseconds(10); //发送一个10微秒脉冲
digitalWrite(Trig, LOW);
return pulseIn(Echo, HIGH); //计算高电平时间获取波传输时间
}
void initBo() //初始化超声波
{
pinMode(Echo, INPUT);
pinMode(Trig, OUTPUT);
}
void loop()
{
int dis=gettime()/58;
}
Wemos和wifi
连接网络
板载无线网卡
支持AP(路由), STA(上网设备)模式
#include<ESP8266WiFi.h>
char* ssid = "TP-LINK-888" //“wifi热点名称”
char* passwd = "12345678"; //”wifi热点密码”
void initWifiSta(){
WiFi.mode(WIFI_STA); // 设置STA模式
WiFi.begin(ssid, passwd); //连接网络
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println(WiFi.localIP());//串口打印wemos的IP地址
delay(500);
}
void setup()
{
Serial.begin(115200); //启动串口
initWifiSta(); //接入wiff
}
void loop(){
Serial.println(WiFi.localIP()); //通过串口打印wemos的IP地址
delay(500);
}
CS模式
地址:ip地址,域名等
端口号:一台电脑或者设备有多个服务每个服务用端口号区别
int port = 8888; //端口号
WiFiServer server(port); // 设置服务器端口号
void setup()
{
Serial.begin(115200); //启动串口
initWifiSta(); //接入wiff
server.begin(); //启动服务器
pinMode(D2, OUTPUT); //设置引脚为输出引脚
}
void loop(){
char cmd;
WiFiClient client = server.available(); //服务器初始化
while (client.connected())
{
//等待客户端连接
while (client.available()>0)
{
//有数据到来,类似串口的那个函数
cmd = client.read();//读取数据
if(cmd=='1')
{
//收到客户端命令 ‘1’ //执行个人所需要的程序,如:
digitalWrite(D2, LOW); //输出低电平
}
else
{
//执行个人所需要的程序
}
}
}
}