wifi 模块

#include"STC12C5A.H"
#include <string.h>
#include<intrins.h>
#define uint  unsigned int
#define uchar unsigned char
#define Wifi_Buffer_Length 10
sbit LED=P2^0;

int ceshi=1;
uchar temp;
uchar RX_Count=0;
uchar Wifi_Buffer[Wifi_Buffer_Length];
bit flag;
void delay_15s()        //@11.0592MHz
{
    unsigned char i, j, k;

    _nop_();
    _nop_();
    i = 119;
    j = 88;
    k = 45;
    do
    {
        do
        {
            while (--k);
        } while (--j);
    } while (--i);
}

//延时函数
void delay_ms(uint c)
{
    unsigned char i, j;

    _nop_();
    _nop_();
    _nop_();
    i = 11;
    j = 190;
    while(c--)
    {
        do
        {
            while (--j);
        } while (--i);
    }
}
//波特率发生器
void UartInit(void)        //[email protected]
{
    PCON &= 0x7F;        //波特率不倍速
    SCON = 0x50;        //8位数据,可变波特率
    AUXR |= 0x04;        //独立波特率发生器时钟为Fosc,即1T
    BRT = 0xFD;        //设定独立波特率发生器重装值
    AUXR |= 0x01;         //串口1选择独立波特率发生器为波特率发生器
    AUXR |= 0x10;        //启动独立波特率发生器
    ES=1;
    EA=1;//需要打开总中断
}
//串口发送函数
void Send_Uart(uchar value)
{
    ES=0;//发送数据之前关闭中断
    SBUF=value;
    while(!TI);//等待发送完毕
    TI=0;       //发送结束 软件置0
    ES=1;
}
//wifi模块设置函数
void ESP8266_Set(uchar *s)
{
    while(*s!=‘\0‘)
    {
        Send_Uart(*s);
        s++;
    }
    delay_ms(300);
}
void Send_String(uchar *s)
{
    while(*s!=‘\0‘)
    {
        Send_Uart(*s);
        s++;
    }
    delay_ms(30);
}
void wifi_send()
{
/*    ESP8266_Set("AT+CWMODE=1");
    ESP8266_Set("AT+RST");
     ESP8266_Set("AT+CWJAP=\"qwe\",\"123456789\"");
    ESP8266_Set("AT+CIPSTART=\"TCP\",\"10.25.97.164\",8001");
    ESP8266_Set("AT+CIPMODE=1");
    ESP8266_Set("AT+CIPSEND");     */

    Send_String("AT+CIPSTART=\"TCP\",\"api.yeelink.net\",80\r\n");
    Send_String("AT+CIPSEND=250\r\n");
       Send_String("POST /v1.0/device/351905/sensor/396141/datapoints HTTP/1.1\r\n");
    Send_String("Host: api.yeelink.net\r\n");
       Send_String("Accept: */*\r\n") ;
    Send_String("U-ApiKey: 71c27d52c090e00b65998a2d4dba73e8\r\n");
       Send_String("Content-Length: 14\r\n");
       Send_String("Content-Type: application/x-www-form-urlencoded\r\n");
    Send_String("Connection: close\r\n");
    Send_String("\r\n");
//    display("{\"value\":");
//    Send_Uart(temp/10);
    //Send_Uart(temp%10) ;
    Send_String("{\"value\":");
    Send_Uart(0x30+ceshi/10);
    Send_Uart(0x30+ceshi%10);
    Send_String("  }\r\n");
    Send_String("\r\n");
    Send_String("\r\n");
    ceshi++;
    if(ceshi==100)
        ceshi=0;
}
void wifi_accept()
{
    Send_String("AT+CIPSTART=\"TCP\",\"api.yeelink.net\",80\r\n");
    Send_String("AT+CIPSEND=250\r\n");
    Send_String("GET /v1.0/device/351905/sensor/396173/datapoints HTTP/1.1\r\n");
    Send_String("Host: api.yeelink.net\r\n");
    Send_String("Accept: */*\r\n");
    Send_String("U-ApiKey: 71c27d52c090e00b65998a2d4dba73e8\r\n");
    Send_String("Content-Length: 0\r\n");
    Send_String("Connection: close\r\n");
    Send_String("\r\n");
    Send_String("print get done.\r\n");
    Send_String("111111111111111111111111111111111111111111111111111111111111111111111111111111111111111\r\n");
}
void main()
{
    P0M0 = 0x00;
    P0M1 = 0x00;
    P1M0 = 0x00;
    P1M1 = 0x00;
    P2M0 = 0xff ;
    P2M1 = 0x00;
    P3M0 = 0xff;
    P3M1 = 0x00;
    P4M0 = 0x00;
    P4M1 = 0x00;
    P5M0 = 0x00;
    P5M1 = 0x00;
    UartInit();
    ESP8266_Set("AT+CWJAP=\"qwe\",\"123456789\"\r\n");
    ESP8266_Set("AT+CWJAP=\"qwe\",\"123456789\"\r\n");
    ESP8266_Set("AT+CWJAP=\"qwe\",\"123456789\"\r\n");

    while(1)
    {
        wifi_send();
        delay_15s();
        wifi_accept();
        delay_15s();
    }
}
void ser() interrupt 4 using 1
{
    ES=0;
    temp=SBUF;
    RI=0;
    if(temp==‘l‘)
    {
        RX_Count=0;
    }
    if(RX_Count<4)
    {
        Wifi_Buffer[RX_Count++]=temp;
    }
    else if(Wifi_Buffer[0]==‘l‘&&Wifi_Buffer[1]==‘u‘&&Wifi_Buffer[3]==‘"‘)
    {
        Wifi_Buffer[RX_Count++]=temp;
        if(temp==‘\n‘)
        {
            if(Wifi_Buffer[5]==‘1‘)
            {
                LED=1;
            }
            else if(Wifi_Buffer[5]==‘0‘)
            {
                LED=0;
            }
            memset(Wifi_Buffer,0,Wifi_Buffer_Length);//清空数组的数据
        }
    }
    ES=1;

}

今天实验成功了,有点小兴奋

时间: 2024-10-13 19:25:12

wifi 模块的相关文章

用ESP8266 WIFI模块连接服务器,并实现与服务器相互通讯

最近在做一个智能锁的项目,该项目要求实现在任何地方(当然是要有网络的)可以在手机上用APP开锁.而我负责的部分主要是实现底层与服务器连接,并且要能相互通讯.考虑了很多问题,最终选择了用ESP8266 WIFI模块实现了这个功能.下面向大家就简单分享一下. 工具:网络调试助手  ESP8266  STM32F1开发板 首先,用网络调试助手来虚拟一个服务器,如下: 有了服务器后,接下来我们就要用WIFI来连接这个服务器.ESP8266 有三种工作模式,由于项目要求,我选用了STA中的客户端模式.下面

树莓派3uart wifi模块调试 (浪费了我3天时间的宝贵经验)

最开始我是连接一个wifi模块到我的arduino uno上,可是uno只有一个uart并且这个uart和usb串口相连的.出现了一些和很奇怪的问题.进入设置模式(m0=1 , m1=1)后,确实能够设置,设置的参数都保存成功了,但是使用c3c3c3无法获取到版本没有任何返回,可能当时是我的rx数据线的没有接触的问题. 后来我将两块uart wifi模块通讯,在电脑上外接usb转串口 (2个usb转换器,通讯一点问题没有,使用linux的minicom. minicom一定要将硬件流控制关闭,8

智能家居常用WiFi模块

WiFi模块 WiFi模块就是整个系统的控制中心,控制很简单,就是输出一个开关信号控制继电器,而这个模块的核心是WiFi的连接,手机连接WiFi时需要扫描,输入密码,而这类本身没有屏幕和键盘的硬件设备,要想快捷的接入WiFi网络就需要更加便捷的连接方案,这就是这些模块厂家的主要工作了,所以这些模块都提供类似的连接方案,即手机APP扫描WiFi,在APP上输入对应WiFi的连接密码后自动由APP发送到模块,完成模块和WiFi的连接,本质上是一样的,只是叫的名字不同而已,有的叫SimpleLink有

【手把手教你树莓派3 (二)】 启动wifi模块

概述 树莓派3内置了wifi和蓝牙模块,我们不用像以前的版本那样,再去购买一个外接的模块练到raspberry上. 当我们第一次启动了树莓派的时候,必然使用了网线,但是之后的每一次使用,我们当然更希望使用wifi连接树莓派和路由器,而且wifi模块内置在树莓派3中,何乐而不为? 下面介绍下如何启动wifi模块,这时还是要借助网线的. 使用图形界面: 这个很简单了,我们只要像以往的Linux系统一样,在右上角的菜单栏里面选择wifi,输入密码就可以了. 使用命令行: 当然,对于木有显示器的童靴,只

esp8266 wifi模块刷nodemcu固件并蓝牙串口调试

esp8266 wifi模块价格十分实惠.出厂是默认带AT指令的系统,通过串口使用at命令进行交互.但是可以刷别的固件,例如nodemcu. nodemcu可以用lua脚本控制模块,而且lua脚本的优势是非常容易编写,也不需要编译.本文简单的介绍一下在esp8266模块上烧写nodemcu固件,并简单的通过串口让模块接入AP. 下载nodemcu_flasher64bit.exe  这是一个nodemcu固件的烧写软件.我下载的是64为版本.32为版本地址为:http://www.nodemcu

全志A20 ap6210 wifi模块移植

1. 编译wifi相关功能为模块,生成bcmdhd.ko:由bcmdhd.ko的模块信息可知,该模块依赖于cfg80211.ko和rfkill.ko. 2. 写脚本,开机自动加载wifi模块. 3. 使用命令#ifconfig wlan0 up开启WIFI. 开启wifi需要加载2个固件:fw_bcm40181a2.bin 和 nvram_ap6210.txt. 根据芯片ID(ap6210内部使用bcm43362)选择固件 fw_bcm40181a2.bin(该固件名称程序中定义) nvram_

Android WIFI模块分析

一:什么是WIFI WIFI是一种无线连接技术,可用于手机.电脑.PDA等终端.WIFI技术产生的目的是改善基于IEEE802.11标准的无线网络产品之间的互通性,也就是说WIFI是基于802.11标准的,但WIFI不等同无线网络. 二:Android平台下的WIFI模块 简单介绍一下,WIFI模块的基本功能: 1. 开关WIFI 除了在WIFI设置界面可以开关WIFI,还有其他的方法可以设置,要查看这些开关状态是否一致.还有就是飞行模式对WIFI开关的影响,由于WIFI开和关都有一个时间过程,

ESP8266 wifi模块初次试用

前段时间在淘宝随便搜搜"wifi模块",竟然眼前一亮发现有一款价格在15元内的wifi模块:ESP8266. 对其简单的了解: 体积小巧,且多种封装,没有一个硬币大. 价格便宜,十几块钱在wifi模块里面算是最便宜的了. 提供AT指令,这样就可以使用arduino进行控制,实现互联网数据交互. 提供SDK包.烧固件工具,串口烧写固件.这样把arduino作为主控的功能都省了,直接把逻辑写进代码,烧到固件里,就能按我们的业务执行了. 有GPIO口,有SPI功能,有I2C功能,有UART功

【智能家居篇】wifi驱动的理解(3)——usb接口在wifi模块中的角色

转载请注明出处:http://blog.csdn.net/Righthek 谢谢! 上一篇文章已经提到USB接口在wifi模块中的最重要两个函数是usb_read_port()和usb_write_port().那它们是怎么和wifi扯上关系的呢?我们可以从以下三个方面去分析: 1.首先需要明确wifi模块是USB设备,主控(CPU)端是USB主机: 2.USB主机若需要对wifi模块进行数据的读写时,就必须经过USB接口: 3.既然涉及到数据的读写操作,必然要用相应的读写函数,那么usb_re