无线通信主要用的是esp8266模块,它和arduino具有较好的集成特性,易操作。
esp8266是wifi串口模块,功能简单来讲就是:从wifi接收到数据,串口输出;从串口接收数据,wifi输出数据。
首先介绍esp8266三个模式
1、串口无线 WIFI(COM-AP) 串口无线 WIFI(COM-AP)模式,模块作为无线 WIFI 热点,允许其他 WIFI 设备连接 到本模块,实现串口与其他设备之间的无线(WIFI)数据转换互传。该模式下,根据应用场景的不同,可以设置 3 个子模式:TCP 服务器、TCP 客户端,UDP。这三个子模式先不细究。总之都可以进行数据传输。
2、串口无线 STA(COM-STA)模式,模块作为无线 WIFI STA,用于连接到无线网络,实 现串口与其他设备之间的无线(WIFI)数据转换互传。该模式下,根据应用场景的不同, 可以设置 3 个子模式:TCP 服务器、TCP 客户端,UDP。
3、串口无线 AP+STA(COM-AP+STA)模式,模块既作无线 WIFI AP,又作无线 STA, 其他 WIFI 设备可以连接到该模块,模块也可以连接到其他无线网络,实现串口与其他设备 之间的无线(WIFI)数据转换互传。该模式下,根据应用场景的不同,可以设置 9 个子模 式:(TCP 服务器、TCP 客户端,UDP)||(TCP 服务器、TCP 客户端,UDP)
这里我们使用modemcu lua模块,它是一个集成了WiFi传输的arduino板,用起来比较方便。


在这里我们配置8266模块连接的WiFi,WiFi名是test,密码是12345678,连接服务器IP是183.230.40.33,端口是80。用第一种连接方法。

