Arduino库教程-WIfi无线扩展块101-WiFi Web Client Repeating
WiFi Web Client Repeating
这个例子展示了如何用一个WiFi Shield 101 或者 MKR1000 开发板重复HTTP请求。它连接到http://www.arduino.cc/latest.txt。页面的内容是通过你的Arduino软件(IDE)串口监视窗口浏览。
这个例子是为一个使用WPA加密的网络编写。对于WEP或WPA,相应地改变Wifi.begin()调用。
硬件要求
- Arduino WiFi Shield 101
- Arduino or Genuino Zero board
或者 - MKR1000
电路
数字引脚7被用来作为WiFi Shield 101 和 开发板的握手引脚使用,而不应该被占用。
这个例子里你应该进入一个连接到互联网的802.11b/g无线网络。你需要改变程序里的网络设置来符合您的特定网络SSID。
对于使用WPA/WPA2个人加密的网络,你需要的SSID和密码。扩展块将无法通过WPA2企业加密连接到网络。
WEP网络密码进制字符串作为键。一个WEP网络可以有4种不同的钥匙;每个按键都分配了一个“关键指标”的价值。WEP加密的网络,你需要SSID,key,和key number。
图由 Fritzing 绘制
在上图,Arduino 或 Genuino Zero 开发板应该在堆叠在 WiFi shield上面。
样例代码
/*
Repeating Wifi Web Client
This sketch connects to a a web server and makes a request
using an Arduino Wifi shield.
Circuit:
* WiFi shield attached to pins SPI pins and pin 7
created 23 April 2012
modified 31 May 2012
by Tom Igoe
modified 13 Jan 2014
by Federico Vanzati
http://arduino.cc/en/Tutorial/WifiWebClientRepeating
This code is in the public domain.
*/
#include <SPI.h>
#include <WiFi101.h>
char ssid[] = "yourNetwork"; // your network SSID (name)
char pass[] = "secretPassword"; // your network password
int keyIndex = 0; // your network key Index number (needed only for WEP)
int status = WL_IDLE_STATUS;
// Initialize the Wifi client library
WiFiClient client;
// server address:
char server[] = "www.arduino.cc";
//IPAddress server(64,131,82,241);
unsigned long lastConnectionTime = 0; // last time you connected to the server, in milliseconds
const unsigned long postingInterval = 10L * 1000L; // delay between updates, in milliseconds
void setup() {
//Initialize serial and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
// check for the presence of the shield:
if (WiFi.status() == WL_NO_SHIELD) {
Serial.println("WiFi shield not present");
// don't continue:
while (true);
}
// attempt to connect to Wifi network:
while ( status != WL_CONNECTED) {
Serial.print("Attempting to connect to SSID: ");
Serial.println(ssid);
// Connect to WPA/WPA2 network. Change this line if using open or WEP network:
status = WiFi.begin(ssid, pass);
// wait 10 seconds for connection:
delay(10000);
}
// you're connected now, so print out the status:
printWifiStatus();
}
void loop() {
// if there's incoming data from the net connection.
// send it out the serial port. This is for debugging
// purposes only:
while (client.available()) {
char c = client.read();
Serial.write(c);
}
// if ten seconds have passed since your last connection,
// then connect again and send data:
if (millis() - lastConnectionTime > postingInterval) {
httpRequest();
}
}
// this method makes a HTTP connection to the server:
void httpRequest() {
// close any connection before send a new request.
// This will free the socket on the WiFi shield
client.stop();
// if there's a successful connection:
if (client.connect(server, 80)) {
Serial.println("connecting...");
// send the HTTP PUT request:
client.println("GET /latest.txt HTTP/1.1");
client.println("Host: www.arduino.cc");
client.println("User-Agent: ArduinoWiFi/1.1");
client.println("Connection: close");
client.println();
// note the time that the connection was made:
lastConnectionTime = millis();
}
else {
// if you couldn't make a connection:
Serial.println("connection failed");
}
}
void printWifiStatus() {
// print the SSID of the network you're attached to:
Serial.print("SSID: ");
Serial.println(WiFi.SSID());
// print your WiFi shield's IP address:
IPAddress ip = WiFi.localIP();
Serial.print("IP Address: ");
Serial.println(ip);
// print the received signal strength:
long rssi = WiFi.RSSI();
Serial.print("signal strength (RSSI):");
Serial.print(rssi);
Serial.println(" dBm");
}
[Get Code]
更多
WiFi library – WiFi101 库的参考网页
WiFi Shield – WiFi 扩展板 101 的产品细节
MKR1000 – MKR1000 板的产品细节
Connect No Encryption: 演示如何连接到一个开放的网络。
Connect With WEP: 演示如何连接到用WEP加密的网络。
Connect With WPA: 演示如何连接到一个用WPA2个人加密网络。
Scan Networks:显示出所有在范围内的无线网络。
Simple Web Server WiFi: 通过打开和关闭一个LED来访问这个简单的Web服务器
UDP NTP Client: 通过UDP查询网络时间协议(NTP)服务器。
WiFi Chat Server: 建立一个简单的聊天服务器。
WiFi Web Client: 连接到一个远程服务器。
WiFi Web Client Repeating: 反复做HTTP请求到服务器。
WiFi Web Server: 通过模拟输入值来服务一个来自WIfi无线扩展块的网页。
WiFi Send Receive UDP String: 发送和接收UDP字符串。
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号