Bugünkü Wio Terminal güncellemesi, en önemli özelliklerinden biri olan güvenilir ve güçlü ağ bağlantısı hakkında! Bu yazıda şunları konuşacağız:
- “Wio” ne anlama geliyor
- Wio Terminal’ın Kablosuz Çekirdeği: Realtek RTL8720DN hakkında kısa bir tanıtım
- Wio Terminal’ı Wi-Fi’ye nasıl bağlayıp internetten veri alabilirsiniz
“Wio” ne anlama geliyor

Başlamadan önce, birçok kişi hızlı bir soru sormak isteyebilir: Wio Terminal’daki “Wio” ne anlama geliyor?
“Kablosuz giriş ve çıkış”ın kısaltmasıdır; Seeed tarafından geliştirilen, donanım ve yazılımı içeren bir platformdur ve yapımcılar için IoT geliştirmeyi basitleştirmeyi amaçlamaktadır. Wio Ailesi sayesinde, hatta acemiler bile 5 dakika içinde kendi IoT uygulamalarını oluşturabilir; donanım programlaması, breadboard, jumper kablolar veya lehimleme gerektirmeden.
Wio Terminal, Wio ailesinin en yeni üyesidir. Onun, daha büyük kardeşlerinden oldukça farklı olduğunu fark etmiş olmalısınız; tek bir gömülü fonksiyonel modül değil, yüksek entegre tasarıma sahip basit ve küçük bir cihazdır; 72 x 57 x 12 mm boyutlarında, çoklu işlevleri şık bir kasada bir araya getirir. Güvenilir kablosuz bağlantısıyla birlikte, bir IoT projesi kurmak her zamankinden daha basit.
Wio Terminal’ı, internetten gerçek zamanlı verileri gösteren demolar yapmak için kullanabilirsiniz; örneğin, yerel hava durumu veya döviz kurları gibi canlı veriler, fazla çaba harcamadan. Hatta yerleşik mıknatısları ve 2 montaj deliği vardır, böylece istediğiniz hemen hemen her yere bir monitör veya gösterge paneli olarak sabitleyebilirsiniz.

Wio Terminal’ın Kablosuz Çekirdeği: Realtek RTL8720DN hakkında kısa bir tanıtım
Wio Terminal’ı güçlü kablosuz bağlantıyla güçlendirmek için, hem BLE / BLE 5.0 hem de Çift Bant 2.4Ghz / 5Ghz Wi-Fi destekleyen Realtek RTL8720DN’i benimsedik ve IoT projeleri için temel sağladık.
Seeed’de, sizin için Realtek RTL8720DN 2.4G/5G Çift Bant Kablosuz ve BLE5.0 Kombinasyon Modülü de sağlıyoruz. Bu küçük modülün WiFi 5G ve Bluetooth Düşük Enerji 5.0’ı da desteklediğini söylemek gerekir. Ana çip RTL8720DN ile, WiFi ve Bluetooth uygulamaları için tipik SBC’ler ile bir SoC olarak kabul edilebilir.

Wio Terminal’ı Wi-Fi’ye nasıl bağlayıp internetten veri alabilirsiniz
İşte en önemli kısım: Wio Terminal’ı internetten veri almak için nasıl kullanabilirsiniz? Bugün, Wio Terminal’ı HTTPS sunucusuna erişmek ve internetten canlı veri almak için nasıl kullanacağınızı tanıtacağız. Bu demoda, Wio Terminal, MicroPython’un Github deposundan veri almak için kullanılır ve veriler LCD ekranında görüntülenir.


Kendi Github deponuz varsa, oradan veri alabilir ve Wio Terminal’ı masaüstünüze çekerek kodunuza kaç kişinin yıldız verdiğini veya fork ettiğini saymadan öğrenebilirsiniz. Bir yapımcı için oldukça heyecan verici, değil mi? Elbette, Demo’yu hava durumu bilgilerini, Youtube istatistiklerini vb. almak için diğer API’lere de uygulayabilirsiniz. Olasılıklar sonsuz!
Wio Terminal’a yeni başladıysanız, sizin için birçok belge hazırladık. Bu demoya başlamadan önce, Wio Terminal üzerindeki Kablosuz Çekirdek Realtek RTL8720 için en son yazılımı güncellediğinizden emin olun. Wio Terminal’da Wi-Fi bağlantısını nasıl yapılandıracağınızdan emin değilseniz, detaylı eğitimimize buradan ulaşabilirsiniz.
Haydi başlayalım!

