Eğitimler
WiFiNINAAPSimpleWebServer
Bu örnekte, basit bir web sunucusu web üzerinden bir LED'in yanıp sönmesini sağlar. Bu örnek, yerel bir WiFI ağına dayanmadan bir erişim noktası ayarlamak için beginAP () işlevini kullanır. Bu örnekte WiFi modülünüzün IP adresi Arduino Software (IDE) seri monitörüne yazdırılacaktır. Kartımızın IP adresini öğrendikten sonra, pin 9'daki LED'i açmak ve kapatmak için bu adresi bir web tarayıcısında açabilirsiniz.
Kalkanınızın IP adresi adresinizse:
http: // adresiniz / H LED'i açar
http: // adresiniz / L kapatır
Gerekli Donanım
- PIN 9'a bağlı bir LED
- Arduino MKR WiFi 1010 veya
- Arduino MKR VIDOR 4000 veya
- Arduino UNO WiFi Rev.2
Devre
PIN 9 ile kartınızın topraklaması arasında dirençli bir LED bağlayın.
Lütfen dikkat: Bu üç kart, WiFi modülünü iletişim kurmak ve seçmek için özel pinler kullanır, bu nedenle başlık pinlerine bağlı mevcut dijital pinlerin kullanımında herhangi bir kısıtlama yoktur.
Kod
AP modunda kartın varsayılan adresi 192.168.4.1'dir. Bu çizimi yüklediğinizde, WiFi modülü arduino_secrets.h dosyasında adı SSID olarak belirtilen bir Erişim Noktası oluşturur. PASS olarak belirtilen şifreyi kullanarak bağlanın.
WiFi Web Server LED Blink
A simple web server that lets you blink an LED via the web.
This sketch will create a new access point (with no password).
It will then launch a new server and print out the IP address
to the Serial monitor. From there, you can open that address in a web browser
to turn on and off the LED on pin 13.
If the IP address of your board is yourAddress:
http://yourAddress/H turns the LED on
http://yourAddress/L turns it off
created 25 Nov 2012
by Tom Igoe
adapted to WiFi AP by Adafruit
*/
#include <SPI.h>
#include <WiFiNINA.h>
#include "arduino_secrets.h"
///////please enter your sensitive data in the Secret tab/arduino_secrets.h
char ssid[] = SECRET_SSID; // your network SSID (name)
char pass[] = SECRET_PASS; // your network password (use for WPA, or use as key for WEP)
int keyIndex = 0; // your network key Index number (needed only for WEP)
int led = LED_BUILTIN;
int status = WL_IDLE_STATUS;
WiFiServer server(80);
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
}
Serial.println("Access Point Web Server");
pinMode(led, OUTPUT); // set the LED pin mode
// check for the WiFi module:
if (WiFi.status() == WL_NO_MODULE) {
Serial.println("Communication with WiFi module failed!");
// don't continue
while (true);
}
String fv = WiFi.firmwareVersion();
if (fv < WIFI_FIRMWARE_LATEST_VERSION) {
Serial.println("Please upgrade the firmware");
}
// by default the local IP address of will be 192.168.4.1
// you can override it with the following:
// WiFi.config(IPAddress(10, 0, 0, 1));
// print the network name (SSID);
Serial.print("Creating access point named: ");
Serial.println(ssid);
// Create open network. Change this line if you want to create an WEP network:
status = WiFi.beginAP(ssid, pass);
if (status != WL_AP_LISTENING) {
Serial.println("Creating access point failed");
// don't continue
while (true);
}
// wait 10 seconds for connection:
delay(10000);
// start the web server on port 80
server.begin();
// you're connected now, so print out the status
printWiFiStatus();
}
void loop() {
// compare the previous status to the current status
if (status != WiFi.status()) {
// it has changed update the variable
status = WiFi.status();
if (status == WL_AP_CONNECTED) {
// a device has connected to the AP
Serial.println("Device connected to AP");
} else {
// a device has disconnected from the AP, and we are back in listening mode
Serial.println("Device disconnected from AP");
}
}
WiFiClient client = server.available(); // listen for incoming clients
if (client) { // if you get a client,
Serial.println("new client"); // print a message out the serial port
String currentLine = ""; // make a String to hold incoming data from the client
while (client.connected()) { // loop while the client's connected
if (client.available()) { // if there's bytes to read from the client,
char c = client.read(); // read a byte, then
Serial.write(c); // print it out the serial monitor
if (c == '\n') { // if the byte is a newline character
// if the current line is blank, you got two newline characters in a row.
// that's the end of the client HTTP request, so send a response:
if (currentLine.length() == 0) {
// HTTP headers always start with a response code (e.g. HTTP/1.1 200 OK)
// and a content-type so the client knows what's coming, then a blank line:
client.println("HTTP/1.1 200 OK");
client.println("Content-type:text/html");
client.println();
// the content of the HTTP response follows the header:
client.print("Click <a href=\"/H\">here</a> turn the LED on<br>");
client.print("Click <a href=\"/L\">here</a> turn the LED off<br>");
// The HTTP response ends with another blank line:
client.println();
// break out of the while loop:
break;
}
else { // if you got a newline, then clear currentLine:
currentLine = "";
}
}
else if (c != '\r') { // if you got anything else but a carriage return character,
currentLine += c; // add it to the end of the currentLine
}
// Check to see if the client request was "GET /H" or "GET /L":
if (currentLine.endsWith("GET /H")) {
digitalWrite(led, HIGH); // GET /H turns the LED on
}
if (currentLine.endsWith("GET /L")) {
digitalWrite(led, LOW); // GET /L turns the LED off
}
}
}
// close the connection:
client.stop();
Serial.println("client disconnected");
}
}
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 where to go in a browser:
Serial.print("To see this page in action, open a browser to http://");
Serial.println(ip);
}
See Also
- WiFi NINA library- WiFiNINA Kütüphanesi için referansınız.
- Arduino MKR WiFi 1010- Arduino MKR WiFi 1010 kartı için ürün detayları.
- Arduino MKR VIDOR 4000- Arduino MKR VIDOR 4000 kartı için ürün detayları.
- Arduino UNO WiFi Rev.2- Arduino UNO WiFi Rev.2 kartı için ürün detayları.
- ConnectNoEncryption: Açık bir ağa nasıl bağlanacağınızı gösterir
- ConnectWithWEP: WEP ile şifrelenmiş bir ağa nasıl bağlanacağınızı gösterir
- ConnectWithWPA: WPA2 Kişisel ile şifrelenmiş bir ağa nasıl bağlanacağınızı gösterir
- ScanNetworks: Menzil içindeki tüm WiFi ağlarını görüntüler
- ScanNetworksAdwanced: Tüm WiFi ağlarını ve şifreli ağları
- SimpleWebServerWiFi: Bir LED'i yönetmek için basit bir web sunucusu
- WiFiChatServer: Basit bir sohbet sunucusu kurun
- WiFiPing: Bir web sitesine veya IP adresine nasıl ping atılacağını gösterir
- WiFiSSLClient: SSL kullanarak bir web sitesine bağlanın
- UdpNTPClient: Ağ Zaman Protokolü (NTP) sunucusunu UDP kullanarak sorgulama
- WiFiUdpSendReceiveString: Bir UDP dizesi gönderme ve alma
- WiFiWebClient: Uzak bir web sunucusuna bağlanma
- WiFiWebClientRepeating: Bir web sunucusuna tekrarlanan HTTP çağrıları yapma
- WiFiWebServer: WiFi modülünden bir web sayfası sunma