ESP8266 WiFi Shield'inizi Oluşturun

semaver

New member


  1. ESP8266 WiFi Shield'inizi Oluşturun

Son bölümde ucuz wifi.cip ESP8266 ile tanıştık ve olasılıklarını aydınlattık (Arduino dünyasının dışında bile). Bu bölümde, internet bağlantısı için bir ESP8266 kartı ile birlikte Arduino donanımı kullanılmalıdır.



Arduino'yu kablosuz internet modunda bağlamak için Arduino.cc Hardware Company, orijinal WiFi-Shield'ı sundu, ancak bütçesinde 50 Euro'nun üzerinde piyasa fiyatları artı nakliye maliyetleriyle derin delikler yırtıp. Benzer bir obolus için zaten bir Raspberry P-3 kartı olduğu için bu çok pahalı.

Genuino/Arduino Kurulu MKR1000 de burada ilginç olacaktı. Bu kart özellikle IoT geliştiricisini ve entegre WiFi'ye hitap eder. Bu makalede açıklanmıştır.

WiFi-Seld için bir üs olarak ESP8266


ESP8266 Economic, Arduino ekosisteminin destekçileri için tek gerçek pazarlık seçeneğidir. WiFi-çocuğunuz için uygun bir devre, son bölüme zaten verildi. Şekilde devre yapımı eylemde göreceksiniz.





ESP-01 kartının mega arduino'da güç kaynağı ve bağlantısı için FTDI koparma kartı ile sadece devre



ESP-01 kartının mega arduino'ya güç kaynağı ve bağlantısı için sadece FTDI koparma kartı olan bir devre



Devrede aşağıdaki bileşenleri bulacaksınız:

  • 3.3 V mantık ve mantık 5 V arasındaki ayrım için mantıksal dönüştürücü.
  • FTDI Breakout Board
  • ESP-01 kartı
  • Tel köprüler
  • Kırmak






AliExpress.com



Ekonomik prototip kalkan


(Resim: Aliexpress.com)



Yönetim kurulunu bir Arduino uzantısı veya bağımsız bir sistem olarak kullanabilmek için daha fazla anahtarın entegre edilmesi önerilir. Bununla birlikte, açıklanan işlevlerle bitirilen kalkanlar zaten 5 Euro (Çin) veya 11 Euro (Almanya) arasında mevcuttur. Bununla birlikte, genellikle orta derecede veya belgelenmezler. Tabii ki, bir çözümün geliştirilmesi de çok daha eğlenceli.

FTDI kartı yerine, 3.3 V'ye dayalı bir harici voltaj kaynağını dönüştüren bir voltaj kontrolörünü entegre etmek de mümkündür. Bununla birlikte, bu ancak ESP8266 kartını sadece Arduino aracılığıyla kullanmak istiyorsanız, ancak bağımsız bir tavsiye olarak dikkate alınabilir.





Arabaların kartı veya kalkanı -Fasted ESP8266



Arabaların kartı veya kalkanı -Fasted ESP8266



Kızarmış yiyeceklerden ilkel bir devre oluşturdum. Kalkanınızı oluşturmak için bu devreyi yukarıda gösterilen Protoshield'a aktarmak mümkündür. İsterseniz, voltajı tesviye etmek için LED'ler (örneğin dijital kapı 13 için) veya elektrolitik kapasitörler ekleyebilirsiniz.

Kütüphaneler


Bir noktada donanımı (kalkan veya kart) Arduino için bir uzatma olarak kullanmak istersiniz. Burada da iki yol var: Arabalar -Mevcut bir kütüphanenin etkisi veya mevcut bir kütüphanenin kullanımı. Arduino fikrinde aşağıdaki menü navigasyonu elde edilir: Eskiz | Kütüphaneyi ekleyin | Kütüphaneleri Yönetin Sağ üstte bir arama baskısı ekleyebileceğiniz bir pencerede. Oraya bak ESP8266.





ESP8266 kütüphanesi arayın.



ESP8266 kütüphanesi arayın.



Ve kütüphaneye sunulan kitapçılar listesinde gezinin WifiespBunları seçmek ve yüklemek için.

Şimdi yolun ötesinde yapabilirsiniz Dosya | Örnekler | Wifiesp Örneğin bir örnek yükleyin ConnectWpa. Koddaki WLAN'ınıza erişim verilerini hala giriyorsanız, koşullardaki seri kapıların hızını düzenleyin ve çizimi başlatın.

