主题中讨论的其他器件:CC3100、 ENERGIA、 CC3200
我配置了 cc3100 wifi、并在 其中添加了我的 Android wifi 热点详细信息。
然后在 Energia 上上传了 simplewebserverWifi 示例,按下了重新启动按钮,但只有线路在尝试连接到名为 abhi.matlotia 的网络 。
我认为在 Serial.print("Attempting to connect to Network named:")之后代码不起作用;此行。
即使它没有连接到我的 WiFi、它应该显示没有连接到串行端口吗?
#ifndef __CC3200R1M1RGC__
//不包括用于 CC3200 LaunchPad 的 SPI
#include
#endif
#include
//您的网络名称也称为 SSID
char SSID[]="abhi.matlotia";
//您的网络密码
char password[]="supersecret";
//您的网络密钥索引号(仅 WEP 需要)
int keyIndex = 0;
WiFiServer 服务器(80);
void setup(){
Serial.begin(115200);//初始化串行通信
PinMode (RED_LED、输出);//设置 LED 引脚模式
//尝试连接到 Wifi 网络:
serial.print ("正在尝试连接到名为:"的网络);
//打印网络名称(SSID);
serial.println (SSID);
//连接到 WPA/WPA2网络。 如果使用开放或 WEP 网络,请更改此行:
WiFi.begin(ssid、密码);
while (wifi.status()!= wL_connected){
//等待连接时打印点
serial.print(".");
延迟(300);
}
serial.println ("\n 您已连接到网络");
serial.println ("等待 IP 地址");
while (WiFi.localIP ()=INADDR_NONE){
//等待 IP 地址时打印点
serial.print(".");
延迟(300);
}
serial.println ("\nip Address obtained");
//您现在已连接,所以打印状态
printWifiStatus();
serial.println ("在端口80上启动 webserver ");
server.begin();//在端口80上启动 Web 服务器
serial.println ("Webserver started!");
}
void loop(){
int i = 0;
WiFiClient 客户端= server.available ();//侦听传入的客户端
如果(客户端){//如果您有客户端、
serial.println ("新客户端");//从串行端口打印一条消息
char buffer[150]={0};//创建一个缓冲区来保存传入数据
while (client.connected()){//在客户端连接时循环
如果(client.available ()){//如果有字节要从客户端读取、
char c = client.read();//读取一个字节,然后
serial.write (c);//将其打印出串行监视器
如果(c ='\n'){//如果字节是换行字符
//如果当前行为空,则一行中有两个换行字符。
//这是客户端 HTTP 请求的结束,因此发送响应:
if (strlen (buffer)=0){
// HTTP 标头始终以响应代码开头(例如 HTTP/1.1 200 OK)
//和内容类型,以便客户知道即将发生什么,然后是空白行:
client.println ("HTTP/1.1 200 OK");
client.println ("Content-type:text/html");
client.println();
// HTTP 响应的内容遵循标头:
client.println("
Energia CC3200 WiFi Web 服务器 ");
client.println("
欢迎使用 CC3200 WiFi Web 服务器
");client.print ("红色 LED 高 ");
client.println(" 低
");
// HTTP 响应以另一行结尾:
client.println();
//中断 while 循环:
中断;
}
否则{//如果您有换行符、则清除缓冲区:
memset (buffer、0、150);
I = 0;
}
}
如果(c!='\r'){//如果您除了回车字符之外还有其他任何内容,
Buffer[i++]= c;//将其添加到当前行的末尾
}
//检查客户端请求是"get /h"还是"get /L":
if (endsWith (buffer、"get /h")){
digitalWrite (red_LED、HIGH);// get /H 打开 LED
}
if (endsWith (buffer、"get /L")){
digitalWrite (red_LED、low);// get /L 关闭 LED
}
}
}
//关闭连接:
client.stop();
serial.println ("客户端断开连接");
}
}
//
//检查一个数组是否以另一个数组结尾的方法
//
布尔 endsWith (char* inString、const char* compString){
int compLength = strlen (compString);
int strLength = strlen (inString);
//比较 inString 的最后"compLength "值
int i;
对于(i = 0;i < compLength;i++){
char a = inString[(strLength - 1)- i];
char b = compString[(compLength - 1)- i];
如果(a!= b){
返回 false;
}
}
返回 true;
}
void printWifiStatus(){
//打印连接到的网络的 SSID:
serial.print ("SSID:");
serial.println (wif.sid ());
//打印您的 WiFi IP 地址:
ipaddress IP = WiFi.localIP();
serial.print ("IP 地址:");
serial.println (IP);
//打印接收到的信号强度:
长 RSSI = WiFi.RSSI ();
serial.print ("信号强度(RSSI):");
serial.print (RSSI);
serial.println (" dBm");
//在浏览器中打印目标位置:
serial.print ("要查看此页的实际操作、请打开浏览器至 http://");
serial.println (IP);
}