WeMos D1介绍


特性:

  1. 基于ESP-8266EX

  2. Arduino兼容,使用rduino IDE来编程

  3. 11个 I/O 引脚

  4. 1 个ADC 引脚(输入范围0-3.3V)

  5. 板载5V 1A开关电源(高输入电压24V)

工作中:

和stm32模块开发类似,集成度高

STM32方案也更经济便宜

开发环境介绍

Arduino开发环境,和keil对比

优点:

  • 集成很多开发库如串口,网络,sg90等
  • 各种硬件开发接口,迅捷开发
  • 自带串口调试工具 ;

缺点: 程序编译速度慢

开发环境的配置


Wemos同Arduino
上电后不断执行loop函数中的代码,核心控制代码写入loop
setup函数只调用一次,一般用于硬件相关的初始化,比如IO口,串口,wifi等
void setup() { }void loop() { }

实操:蜂鸣器

基础控制:蜂鸣器响与不响
void setup()
{ pinMode(D5, OUTPUT); //设置引脚为输出引脚
}
void loop()
{ digitalWrite(D5, HIGH); // 输出高电平,蜂鸣器不响 delay(1000); //停一秒digitalWrite(D5, LOW); //输出低电平,蜂鸣器响delay(1000); //响一秒(延时期间,蜂鸣器控制引脚属于低电平)
}

串口通信

初始化函数

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:打印的值,任意数据类型
    • config:输出的数据格式
  • 返回值:返回写入的字节数

Serial.read()

  • 描述:读取串口数据,一次读一个字符,读完后删除已读数据
  • 原型:
    • Serial.read()
  • 参数:无
  • 返回值:返回串口缓存中第一个可读字节,当没有可读数据时返回-1,整数类型。

有数据到来函数

Serial.available()

  • 描述:判断串口缓存区的状态,返回从串口缓冲区读取的字节数
  • 原型:Serial.available()
  • 参数:无
  • 返回值:可读取的字节数
// 串口控制蜂鸣器
#define BEEP D5 void setup() {// put your setup code here, to run once:Serial.begin(115200);pinMode(BEEP, OUTPUT);digitalWrite(BEEP, HIGH);
}void loop() {// put your main code here, to run repeatedly:int cmd;if (Serial.available() > 0){cmd = Serial.read();if (cmd == 1){Serial.println(cmd);digitalWrite(BEEP, LOW);}else{Serial.println(cmd);digitalWrite(BEEP, HIGH);}}
}

WiFi模块

支持AP(路由), sta(上网设备)模式

作为设备接入wifi(STA模式)

#include <ESP8266WiFi.h>char* ssid = "wifi名";
char* passwd = "WiFi密码";void initWifiSta()
{WiFi.mode(WIFI_STA); // 设置STA模式WiFi.begin(ssid, passwd); //连接网络while (WiFi.status() != WL_CONNECTED){Serial.print(".");delay(500);}}void setup() {// put your setup code here, to run once:Serial.begin(115200);initWifiSta();
}void loop() {// put your main code here, to run repeatedly:Serial.println(WiFi.localIP()); //通过串口打印wemos的IP地址delay(500);
}

C/S模式(服务器和客户端)

服务器两大要素:

  • 地址:IP地址,域名等
  • 端口号:一台电脑或者设备有多个服务,每个服务用端口号区别

架设Wemos为ftp服务器

int port = 8888; //端口号
WiFiServer server(port); // 设置服务器端口号
void loop() { WiFiClient client = server.available(); //服务初始化 while (client.connected()) { //等待客户端连接 while (client.available() > 0) { //有数据到来,类似串口的那个函数 cmd = client.read();//读取数据 } }
}
Tips: 启动服务器的API: server.begin();

手机TCP工具远程网络控制蜂鸣器

#include <ESP8266WiFi.h>
#define BEEP D5char* ssid = "WiFi名";
char* passwd = "WiFi密码";
int port = 8888; //端口号
WiFiServer server(port); // 设置服务器端口号void beepInit()
{pinMode(BEEP, OUTPUT);digitalWrite(BEEP, HIGH);
}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地址
}void setup() {// put your setup code here, to run once:Serial.begin(115200);initWifiSta();beepInit();server.begin();//起动服务器
}void loop() {// put your main code here, to run repeatedly:char cmd;WiFiClient client = server.available(); //服务初始化while (client.connected()) //等待客户端连接{while (client.available() > 0) //有数据到来,类似串口的那个函数{cmd = client.read();//读取数据if (cmd == '1'){digitalWrite(BEEP, LOW);}else{digitalWrite(BEEP, HIGH);}}}
}

超声波的测距原理

超声波模块介绍

超声波模块原理


超声波和蜂鸣器结合

#define Echo D2
#define Trig D8
#define BEEP D5long getTime()
{digitalWrite(Trig, HIGH);//设置一个方波delayMicroseconds(10);digitalWrite(Trig, LOW);return pulseIn(Echo, HIGH);//微秒
}void initUltrasonic()
{pinMode(Echo, INPUT);pinMode(Trig, OUTPUT);
}void setup() {// put your setup code here, to run once:pinMode(BEEP, OUTPUT);digitalWrite(BEEP, HIGH);initUltrasonic();Serial.begin(115200);
}void loop() {// put your main code here, to run repeatedly:long dis;  //距离dis = getTime() / 58;Serial.print(dis);Serial.println("cm");if (dis < 10){digitalWrite(BEEP, LOW);}else{digitalWrite(BEEP, HIGH);}delay(50);
}

