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
             {
                  //执行个人所需要的程序
             }
        }
    }
}
  • 6
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不会编程的小江江

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值