Donanım Gereksinimi
Gerekli Arduino kütüphaneleri
- LCD ekran Kütüphanesini
Seeed_Arduino_LCDyükleyin, daha fazla bilgi için Wio Terminal LCD sayfasını ziyaret edin. - ArduinoJson depolarını ziyaret edin ve tüm repo’yu yerel sürücünüze indirin.
- Artık ArduinoJson kütüphanesini Arduino IDE’ye yükleyebilirsiniz. Arduino IDE’yi açın ve
sketch->Include Library->Add .ZIP Libraryseçeneğine tıklayın ve indirdiğinizArduinoJsondosyasını seçin.
- Artık ArduinoJson kütüphanesini Arduino IDE’ye yükleyebilirsiniz. Arduino IDE’yi açın ve
- Https bağlantısı hakkında daha fazla bilgi için lütfen buraya bakın.
Arduino Talimatları
-
Free_Fonts.hbaşlık dosyasını indirin, böylece LCD kütüphanesinde bulunan ücretsiz fontlar için kısaltmaları kullanabilirsiniz. Lütfen bu başlık dosyasını Arduino Sketch ile aynı konuma koyduğunuzdan emin olun. - Tam kodu buradan indirin veya aşağıdakini kopyalayın.
- Kodu yükleyin.
Tam Kod
Not: ssid ve password değerlerini kendi Ağ Wi-Fi’nize değiştirin.
#include <WiFiClientSecure.h>
#include <ArduinoJson.h>
#include"Free_Fonts.h"
#include"TFT_eSPI.h"
TFT_eSPI tft;
const char* ssid = "yourNetworkName";
const char* password = "yourNetworkPassword";
//29*27
const unsigned char watchIMG[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00,
0x00, 0xFC, 0x07, 0x00, 0x00, 0xFF, 0x1F, 0x00, 0x80, 0x1F, 0x3F, 0x00,
0xC0, 0x07, 0x7C, 0x00, 0xE0, 0x03, 0xF8, 0x00, 0xF0, 0xE1, 0xF0, 0x01,
0xF8, 0xF1, 0xF1, 0x01, 0xF8, 0xF8, 0xF1, 0x03, 0xFC, 0xF8, 0xF1, 0x03,
0xF8, 0xF0, 0xF1, 0x03, 0xF0, 0xF1, 0xF0, 0x01, 0xF0, 0x01, 0xF8, 0x00,
0xE0, 0x03, 0x78, 0x00, 0xC0, 0x07, 0x3E, 0x00, 0x80, 0xFF, 0x1F, 0x00,
0x00, 0xFE, 0x0F, 0x00, 0x00, 0xF8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
const unsigned char starIMG[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
0x00, 0xC0, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x00,
0x00, 0xF0, 0x01, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x00, 0xF8, 0x03, 0x00,
0x00, 0xF8, 0x07, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0xFE, 0xFF, 0xFF, 0x1F,
0xFE, 0xFF, 0xFF, 0x0F, 0xFC, 0xFF, 0xFF, 0x07, 0xF8, 0xFF, 0xFF, 0x03,
0xF0, 0xFF, 0xFF, 0x01, 0xC0, 0xFF, 0xFF, 0x00, 0x80, 0xFF, 0x7F, 0x00,
0x00, 0xFF, 0x3F, 0x00, 0x80, 0xFF, 0x3F, 0x00, 0x80, 0xFF, 0x3F, 0x00,
0x80, 0xFF, 0x3F, 0x00, 0x80, 0xFF, 0x7F, 0x00, 0x80, 0xBF, 0x7F, 0x00,
0xC0, 0x1F, 0x7E, 0x00, 0xC0, 0x07, 0x78, 0x00, 0xC0, 0x01, 0x70, 0x00,
0x40, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
const unsigned char forkIMG[] = {
0xF8, 0x00, 0x00, 0x00, 0xFE, 0x03, 0x00, 0x00, 0x0F, 0x07, 0x00, 0x01,
0x07, 0x07, 0xE0, 0x0F, 0x07, 0x07, 0x78, 0x1E, 0x9E, 0x07, 0x38, 0x38,
0xFC, 0x01, 0x38, 0x38, 0xF8, 0x00, 0x38, 0x3C, 0xF8, 0x00, 0xF0, 0x1F,
0xF8, 0x00, 0xE0, 0x07, 0xF8, 0x00, 0xC0, 0x07, 0xF8, 0x00, 0xE0, 0x07,
0xF8, 0x00, 0xE0, 0x07, 0xF8, 0x00, 0xF8, 0x03, 0xF8, 0x00, 0xFE, 0x01,
0xF8, 0xE0, 0xFF, 0x00, 0xF8, 0xFF, 0x7F, 0x00, 0xF8, 0xFF, 0x1F, 0x00,
0xF8, 0xFF, 0x03, 0x00, 0xF8, 0x1F, 0x00, 0x00, 0xF8, 0x03, 0x00, 0x00,
0xF8, 0x01, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00,
0x9E, 0x07, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00,
0x0F, 0x07, 0x00, 0x00, 0xFE, 0x03, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00,
};
const char* server = "api.github.com"; // Sunucu URL'si
const char* test_root_ca = \
"-----BEGIN CERTIFICATE-----\n"
"MIIEsTCCA5mgAwIBAgIQBOHnpNxc8vNtwCtCuF0VnzANBgkqhkiG9w0BAQsFADBs\n"
"MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\n"
"d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j\n"
"ZSBFViBSb290IENBMB4XDTEzMTAyMjEyMDAwMFoXDTI4MTAyMjEyMDAwMFowcDEL\n"
"MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3\n"
"LmRpZ2ljZXJ0LmNvbTEvMC0GA1UEAxMmRGlnaUNlcnQgU0hBMiBIaWdoIEFzc3Vy\n"
"YW5jZSBTZXJ2ZXIgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC2\n"
"4C/CJAbIbQRf1+8KZAayfSImZRauQkCbztyfn3YHPsMwVYcZuU+UDlqUH1VWtMIC\n"
"Kq/QmO4LQNfE0DtyyBSe75CxEamu0si4QzrZCwvV1ZX1QK/IHe1NnF9Xt4ZQaJn1\n"
"itrSxwUfqJfJ3KSxgoQtxq2lnMcZgqaFD15EWCo3j/018QsIJzJa9buLnqS9UdAn\n"
"4t07QjOjBSjEuyjMmqwrIw14xnvmXnG3Sj4I+4G3FhahnSMSTeXXkgisdaScus0X\n"
"sh5ENWV/UyU50RwKmmMbGZJ0aAo3wsJSSMs5WqK24V3B3aAguCGikyZvFEohQcft\n"
"bZvySC/zA/WiaJJTL17jAgMBAAGjggFJMIIBRTASBgNVHRMBAf8ECDAGAQH/AgEA\n"
"MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw\n"
"NAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2Vy\n"
"dC5jb20wSwYDVR0fBEQwQjBAoD6gPIY6aHR0cDovL2NybDQuZGlnaWNlcnQuY29t\n"
"L0RpZ2lDZXJ0SGlnaEFzc3VyYW5jZUVWUm9vdENBLmNybDA9BgNVHSAENjA0MDIG\n"
"BFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQ\n"
"UzAdBgNVHQ4EFgQUUWj/kK8CB3U8zNllZGKiErhZcjswHwYDVR0jBBgwFoAUsT7D\n"
"aQP4v0cB1JgmGggC72NkK8MwDQYJKoZIhvcNAQELBQADggEBABiKlYkD5m3fXPwd\n"
"aOpKj4PWUS+Na0QWnqxj9dJubISZi6qBcYRb7TROsLd5kinMLYBq8I4g4Xmk/gNH\n"
"E+r1hspZcX30BJZr01lYPf7TMSVcGDiEo+afgv2MW5gxTs14nhr9hctJqvIni5ly\n"
"/D6q1UEL2tU2ob8cbkdJf17ZSHwD2f2LSaCYJkJA69aSEaRkCldUxPUd1gJea6zu\n"
"xICaEnL6VpPX/78whQYwvwt/Tv9XBZ0k7YXDK/umdaisLRbvfXknsuvCnQsH6qqF\n"
"0wGjIChBWUMo0oHjqvbsezt3tkBigAVBRQHvFwY+3sAzm2fTYS5yh+Rp/BIAV0Ae\n"
"cPUeybQ=\n"
"-----END CERTIFICATE-----\n";
// İsterseniz x.509 istemci sertifikalarını kullanabilirsiniz
//const char* test_client_key = ""; // istemciyi doğrulamak için
//const char* test_client_cert = ""; // istemciyi doğrulamak için
String github_data;
WiFiClientSecure client;
void setup() {
// Seri portu başlat ve açılmasını bekle:
Serial.begin(115200);
delay(100);
Serial.print("SSID'e bağlanmaya çalışılıyor: ");
Serial.println(ssid);
WiFi.begin(ssid, password);
tft.begin();
tft.setRotation(3);
tft.fillScreen(TFT_BLACK);
tft.setTextSize(2);
tft.setCursor((320 - tft.textWidth("Wi-Fi'ye bağlanılıyor.."))/2, 120);
tft.print("Wi-Fi'ye bağlanılıyor..");
// Wi-Fi ağına bağlanmaya çalış:
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
// yeniden denemek için 1 saniye bekle
delay(1000);
}
Serial.print("Bağlandı: ");
Serial.println(ssid);
tft.fillScreen(TFT_BLACK);
tft.setCursor((320 - tft.textWidth("Bağlandı!"))/2, 120);
tft.print("Bağlandı!");
getData();
}
void loop() {
// hiçbir şey yapma
}
void getData() {
client.setCACert(test_root_ca);
//client.setCertificate(test_client_key); // istemci doğrulaması için
//client.setPrivateKey(test_client_cert); // istemci doğrulaması için
tft.fillScreen(TFT_BLACK);
tft.setCursor((320 - tft.textWidth("Sunucuya bağlanılıyor.."))/2, 120);
tft.print("Sunucuya bağlanılıyor..");
Serial.println("\nSunucuya bağlantı başlatılıyor...");
if (!client.connect(server, 443)) {
Serial.println("Bağlantı başarısız!");
tft.fillScreen(TFT_BLACK);
tft.setCursor((320 - tft.textWidth("Bağlantı başarısız!"))/2, 120);
tft.print("Bağlantı başarısız!");
} else {
Serial.println("Sunucuya bağlandı!");
tft.fillScreen(TFT_BLACK);
tft.setCursor((320 - tft.textWidth("Sunucuya bağlandı!"))/2, 120);
tft.print("Sunucuya bağlandı!");
// HTTP isteği yap:
client.println("GET https://api.github.com/repos/micropython/micropython HTTP/1.0");
client.println("Host: api.github.com");
client.println("User-Agent: Seeed-Studio");
client.println("Connection: close");
client.println();
while (client.connected()) {
String line = client.readStringUntil('\n');
if (line == "\r") {
Serial.println("başlıklar alındı");
break;
}
}
while(client.available())
{
String line = client.readStringUntil('\r');
github_data = line;
}
//Serial.println(github_data);
client.stop();
Serial.println("bağlantı kapatılıyor");
}
// ArduinoJson ile verileri ayrıştır, daha fazla bilgi için ArduinoJson'a bak
const size_t capacity = 2*JSON_OBJECT_SIZE(18) + JSON_OBJECT_SIZE(77) + 6050;
DynamicJsonDocument doc(capacity);
deserializeJson(doc, github_data);
int subscribers_count = doc["subscribers_count"];
int forks = doc["forks"];
int stargazers_count = doc["stargazers_count"];
Serial.println(subscribers_count);
Serial.println(forks);
Serial.println(stargazers_count);
// TFT EKRAN OTURUMU
tft.setFreeFont(FSS9);
tft.setTextSize(1);
tft.setTextColor(TFT_WHITE);
tft.fillScreen(TFT_BLACK);
tft.drawString("MicroPython Github",20,10);
tft.drawFastHLine(185,18,120 ,TFT_RED);
tft.drawFastHLine(185,19,120 ,TFT_RED);
tft.drawFastHLine(185,20,120 ,TFT_RED);
tft.drawFastHLine(10,33,300 ,TFT_NAVY);
tft.drawFastHLine(10,34,300 ,TFT_NAVY);
tft.drawFastHLine(10,35,300 ,TFT_NAVY);
tft.drawXBitmap(20,60, watchIMG, 29, 27, TFT_WHITE);
tft.drawXBitmap(20,120, starIMG, 30, 30, TFT_WHITE);
tft.drawXBitmap(20,180, forkIMG, 30, 30, TFT_WHITE);
tft.setFreeFont(FMB9);
tft.drawString("İzleyiciler: ",60, 68);
tft.drawString("Yıldızlar: ",60, 128);
tft.drawString("Forklar: ",60, 188);
tft.drawNumber(subscribers_count, 165, 68);
tft.drawNumber(stargazers_count, 130, 128);
tft.drawNumber(forks, 130, 188);
}
Daha fazla harika demo ve detaylı eğitimler için wiki’mizi ziyaret edebilirsiniz. Bizimle kalın ve Wio Terminal hakkında daha fazla güncelleme alın!