基于wemosD1开发板的小车养成(一)相关推荐

  1. 基于wemosD1开发板的小车养成(二)

    串口控制小车前进后退 #define Dong1 D6 #define Dong2 D7 #define Zhuan1 D4 #define Zhuan2 D5void initL9110s() {p ...

  2. 移植根文件系统到linux内核 s3c2440,u-boot-2011.06在基于s3c2440开发板的移植之引导内核与加载根文件系统...

    三.根文件系统的制作 我们利用busybox来制作根文件系统 1.在下列网站下载busybox-1.15.0.tar.bz2 在当前目录下解压busybox tar -jxvf busybox-1.1 ...

  3. 【RTOS】基于V7开发板的uCOS-III,uCOS-II,RTX4,RTX5,FreeRTOS原版和带CMSIS-RTOS V2封装层版全部集齐...

    RTOS模板制作好后,后面堆各种中间件就方便了. 1.基于V7开发板的最新版uCOS-II V2.92.16程序模板,含MDK和IAR,支持uC/Probe https://www.cnblogs.c ...

  4. 基于uFUN开发板的心率计(三)Qt上位机的实现

    前言 上两周利用周末的时间,分别写了基于uFUN开发板的心率计(一)DMA方式获取传感器数据和基于uFUN开发板的心率计(二)动态阈值算法获取心率值,介绍了AD采集传感器数据和数据的滤波处理获取心率值 ...

  5. 基于uFUN开发板的RGB调色板

    前言 使用uFUN开发板配合Qt上位机,实现任意颜色的混合,Qt上位机下发RGB数值,范围0-255,uFUN开发板进行解析,然后输出不同占空比的PWM,从而实现通过RGB三原色调制出任意颜色. Qt ...

  6. request[limit]取不到前台的值_基于uFUN开发板的心率计(二)动态阈值算法获取心率值...

    前言 上一篇文章:基于uFUN开发板的心率计(一)DMA方式获取传感器数据,介绍了如何获取PulseSensor心率传感器的电压值,并对硬件电路进行了计算分析.心率计,重要的是要获取到心率值,本篇文章 ...

  7. 基于uFUN开发板和扩展板的联网校准时钟

    项目概述 上周在uFUN试用群里看到管理员说试用活动快结束了,要抓紧完成评测总结,看大家的评测总结也都写了,我也不能落后啊!正好最近做的扩展板到手了,于是赶紧进行调试,做了一个不用校准的时钟,时钟这种 ...

  8. 基于uFUN开发板的心率计(二)动态阈值算法获取心率值

    文章目录 前言 IBI和BPM 核心操作 -- 识别一个脉搏信号 问题一:阈值的选取 问题二:特征点识别 算法整体框架与代码实现 总结 基于uFUN开发板的Keil源码下载 uFUN评测系列文章 前言 ...

  9. 基于STM32开发板I²C总线通信协议浅析

    基于STM32开发板I²C总线通信协议浅析 一.前言 I²C(Inter-Integrated Circuit),中文应该叫集成电路总线,它是一种串行通信总线,使用多主从架构,是由飞利浦公司在1980 ...

最新文章

  1. Opencv 数学基础--范数(17)
  2. Spring学习(五)——Spring注解(一)
  3. 【VB6笔记-01】 读取Excel绑定到DataGrid
  4. tensorflow 导入新的tensorflow实例
  5. 约束流–没有Drools规则语言的现代Java约束
  6. nvidia-smi 命令详解
  7. 时间紧任务重---extjs的学习就这么开始吧
  8. 【直播间】移动互联网产品中如何用好HTML5?
  9. [转载] python中bool啥意思_Python中的bool类型
  10. linux execl 错误信息,Excel:自动隐藏错误结果的显示信息(转)
  11. Codeforces Round #388 (Div. 2) C. Voting
  12. “会用LabVIEW,但是却没有听说TestStand,好像有点说不过去吧!”(下)
  13. pbrt源码中用全主元消去法求矩阵逆的实现
  14. 苹果笔记本链接刷卡打印机教程
  15. Python批量爬取谷歌原图,2021年最新可用版
  16. 职场饭桌:酒桌上的规矩,与领导吃饭如何谈话
  17. 京东面试官:从求职者到面试官的心路历程
  18. 华为路由交换学习篇-链路聚合
  19. C语言初学 (两数相加求和)
  20. 智能分拣解决方案市场现状研究分析报告 -

热门文章

  1. 如何在jquery中动态添加!important样式
  2. 【Javascript】浏览器中如何阻止页面自动跳转
  3. 电脑经常自动断网掉线
  4. 【论文学习】轻量级网络——MobileNetV3终于来了(含开源代码)
  5. 教程 | 10分钟成为简笔画达人,你也可以!3
  6. 4. java gc
  7. 事务的四大特性及实现原理
  8. 【第49题】常用的数学工具类6-高精度整数运算
  9. 金山词霸命令行客户端
  10. Transformers:如何使用bert模型预留的[unused*]