基于ESP8266的Wemos D1 开发板的Arduino 例程代码

目录

本编代码仅供参考,如有错误欢迎提出,后期及时改正

一、高低电平输出:

二、串口通信:

三、控制sg90舵机:

四、超声波:

五、Wemos 连接wifi:

六、点亮LCD1602a:

1602a自己创建显示字符 例如 :   摄氏度符合

七、DS18B20防水型的水温测棒:


本编代码仅供参考,如有错误欢迎提出,后期及时改正

一、高低电平输出:

void setup() {

    pinMode(D5, OUTPUT);    //设置D5引脚为输出引脚

}

void loop() {

        digitalWrite(D5, LOW);    //输出低电平,蜂鸣器燥起来

        delay(1000);

        digitalWrite(D5, HIGH);   //输出高电平,蜂鸣器闭嘴

        delay(1000);              //延时一秒

}

二、串口通信:

void setup() {

Serial.begin(115200);

}

void loop() {

Serial.println("hello world");       //测试串口是否启动,启动成功就发送start

}

//串口控制蜂鸣器

void setup() {

    pinMode(D5, OUTPUT);                 //设置引脚为输出引脚

    Serial.begin(115200);                     //初始化串口,设置波特率为115200

    Serial.println("start");                      //测试串口是否启动,启动成功就发送start

    digitalWrite(D5, HIGH);                  //默认D5输出高电平,关蜂鸣器闭

}

void loop() {

    int cmd;

    if (Serial.available() > 0) {                     //检测串口是否有数据

        cmd = Serial.read();                         // 读取串口数据

        if (cmd == 1) {                                 //如果读取的数据是 1

            digitalWrite(D5, HIGH);               // 蜂鸣器不响起

            Serial.println(cmd);

        }

        else if (cmd == 0) {

            digitalWrite(D5, LOW);         // 否则(读取数据为 0 )蜂鸣器响

            Serial.println(cmd);

        }

    }

}

三、控制sg90舵机:

//控制sg90舵机

#include <Servo.h>
 
#define DuoPIN D5   //定义D5管脚为DuoPIN 
 
Servo myDuoJi;    //把servo命名为myDuoJi,两者具有等同的作用
 
void setup() {
  myDuoJi.attach(DuoPIN);  //连接舵机
 
}
 
void loop() {
   myDuoJi.write(200);   //角度控制
   delay(1000);
   myDuoJi.write(0);
   delay(1000);
}

四、超声波:

#include <Servo.h>

#define Echo  D2

#define Trig  D8

#define DEP   D4                  //配置蜂鸣器端口

long GetTime() {

    digitalWrite(Trig, HIGH);

    delayMicroseconds(10);          // 10 微妙

    digitalWrite(Trig, LOW);

    return pulseIn(Echo, HIGH);     //返回值

}

void Init_ultrasonic() {

    pinMode(Echo, INPUT);

    pinMode(Trig, OUTPUT);

}

void setup() {

    // put your setup code here, to run once:

    Init_ultrasonic();

    Serial.begin(115200);         //波特率

    pinMode(DEP, OUTPUT);       //设置引脚为输出引脚

    digitalWrite(DEP, HIGH);    //初始化状态

}

void loop() {

    //获取距离

    long dis;

    dis = GetTime() / 58;

    Serial.print(dis);

    Serial.println("cm");

    delay(500);

    if (dis < 10) {                                        //如果小于10cm,则执行以下代码

        digitalWrite(DEP, LOW);

        delay(300);

        digitalWrite(DEP, HIGH);

        myDuoJi.write(140);

        delay(2000);

        myDuoJi.write(0);

    }

    else {

        digitalWrite(DEP, HIGH);

        myDuoJi.write(0);

    }

}

五、Wemos 连接wifi:

//Wemos连接WiFi

#include <ESP8266WiFi.h>

//可手机开热点

char* ssid = "Electronic";    //连接wifi的名称

char* passwd = "929bxk9f";    //连接wifi的密码

void initWifiSta() {

    WiFi.mode(WIFI_STA);       //设置STA模式

    WiFi.begin(ssid, passwd);  //连接网络

    while (WiFi.status() != WL_CONNECTED) {

        Serial.print(".");       //如果未连接执行循环

        delay(500);

    }

}

//=========================================================================

void setup() {

    //打开串口

    Serial.begin(115200);

    //启动wifi

    //接入wifi

    initWifiSta();

}

void loop() {

    Serial.println(WiFi.localIP()); //通过串口打印wemos的IP地址

    delay(500);

}

//=============================   手机软件控制   ==============================

#include "ESP8266WiFi.h"

char* ssid = "Neo5";
char* passwd = "929bxk9f";

int Port = 8888;
WiFiServer server(Port);

void Initwifi()
{
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, passwd);
  while(WiFi.status() != WL_CONNECTED)
  {
    Serial.print(".");
    delay(500);
  }
  Serial.println(WiFi.localIP()); //通过串口打印wemos的IP地址
}

void setup()
{
  pinMode(D4, OUTPUT);
  pinMode(D5, OUTPUT);
  pinMode(D6, OUTPUT);
  pinMode(D7, OUTPUT);
  
  Serial.begin(115200);
  Initwifi();
  server.begin();
}

