IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 微信小程序基于udp协议与esp8266进行通信 -> 正文阅读

[网络协议]微信小程序基于udp协议与esp8266进行通信

1、概述
微信小程序有关于UDP协议的API,具体内容可前往官网查看;整体实现的思路就是利用路由组一个局域网,手机、路由器和esp8266,手机和esp8266连接路由器,登录路由器查看esp8266的ip,微信小程序利用udp协议可以往esp8266发送数据,进而实现微信小程序与esp8266通信,也就实现了与单片机通信。
2、硬件准备
路由器、手机、esp8266
3、实现思路
(1)组局域网
路由器、手机和esp8266组局域网;手机和esp8266连接路由器
(2)查看ip
登录路由的后台查看esp8266的ip,微信小程序udp协议用ip(这里仅仅查看esp8266即可)
4、微信小程序发送命令到esp8266
下面以控制灯光为例
wxml


<view class="scan">
    <view class="time-section">
        <view class="time">
            <view class="hourminuts">
                <text>{{hours}}:{{minutes}}</text>
            </view>
            <view class="seconds">
                <text>{{seconds}}</text>
            </view>
        </view>
        <view class="date">
            <text>{{month}}月{{day}}日  {{week}}</text>
        </view>
    </view>
</view>


<view class="section">
    <view class="section-title">灯1</view>
      <view class="section-form">
        <view class="form-group">
          <label>灯1的控制</label>
          <switch   color="#007aff" checked bindchange="light"  ></switch>
        </view>
      </view>      
</view>
<view class="section">
    <view class="section-title">灯2</view>
      <view class="section-form">
        <view class="form-group">
          <label>灯2的控制</label>
          <switch   color="#007aff" checked bindchange="wind"  ></switch>
        </view>
      </view>      
</view>
<view class="section">
    <view class="section-title">灯3</view>
      <view class="section-form">
        <view class="form-group">
          <label>灯3的控制</label>
          <switch   color="#007aff" checked bindchange="buzzer"  ></switch>
        </view>
      </view>      
</view>

wxss

/* pages/scan/scan.wxss */

page {
     background-color: #fafafa;
   }
   
   
   
   
   .name {
     margin-top: 20rpx; 
     margin-bottom: 40rpx;
   line-height: 32px;
   font-size: 17.25pt;
   color: #000000;
   }
   
   .time-section {
     margin-top: 110rpx;
   
   }
   
   .time {
     display: flex;
     flex-direction: row;
     justify-content: center;
   }
   
   .hourminuts {
     line-height: 154rpx;
     font-size: 41.25pt;
     color: rgba(0, 0, 0, 0.87);
   
   }
   
   .seconds {
     line-height: 72rpx;
     font-size: 18.75pt;
     color: #f5a623;
     margin: auto 0rpx 20rpx 0rpx;
   }
   
   .date {
     margin-top: 12rpx;
     text-align: center;
     font-weight: 500;
     line-height: 22px;
     font-size: 12pt;
     color: rgba(0, 0, 0, 0.54);
     margin-bottom: 60rpx; 
   }
   
   .footer {
     /*display: flex;
     flex-direction: column;
     justify-content: center;*/
     /*align-items: center;*/
     margin: 0 auto;
     width: 80%;
   }
   
   .to-clock {
     background-color: #22a1e0;
     color: #ffffff;
     margin-bottom: 40rpx; 
   }
   
   .hover-to-clock {
     opacity: 0.7;
   }
   
   .to-list {
     color: rgba(0, 0, 0, 0.54);
     margin-bottom: 40rpx;
   }
   
   .hover-to-list {
     opacity: 0.7;
   }
   .main-body {
     display: flex;
     flex-direction: column;
     width: 100%;
     height: 100%;
   }
   .section {
     width: 100%;
     padding: 20rpx;
   }
   .section-title {
     font-size: 35rpx;
     width: 300rpx;
     height: 80rpx;
     line-height: 80rpx;
     padding-left: 20rpx;
     border-bottom: 4rpx solid #000;
   }
   .section-form {
     display: flex;
     flex-direction: column;
     padding: 10rpx 20rpx;
   }
   .form-group {
     display: flex;
     flex-direction: row;
     width: 100%;
     height: 80rpx;
     line-height: 80rpx;
     font-size: 32rpx;
   }
   .form-group label {
     width: 75%;  
   }
   .form-group input,
   .form-group switch {
     height: 80rpx;  
     width: 60rpx;
     line-height: 80rpx;
     text-align: center;
   }
   .form-group input {
     border-bottom: 2rpx solid #000;
     height: 60rpx;
     line-height: 60rpx;
   }

js
以灯1为列,核心代码

  //灯  26  high1 low1
  light(e){
      var iip=wx.getStorageSync('ip')//这里是手动输入绑定ip  获取缓存  也可以在这里写死
      console.log("iip"+iip)
      var that=this
      var status=e.detail.value
       if(status==true){
            console.log("开灯")
            var mess="on"
            var ip1 = iip;
            var port = "";
            const udp = wx.createUDPSocket();
            udp.bind();
            udp.send({
               address: ip1,
               port: port,
               message: mess
            });
       }else{
          console.log("关灯")
            var mess="off"
            var ip2 = iip;
            var port = "";
            const udp = wx.createUDPSocket();
            udp.bind();
            udp.send({
               address: ip2,
               port: port,
               message: mess
            });
       }
  },

5、esp8266接受微信小程序传输过来的数据

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-04-23 11:08:52  更:2022-04-23 11:09:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 3:27:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码