admin管理员组

文章数量:1530941

Wemos D1 与 wifi

  • 前言
  • 一、Wemos D1是什么?
  • 二、arduino 开发环境
  • 三、wifi功能使用
    • 1.AP模式(Access Point)
    • 2.STA模式(Station)
    • 附录

前言

本章将简单介绍wemos d1接入wifi,以便快速上手使用,做些功能强大的小项目。

一、Wemos D1是什么?

Wemos 是板载自带无线网卡(也就是加了wifi的arduino),支持AP(路由)模式,STA(上网)模式。
特性

1.基于EPS-8266EX
2.兼容Arduino, 可以用arduino ide编写代码
3. 11x I/O 引脚
4. 1x ADC 引脚 (输入范围 0–3.3V)
5. 板载5V 1A开关电源(高输入电压24V)

二、arduino 开发环境

用来给兼容arduino的单片机编写程序代码

优点:

  • 集成了很多开发库,如串口,舵机,其他模块等,
  • 各种硬件开发接口,能迅速开发
  • 自带串口调试工具

缺点: 程序编译速度慢

三、wifi功能使用

1.AP模式(Access Point)

AP模式提供无线接入服务,和我们家里的路由器差不多,允许其他设备接入,一般的无线路由/网桥工作在该模式下。

2.STA模式(Station)

类似于一个上网设备,接入到家里的无线网络,手机可以接入家里的无线网络中。 (手机和路由器的表面关系。)

2.1 作为设备接入wifi

#include<ESP8266WiFi.h>

char *ssid = "WiFi名称";   //自己家的wifi
char *passwd = "WiFi密码";
void init_wifi_sta()
{
    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() {
    Serial.begin(9600);   //串口初始化,设置波特率9600
    init_wifi_sta();    //启动接入wifi
}
void loop() {

}

注意:要使用开发板上的wifi模块需要用到#include<ESP8266WiFi.h>头文件

2.2 架设womos为ftp服务器

先简单了解下C/S模式,就是指客户端/服务器模式,是计算机软件协同工作的一种模式。
womos可以当作一个服务器在运行,那么手机app就是客户端,可以进行数据的互传。(app按钮按下,可以发送指令到womos),也支持多个app同时接入。

服务器两大要素:

1.地址
ip地址,域名等
2.端口号
一台电脑或设备有多个服务,每个服务用端口区别


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

综合:手机tcp远程连接,控制wemos
wemos在STA模式下进行tcp通信,模块连接AP(手机热点或者路由器),进入局域网中和其他无线设备通信。

#include<ESP8266WiFi.h>

char *ssid = "WiFi名称";   //自己家的wifi
char *passwd = "WiFi密码";
int port = 8888; //端口号
WiFiServer server(port); //设置服务器端口号

void init_wifi_sta()
{
    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() {
    Serial.begin(9600);   //串口初始化,设置波特率9600
    init_wifi_sta();   
    server.begin(); // 启动服务器
    WiFiClient client = server.available(); // 服务器初始化    
}

void loop() {
  char cmd;
  WiFiClient client = server.available(); // 服务器初始化 
  while(client.connected()) // 等待客户端连接
  {
    while(client.available()>0)//有数据到来,类似Serial.available()
    {
        cmd = client.read(); //读取数据
        Serial.print(cmd);
    }
  }
}

效果图:手机发送信息,wemos接收,串口打印

附录

1.手机下载tcp连接工具:
链接:https://pan.baidu/s/1-BTeLiwms07cKXwLk03rww
提取码:1234

注意:使用手机tcp工具,首先需要连接wemos的ip, 才能发送数据。
2.参考优秀博文:wemos D1 arduino物联网开发板应用笔记7-STA模式下TCP Client通信


若文章有误,敬请指出,互相交流,共同进步,感谢!

本文标签: Wemoswifi