Arduino ESP8266 aracılığıyla WLAN'a doğru bir şekilde bağlandığından seri monitörü takip edebilmelisiniz:





ConnectTwpa örneği Wifiesp kitapçılarından



ConnectTwpa örneği Wifiesp kitapçılarından



Bu sizi ilk bağlantı haline getirdi.

Wifiesp ile daha geniş bir örnek: LED'i tarayıcı üzerinden kontrol edin


Biraz daha geniş bir örnekte, bir LED tarayıcı üzerinden kontrol edilmelidir. Kütüphane ile kullanıcı Wifiesp Örnek verilen örnek uyarlanmış ve genişletilmiş. Devre için bir LED'i direnç kullanarak bir pime bağlamanız gerekir> = 220 ohm ve pim numarası (Ledpin) Taslağı girin. Her şey bittiğinde, aşağıdaki gibi görünmelidir:





ESP8266 WiFi Shield'inizi Oluşturun




Solda tarayıcının tarafını basit olarak görüyoruz, sağda seri monitördeki taslağın masraflarını sağlıyoruz. Arduino kartımız web sunucusunun rolünü işgal ediyor. Kablosuz iletişim için bir ESP8266 kartı ve Wifiesp-Kütüphane.

Yukarıdaki sonucu nasıl elde ederiz? Eskiz, kurulum sırasında seri kapıyı başlatır, yerel WLAN'da kaydedilir ve Porta 80'de bir web sunucusu başlatır.

Sonsuz döngüde, eskiz müşteri isteklerini bekliyor. Bir soruşturmayı tanıyorsanız, müşteriye bağlanın ve web sitesini LED denetime gönderin. Sonunda, eskiz bağlantıyı tekrar reddeder.

Yöntem Sendhttpresonse () İstemciye gönderilen HTML sayfasını oluşturun ve istemciye gönderin. Yardımcı yöntem Printwifistatus () Kontrol etmek için seri monitörde mevcut WiFi verileri üretin.

Eskiz iyi yorumlanmıştır, bu yüzden sadece yolunuzu bulmalısınız.

////////////////////////////////////////////////////////////////
// Ein WebServer auf dem Arduino erlaubt die Steuerung einer LED
// Das Beispiel setzt WPA-Netzwerke voraus
////////////////////////////////////////////////////////////////


#include <WiFiEsp.h> // Header von WiFiEsp einbinden
// Entweder SoftSerial (UNO, LEONARDO) auf Pins 6+7 oder
// Hardware-Serial (RX1,TX1) (MEGA, DUE)


#ifndef HAVE_HWSERIAL1
#include "SoftwareSerial.h"
SoftwareSerial Serial1(6, 7); // Virtuelles RX, TX
#endif

char WiFiSSID[] = “…………….”; // Ihre SSID
char WiFiPass[] = “…………….”; // Ihr Zugangs-Passwort
int status = WL_IDLE_STATUS;

// LED: Initialzustand und Pin
int led = LOW;
int ledPIN = 10;

WiFiEspServer WebServer(80); // Vereinbarung des Mini-WebServers

// in WiFiESP ist ein Ringpuffer-Typ vereinbart, den wir nutzen
RingBuffer puffer(24);

//////////////////////////////////////////////////////////////////////
// setup():
// Initialisieren der beiden seriellen Ports, Anmeldung am WLAN
// und Start des Webservers
//////////////////////////////////////////////////////////////////////


void setup()
{
Serial.begin(9600); // Serieller Port zeigt den Status (auf der IDE)
Serial1.begin(115200); // Zweiter serieller Port verbunden mit ESP8266
WiFi.init(&Serial1); // Initialisierung des Ports

// Hat es geklappt?

if (WiFi.status() == WL_NO_SHIELD) {
Serial.println("ESP8266 nicht gefunden");
// Wenn nein, dann in Endlosschleife gehen
while (0 == 0);
}

// Verbindung initiieren
while (status != WL_CONNECTED) {
Serial.print("Verbindungsaufbau zu ");
Serial.println(WiFiSSID);
// Verbindung zum WPA-Netzwerk aufbauen
status = WiFi.begin(WiFiSSID, WiFiPass);
}

Serial.println("Verbindung erfolgreich");
printWifiStatus();

// Webserver am Port 80 aktivieren
WebServer.begin();
}