const char *ssid     = "test";//这里写入网络的ssid
const char *password = "12345678";//wifi密码
const char *host = "183.230.40.33";//修改为Server服务端的IP,即你电脑的IP,确保在同一网络之下。WiFiClient client;
const int tcpPort = 80;//修改为你建立的Server服务端的端口号,此端口号是创建服务器时指定的。void setup()
{Serial.begin(115200);    pinMode(led,OUTPUT);delay(10);Serial.println();Serial.print("Connecting to ");//会通过usb转tll模块发送到电脑,通过ide集成的串口监视器可以获取数据。Serial.println(ssid);WiFi.begin(ssid, password);//启动//在这里检测是否成功连接到目标网络,未连接则阻塞。while (WiFi.status() != WL_CONNECTED){delay(500);}//几句提示Serial.println("");Serial.println("WiFi connected");Serial.println("IP address: ");Serial.println(WiFi.localIP());}void loop()
{while (!client.connected())//若未连接到服务端,则客户端进行连接。{if (!client.connect(host, tcpPort))//实际上这一步就在连接服务端,如果连接上,该函数返回true{Serial.println("connection....");delay(500);}}while (client.available())//available()表示是否可以获取到数据{//控制led
//        char val = client.read();//read()表示从网络中读取数据。
//        if(val=='a'){//pc端发送a和b来控制
//           digitalWrite(led, LOW);
//        }
//        if(val=='b')
//        {//            digitalWrite(led, HIGH);
//        }//透传数据uint8_t c = client.read();Serial.write(c);}if (Serial.available())//串口读取到的转发到wifi,因为串口是一位一位的发送所以在这里缓存完再发送{delay(50);//加50ms延迟 保证串口字符接收完毕size_t counti = Serial.available();//串口缓冲器 返回的是缓冲区准确的可读字节数uint8_t sbuf[counti];Serial.readBytes(sbuf, counti);//从串口读取指定长度counti的字符到缓存数组sbuf。delay(50);//加50ms延迟 保证缓存完毕client.write(sbuf, counti);}}

基于arduino的WiFi无线传输相关推荐

  1. 基于arduino的wifi自动开门装置(Arduino)

    出门总是忘带钥匙,为了能够在不带钥匙的情况下打开宿舍门,于是想到了使用esp8266制作一个可以通过手机控制的WiFi自动开门装置. 本文主要使用Arduino,手机端使用blinker使用esp82 ...

  2. 基于arduino +机智云物联网平台的阳台生态控制系统的设计

    基于arduino +机智云物联网平台的阳台生态控制系统的设计 李军辉 北京农业职业学院 摘要 以基质培养的绿色植物所在的半封闭阳台系统为研究对象,设计基于Arduino Uno WIFI +机智云物 ...

  3. 基于Arduino+机智云的阳台生态控制系统设计

    阳台是一个半封闭的生态系统,在其上种植绿色植物,可有效地净化室内空气,改善居住环境,增加生活情调.植物生长对环境.肥料等有特定要求,居民可能因缺乏绿色植物的种植知识,或因工作繁忙,长期不在家,不能实时 ...

  4. ESP8266(基于arduino平台)每篇一个知识点——2.wifi AP模式设置

    ESP8266(基于arduino平台)每篇一个知识点--2.wifi AP模式设置 一.ESP8266(基于arduino平台)每篇一个知识点--2.wifi AP模式设置 1.添加头文件引用 2. ...

  5. ESP8266(基于arduino平台)每篇一个知识点—1.wifi STA模式连接指定wifi

    ESP8266(基于arduino平台)每篇一个知识点--1.wifi STA模式连接指定wifi 一.ESP8266(基于arduino平台)每篇一个知识点--1.wifi STA模式连接指定wif ...

  6. arduino蓝牙通讯代码_一种基于Arduino的蓝牙通信系统的制作方法

    本实用新型涉及无线通信技术领域,具体来说,涉及一种基于Arduino的蓝牙通信系统. 背景技术: 随着通信技术的发展,无论是在物联网,还是互联网,传统的有线传输技术已经越来越不能满足企业和个人的需求. ...

  7. Arduino UNO WIFI开发板,学习必备开发套件

    Arduino Uno Wi-Fi是一款带有集成式Wi-Fi模块的新型Arduino Uno板!该板基于ATmega328P(数据手册),具有集成式ESP8266 Wi-Fi模块(数据手册).它拥有1 ...

  8. esp32摄像显示时间_科普系列 || 第一弹~基于ESP32的WiFi连接

    点击蓝字关注 东南大学电子科协公众号- 号外号外!     还因为宅在家中无所事事吗,科协现在为了同学们帮助学习单片机和后面准备竞赛,电子科协决定推出一个系列文章,帮助大家了解常用的一些总线和一些通讯 ...

  9. 网络通信之TCP Client通信(基于Arduino)

    网络通信之TCP Client通信(基于Arduino) 前期准备 实验要求 具体方法 程序流程 程序 实验现象 后续 前期准备 Arduino IDE ESPDuino Arduino ESP826 ...

  10. php与硬件通过wifi对接,基于ESP8266的WiFi排插接入贝壳互联实现天猫精灵控制

    认识众多玩家高手/拆客/DIYer,查阅更多资源,一起学习技术知识 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 本帖最后由 hzy3774 于 2020-1-8 00:45 编辑 * 实验 ...

最新文章

  1. 将来自另一个分支的所有更改合并为单个提交
  2. 工作110:表格重置
  3. 5 SU01给用户增加权限
  4. 华为鸿蒙系统是物联网,华为鸿蒙系统官宣!谷歌工程师直接懵了,硅谷感慨:中国人太厉害...
  5. Weblogic内存调整
  6. CoffeeScript简介 一
  7. redisdemo php,一个简单的用redis做秒杀支撑的demo (PHP版)
  8. 使用原生js发送请求
  9. 计算机桌面桌面设置动态视频,电脑怎么设置动态桌面
  10. ie浏览器html页面怎么清缓存,Web项目中,清理浏览器缓存的几种方式
  11. matlab 去除图片坐标值和白边,并用saveas函数按需要分辨率(尺寸)保存
  12. 免费领取40本前端学习书籍【高清电子版】
  13. matlab表示大于等于,matlab不等于怎么表示
  14. My Sixty-fifth Page - 整数拆分 - By Nicolas
  15. 对npm包精准控制之npm-shrinkwrap.json与package-lock.json
  16. 浪潮服务器【磁盘阵列】故障修复
  17. UI设计中图标设计的有几大原则
  18. 麦克风里有电流声,杂音怎么办
  19. 更多丰富内容,请转移至博主的个人博客——SeaDream乄造梦
  20. 线性代数: 什么是矩阵,以及矩阵的线性代数意义

热门文章

  1. cattee翻译_0302 echo、重定向、管道、cat、tee
  2. 想不想制作一个Coreldraw 蝴蝶结呀这个是非常详细的教程
  3. 疯狂的程序员 41-50
  4. 关于Python绘制正态分布图(概率密度分布)以及遇到的问题(label无法显示)
  5. K3S配置IPV6环境
  6. 怎么将CAD中的两条直线拉成弧形呢?
  7. codeMirror 光标定位问题
  8. 【测试】使用xtts V4迁移数据
  9. 在线LaTeX公式编辑器(备忘)
  10. 洋桃开发板笔记(五 ) Flash闪存的使用