void loop()
{
  char cmd;

 WiFiClient client = server.available(); 
  while(client.connected())
  {
    while(client.available() > 0)
    {
      cmd = client.read();
      if(cmd == '1')
      {
        digitalWrite(D4, HIGH);
        digitalWrite(D5, LOW);
      }
      else if(cmd == '2')
      {
        digitalWrite(D4, LOW);
        digitalWrite(D5, HIGH);
      }
      else if(cmd == '3')
      {
        digitalWrite(D6, HIGH);
        digitalWrite(D7, LOW);
      }
      else if(cmd == '4')
      {
        digitalWrite(D6, LOW);
        digitalWrite(D7, HIGH);
      }
    }
  }
}

 

六、点亮LCD1602a:

/***********************************************************************************************************************************************************************

VSS连接GND、VDD连接 +5V、V0外接一个10K可调电阻、RS连接arduino上的D12、RW连接GND(输出默认低电平)、E连接arduino上的D10、D0、D1、D2、D3、D4连接arduino上的D5、D5连接arduino上的D4、D6连接arduino上的D3、D7连接arduino上的D2、A连接+5V、K连接GND        

D0~D3不用连

四线传输,所以一次只能传输一个字节

例:在1602a上显示数字16则先显示1后面再显示6

***********************************************************************************************************************************************************************/

//LCD1602A代码

#include<LiquidCrystal.h>

//申明1602液晶的引脚所连接的Arduino数字端口,8线或4线数据模式

LiquidCrystal lcd(12, 13, 15, 14, 4, 5, 16);   //4线 D12 D11 D10 D5 D4 D3 D2

//LiquidCrystal lcd(12,13,15,2,0,13,12,14,4,5,16) //D2 ~ D12

void setup(void){

    lcd.begin(16, 2);

    lcd.home();         //初始化,把光标移动至第0行第0列

}

void loop(void){

        lcd.setCursor(0, 1);                //把光标移动至第1行第0列

        lcd.print("hello world");        //在第1行第0列输出

}

1602a自己创建显示字符 例如 :   摄氏度符合

//1602创造字符

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 13, 15, 14, 4, 5, 16);

byte tian[8] = {  //"摄氏度符号"的数据

  0b00111,

  0b00101,

  0b00111,

  0b00000,

  0b00000,

  0b00000,

  0b00000,

  0b00000,

};

void setup() {

    lcd.begin(16, 2);

    lcd.createChar(0, tian);  //写入"摄氏度符号"的数据

}

void loop() {

    lcd.setCursor(0, 0);

    lcd.write(byte(0));  //显示"摄氏度符号"

}

七、DS18B20防水型的水温测棒:

/***********************************************************************************************************************************************************************

DS18B20模块有三条线,红线连接+5V,黑线连接GND,黄线为数据接口连接D7

***********************************************************************************************************************************************************************/

//DS18B20温度计

#include <OneWire.h>

#include <DallasTemperature.h>

// 定义DS18B20数据口连接arduino IO上

#define ONE_WIRE_BUS D7        //可以在这里修改数据接口,D2~D13都可以

// 初始连接在单总线上的单总线设备

OneWire oneWire(ONE_WIRE_BUS);

DallasTemperature sensors(&oneWire);

void setup(void)

{

    // 设置串口通信波特率

    Serial.begin(9600);

    // 初始库

    sensors.begin();

}

void loop(void)

{

    Serial.print("当前温度");

    sensors.requestTemperatures(); // 发送命令获取温度

    Serial.println(sensors.getTempCByIndex(0));       //串口显示当前温度

    delay(500);

}

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
WeMos D1 Wifi Arduino esp8266是一块基于esp8266芯片的Arduino开发,用于开发智能家居、IoT等应用。下面是其使用步骤: 1. 安装驱动程序 在连接WeMos D1 Wifi Arduino esp8266到电脑上之前,需要安装它的CH340驱动程序,否则电脑无法识别该设备。 2. 连接到电脑 将WeMos D1 Wifi Arduino esp8266通过USB接口连接到电脑上,并选择正确的串口和波特率。 3. 安装Arduino IDE WeMos D1 Wifi Arduino esp8266可以通过Arduino IDE进行编程。在开始编程之前,需要先安装Arduino IDE。 4. 安装esp8266支持库 由于WeMos D1 Wifi Arduino esp8266基于esp8266芯片,所以需要安装esp8266支持库。在Arduino IDE中,点击工具->开发->Boards Manager,搜索esp8266,然后选择最新版本进行安装。 5. 编写程序 在Arduino IDE中,选择WeMos D1 Wifi Arduino esp8266开发,并打开一个代码文件。然后就可以开始编写程序了。如,可以通过WeMos D1 Wifi模块连接到无线网络,并通过网页服务器控制一个LED灯。 6. 上传程序 在编写好程序之后,就可以将程序上传到WeMos D1 Wifi Arduino esp8266中运行。点击Arduino IDE的“上传”按钮,即可将程序上传到WeMos D1 Wifi Arduino esp8266中。 7. 调试程序 在程序上传成功之后,可以通过串口监视器等方式进行调试,并查看程序的输出结果。如果需要修改程序,只需要重新编辑代码,然后再次上传即可。 总之,WeMos D1 Wifi Arduino esp8266是一块非常方便的Arduino开发,使用它可以轻松实现智能家居、IoT等应用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值