/////////////////////////////////////////////////////////////////
// loop()-Methode:
// In der Endlosschleife warten wir auf eingehende
// Clientverbindungen, kommunizieren mit dem jeweiligen Client
// und schließen die Verbindung wieder (Session-Ende!)
/////////////////////////////////////////////////////////////////


void loop()
{
// Warten auf Verbindungswünsche von Clients
WiFiEspClient client = WebServer.available();

if (client) { // Client klopft an.
Serial.println("Neue Client-Verbindung"); // Ausgabe auf seriellen
// Monitor

puffer.init(); // Ringpuffer initialisieren
while (client.connected()) { // Solange Client verbunden
if (client.available()) { // Wenn Client was sendet,
char c = client.read(); // wird das Byte gelesen und
puffer.push(c); // im Puffer abgelegt

// Ein HTTP Reauest endet mit zweimal Zeilenvorsprung/Wagenrücklauf
// => Clientrequest gelesen => Daten senden

if (puffer.endsWith("rnrn")) {
sendHttpResponse(client);
break;
}

// Endung der Anfrage: http://<webaddresse>/AN oder .../AUS?
if (puffer.endsWith("GET /AN")) {
Serial.println("LED wird eingeschaltet");
led = HIGH;
digitalWrite(ledPIN, HIGH);
}
else if (puffer.endsWith("GET /AUS")) {
Serial.println("LED wird ausgeschaltet");
led = LOW;
digitalWrite(ledPIN, LOW);
}
}
}

// Verbindung schließen
client.stop();
Serial.println("Clientverbindung wurde geschlossen");
}
}
///////////////////////////////////////////////////////////
// Methode sendHttpResponse():
//
Methode, mit der wir dem Client eine Webseite senden
///////////////////////////////////////////////////////////


void sendHttpResponse(WiFiEspClient client)
{
// Hier geben wir eine HTTP-Antwort im vorgeschriebenen Format zurück.
// Erst der Header...

client.println("HTTP/1.1 200 OK");
client.println("Content-type:text/html");
client.println();

// Und dann der Inhalt:
client.println("<H1> LED-Steuerung am Arduino </h1> <br>");
client.print("Im Augenblick ist die LED ");
if (led == LOW) client.print(" <b>ausgeschaltet</b>.");
else client.print("<b>eingeschaltet</b>.");
client.println("<br>");
client.println("<br>");
client.println("Klicken Sie <a href="/AN">hier</a>, um die LED einzuschalten<br>");
client.println("Klicken Sie <a href="/AUS">hier</a>, um die LED auszuschalten<br>");

// Und am Schluss weitere Leerzeile einfügen

client.println();
}

///////////////////////////////////////////////////////
// Methode printWifiStatus():
// Ausgabe WiFi-Status und Info im seriellen Monitor
///////////////////////////////////////////////////////


void printWifiStatus()
{
// Netzwerkdaten: SSID
Serial.print("SSID: ");
Serial.println(WiFi.SSID());

// Netzwerkdaten: IP-Adresse

IPAddress ip = WiFi.localIP();
Serial.print("IP Adresse: ");
Serial.println(ip);

// Hinweis im seriellen Monitor
Serial.println();
Serial.print("Um den Fernzugriff zu testen, gehen Sie bitte
auf die Webseite http://");
Serial.println(ip);
Serial.println();
}


Çizimi projelerinizin temeli olarak kullanmaya davetlisiniz. Çoğunlukla ESP8266'nın becerilerini göstermeye alışıktı. Şimdi iyi bir temel bilgiye sahip olmalısınız.

Çözüm


ESP8266, Arduino becerilerinin birkaç Euro için WiFi'ye yardımcı olan çok çeşitlendirilmiş bir çiptir, ancak Arduino kimliğinde bağımsız bir tavsiye olarak da kullanılabilir. Bütün bunlar birkaç Euro çok düşük bir fiyata. Biraz yaşarsanız, blok için her türlü potansiyeli uyandırabilirsiniz.

Bu nedenle, ilk için IoT cihazlarının ağ oluşturma ve iletişimi konusunu tamamladık. Aşağıdaki bölümlerde, “komşu” cihazların birleşmesi ile ilgilenen Bluetooth ve NFC gibi konularla konuşacağım.




()
 
Üst