{"id":36233,"date":"2025-12-11T02:31:14","date_gmt":"2025-12-10T23:31:14","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/the-things-network-verilerini-grafanada-gorsellestirme-gercek-zamanli-kolay\/"},"modified":"2025-12-11T02:31:14","modified_gmt":"2025-12-10T23:31:14","slug":"the-things-network-verilerini-grafanada-gorsellestirme-gercek-zamanli-kolay","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/the-things-network-verilerini-grafanada-gorsellestirme-gercek-zamanli-kolay\/","title":{"rendered":"The Things Network Verilerini Grafana&#8217;da G\u00f6rselle\u015ftirme (Ger\u00e7ek Zamanl\u0131 &#038; Kolay)"},"content":{"rendered":"<p><body><\/p>\n<p>Nesnelerin \u0130nterneti (IoT) projelerinizdeki sens\u00f6r verilerini anlamland\u0131rmakta zorlan\u0131yor musunuz? The Things Network (TTN) \u00fczerinden gelen ham verileri ger\u00e7ek zamanl\u0131 ve etkili bir \u015fekilde g\u00f6rselle\u015ftirmek, projelerinizin ba\u015far\u0131s\u0131 i\u00e7in kritik \u00f6neme sahiptir. Bu makalede, TTN verilerini Grafana ile nas\u0131l kolayca ve ger\u00e7ek zamanl\u0131 olarak g\u00f6rselle\u015ftirebilece\u011finizi ad\u0131m ad\u0131m ke\u015ffedece\u011fiz.<\/p>\n<p>G\u00fcn\u00fcm\u00fcz d\u00fcnyas\u0131nda, \u00e7evremizdeki cihazlardan gelen veri ak\u0131\u015f\u0131 her ge\u00e7en g\u00fcn art\u0131yor. \u00d6zellikle Nesnelerin \u0130nterneti (IoT) teknolojileri sayesinde, ak\u0131ll\u0131 \u015fehirlerden tar\u0131ma, end\u00fcstriyel otomasyondan ki\u015fisel sa\u011fl\u0131k takibine kadar pek \u00e7ok alanda sens\u00f6rler arac\u0131l\u0131\u011f\u0131yla b\u00fcy\u00fck miktarda veri toplanmaktad\u0131r. Ancak bu ham veriler, tek ba\u015flar\u0131na bir anlam ifade etmeyebilir. \u00d6rne\u011fin, bir tarladaki topra\u011f\u0131n nem oran\u0131, bir fabrikan\u0131n \u00fcretim hatt\u0131ndaki s\u0131cakl\u0131k veya bir \u015fehirdeki hava kalitesi sens\u00f6r\u00fcnden gelen say\u0131sal de\u011ferler, bir listeye d\u00f6k\u00fcld\u00fc\u011f\u00fcnde yorumlanmas\u0131 olduk\u00e7a zordur. \u0130\u015fte bu noktada veri g\u00f6rselle\u015ftirme devreye giriyor.<\/p>\n<p>Veri g\u00f6rselle\u015ftirme, karma\u015f\u0131k veri k\u00fcmelerini grafikler, tablolar ve g\u00f6sterge panelleri (dashboardlar) arac\u0131l\u0131\u011f\u0131yla anla\u015f\u0131l\u0131r ve yorumlanabilir hale getirme s\u00fcrecidir. IoT projelerinde veri g\u00f6rselle\u015ftirmenin kritik olmas\u0131n\u0131n ba\u015fl\u0131ca nedenleri \u015funlard\u0131r:<\/p>\n<ul>\n<li><b>Anlamland\u0131rma ve \u0130\u00e7g\u00f6r\u00fc Kazan\u0131m\u0131:<\/b> G\u00f6rselle\u015ftirmeler, veri i\u00e7indeki kal\u0131plar\u0131, e\u011filimleri ve anormallikleri h\u0131zla tespit etmenizi sa\u011flar. B\u00f6ylece, ham verilerden anlaml\u0131 bilgiler ve i\u00e7g\u00f6r\u00fcler elde edebilirsiniz. \u00d6rne\u011fin, bir s\u0131cakl\u0131k sens\u00f6r\u00fcn\u00fcn verilerini bir zaman grafi\u011fi \u00fczerinde g\u00f6rmek, s\u0131cakl\u0131k dalgalanmalar\u0131n\u0131 veya ani y\u00fckseli\u015fleri kolayca fark etmenizi sa\u011flar.<\/li>\n<li><b>Ger\u00e7ek Zamanl\u0131 \u0130zleme:<\/b> Bir\u00e7ok IoT uygulamas\u0131, ger\u00e7ek zamanl\u0131 izleme gerektirir. \u00d6rne\u011fin, bir so\u011fuk zincir ta\u015f\u0131mas\u0131nda \u00fcr\u00fcnlerin s\u0131cakl\u0131\u011f\u0131n\u0131n belirli bir aral\u0131kta kal\u0131p kalmad\u0131\u011f\u0131n\u0131 an\u0131nda bilmek hayati \u00f6nem ta\u015f\u0131r. Grafana gibi ara\u00e7lar, canl\u0131 veri ak\u0131\u015f\u0131n\u0131 g\u00f6sterge panellerinde anl\u0131k olarak sunarak, durumu kontrol alt\u0131nda tutman\u0131za yard\u0131mc\u0131 olur.<\/li>\n<li><b>Problem Tespiti ve H\u0131zl\u0131 M\u00fcdahale:<\/b> G\u00f6rselle\u015ftirmeler sayesinde, sistemdeki olas\u0131 ar\u0131zalar veya istenmeyen durumlar h\u0131zla tespit edilebilir. \u00d6rne\u011fin, bir makinenin titre\u015fim seviyesinde ani bir art\u0131\u015f\u0131n grafik \u00fczerinde belirginle\u015fmesi, potansiyel bir ar\u0131zan\u0131n habercisi olabilir ve erken m\u00fcdahaleyi m\u00fcmk\u00fcn k\u0131lar.<\/li>\n<li><b>Karar Alma S\u00fcre\u00e7lerini Destekleme:<\/b> Net ve anla\u015f\u0131l\u0131r g\u00f6rseller, y\u00f6neticilerin veya operat\u00f6rlerin verilere dayal\u0131 daha bilin\u00e7li ve h\u0131zl\u0131 kararlar almas\u0131n\u0131 sa\u011flar. Performans e\u011filimlerini, kaynak kullan\u0131m\u0131n\u0131 veya \u00e7evresel ko\u015fullar\u0131 g\u00f6rselle\u015ftirmek, operasyonel verimlili\u011fi art\u0131rmak i\u00e7in \u00f6nemli bilgiler sunar.<\/li>\n<li><b>Payla\u015f\u0131m ve \u0130leti\u015fim Kolayl\u0131\u011f\u0131:<\/b> G\u00f6rselle\u015ftirilmi\u015f veriler, teknik olmayan ki\u015filerle bile kolayca payla\u015f\u0131labilir ve a\u00e7\u0131klanabilir. Bir g\u00f6sterge paneli, projenin veya sistemin genel durumunu tek bir bak\u0131\u015fta \u00f6zetleyebilir, bu da ekip i\u00e7i ileti\u015fimi ve payda\u015flarla olan bilgi al\u0131\u015fveri\u015fini basitle\u015ftirir.<\/li>\n<\/ul>\n<p>The Things Network (TTN), LoRaWAN tabanl\u0131 IoT cihazlar\u0131n\u0131zdan veri toplamak i\u00e7in harika bir platform sunar. Ancak TTN konsolu, geli\u015fmi\u015f g\u00f6rselle\u015ftirme yetenekleri a\u00e7\u0131s\u0131ndan s\u0131n\u0131rl\u0131d\u0131r. \u0130\u015fte bu noktada Grafana devreye girer. Grafana, \u00e7e\u015fitli veri kaynaklar\u0131ndan gelen verileri bir araya getirerek g\u00fc\u00e7l\u00fc ve etkile\u015fimli g\u00f6sterge panelleri olu\u015fturman\u0131z\u0131 sa\u011flayan a\u00e7\u0131k kaynakl\u0131 bir platformdur. TTN ile entegre edildi\u011finde, LoRaWAN cihazlar\u0131n\u0131zdan gelen sens\u00f6r verilerini ger\u00e7ek zamanl\u0131 grafikler, \u00f6l\u00e7erler, tablolar ve uyar\u0131larla zenginle\u015ftirebilir, b\u00f6ylece projelerinizin tam potansiyelini ortaya \u00e7\u0131karabilirsiniz. Bu entegrasyon, yaln\u0131zca veri izleme de\u011fil, ayn\u0131 zamanda veri analizi ve operasyonel verimlilik a\u00e7\u0131s\u0131ndan da size b\u00fcy\u00fck avantajlar sa\u011flayacakt\u0131r.<\/p>\n<h2>The Things Network (TTN) Veri Ak\u0131\u015f\u0131 Nas\u0131l \u00c7al\u0131\u015f\u0131r?<\/h2>\n<p>The Things Network (TTN), k\u00fcresel ve topluluk odakl\u0131 bir LoRaWAN a\u011f\u0131d\u0131r. Milyonlarca cihaz\u0131n d\u00fc\u015f\u00fck g\u00fc\u00e7 t\u00fcketimiyle uzun mesafeler \u00fczerinden veri g\u00f6ndermesine olanak tan\u0131r. TTN&#8217;in temel amac\u0131, IoT cihazlar\u0131n\u0131n internete ba\u011flant\u0131s\u0131n\u0131 kolayla\u015ft\u0131rmak ve veri toplama s\u00fcrecini basitle\u015ftirmektir. Peki, bir sens\u00f6rden TTN&#8217;e ve oradan da g\u00f6rselle\u015ftirme arac\u0131n\u0131za veri ak\u0131\u015f\u0131 nas\u0131l ger\u00e7ekle\u015fir?<\/p>\n<p>TTN veri ak\u0131\u015f\u0131n\u0131 anlamak, g\u00f6rselle\u015ftirme s\u00fcrecinizin temelini olu\u015fturur. Bu s\u00fcre\u00e7 genellikle a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 i\u00e7erir:<\/p>\n<ol>\n<li><b>IoT Cihaz\u0131 (End Device):<\/b> S\u00fcrecin ba\u015flang\u0131\u00e7 noktas\u0131d\u0131r. Bu cihazlar genellikle s\u0131cakl\u0131k, nem, konum, bas\u0131n\u00e7 gibi fiziksel ortam verilerini toplayan sens\u00f6rler i\u00e7erir. Bu cihazlar, LoRaWAN protokol\u00fcn\u00fc kullanarak verileri radyo dalgalar\u0131 arac\u0131l\u0131\u011f\u0131yla kablosuz olarak g\u00f6nderir. D\u00fc\u015f\u00fck g\u00fc\u00e7 t\u00fcketimi ve uzun menzil, LoRaWAN&#8217;\u0131n temel avantajlar\u0131d\u0131r.<\/li>\n<li><b>LoRaWAN Gateway:<\/b> IoT cihaz\u0131ndan gelen LoRa sinyallerini al\u0131r. Gateway, bu radyo frekans\u0131 sinyallerini internet \u00fczerinden TTN&#8217;in a\u011f\u0131na iletilmek \u00fczere IP paketlerine d\u00f6n\u00fc\u015ft\u00fcr\u00fcr. Bir gateway, genellikle birden fazla cihazdan gelen verileri ayn\u0131 anda dinleyebilir ve iletebilir. TTN a\u011f\u0131, topluluk gateway&#8217;leri ve ticari gateway&#8217;lerin bir kombinasyonundan olu\u015fur.<\/li>\n<li><b>The Things Network (TTN) A\u011f\u0131:<\/b>\n<ul>\n<li><b>Network Server:<\/b> Gateway&#8217;lerden gelen verileri al\u0131r, \u00e7o\u011falt\u0131lm\u0131\u015f paketleri filtreler ve LoRaWAN protokol\u00fcne uygunlu\u011funu kontrol eder. Cihaz\u0131n kimli\u011fini do\u011frular ve paketi do\u011fru uygulama sunucusuna y\u00f6nlendirir. Ayn\u0131 zamanda, downlink mesajlar\u0131n\u0131n (TTN&#8217;den cihaza giden mesajlar) y\u00f6netilmesinden de sorumludur.<\/li>\n<li><b>Application Server:<\/b> Network Server&#8217;dan gelen cihaz verilerini i\u015fler. Bu a\u015famada, cihazdan gelen ham bayt verileri okunabilir bir formata (\u00f6rne\u011fin, JSON) d\u00f6n\u00fc\u015ft\u00fcr\u00fcl\u00fcr. Bu d\u00f6n\u00fc\u015f\u00fcm, genellikle TTN&#8217;deki &#8220;Payload Formatters&#8221; (Y\u00fck Bi\u00e7imlendiriciler) arac\u0131l\u0131\u011f\u0131yla yap\u0131l\u0131r. Bu format\u00f6rler, sens\u00f6rden gelen ikili verileri s\u0131cakl\u0131k veya nem gibi anlaml\u0131 de\u011ferlere \u00e7eviren JavaScript kodlar\u0131d\u0131r.<\/li>\n<\/ul>\n<\/li>\n<li><b>Veri Entegrasyonlar\u0131 (Integrations):<\/b> TTN Application Server, i\u015flenmi\u015f ve anlaml\u0131 hale getirilmi\u015f verileri harici hizmetlere aktarmak i\u00e7in \u00e7e\u015fitli entegrasyon se\u00e7enekleri sunar. Bu entegrasyonlar, TTN verilerini depolaman\u0131z, analiz etmeniz veya g\u00f6rselle\u015ftirmeniz i\u00e7in k\u00f6pr\u00fc g\u00f6revi g\u00f6r\u00fcr. En pop\u00fcler entegrasyon t\u00fcrleri \u015funlard\u0131r:\n<ul>\n<li><b>MQTT (Message Queuing Telemetry Transport):<\/b> Hafif, publish\/subscribe tabanl\u0131 bir mesajla\u015fma protokol\u00fcd\u00fcr. TTN, uygulaman\u0131z i\u00e7in bir MQTT Broker g\u00f6revi g\u00f6r\u00fcr. Cihazlar\u0131n\u0131zdan gelen her yeni veri, belirli bir MQTT konusuna (topic) yay\u0131nlan\u0131r. Harici bir uygulama veya sunucu, bu konuyu dinleyerek ger\u00e7ek zamanl\u0131 olarak verileri \u00e7ekebilir. Bu, genellikle bir veritaban\u0131na veri yazmak veya anl\u0131k bildirimler g\u00f6ndermek i\u00e7in kullan\u0131l\u0131r.<\/li>\n<li><b>Webhooks:<\/b> Belirli bir olay (\u00f6rne\u011fin, yeni bir uplink mesaj\u0131) meydana geldi\u011finde TTN&#8217;in belirledi\u011finiz bir HTTP\/HTTPS u\u00e7 noktas\u0131na (URL) otomatik olarak bir HTTP POST iste\u011fi g\u00f6ndermesidir. Bu, sunucusuz i\u015flevleri (AWS Lambda, Azure Functions) tetiklemek veya do\u011frudan bir API&#8217;ye veri g\u00f6ndermek i\u00e7in idealdir. Webhook&#8217;lar, verileri do\u011frudan bir veritaban\u0131na yazmak i\u00e7in \u00f6zel bir sunucu taraf\u0131 mant\u0131\u011f\u0131 gerektirir.<\/li>\n<li><b>Veritaban\u0131 Entegrasyonlar\u0131:<\/b> Baz\u0131 entegrasyonlar, do\u011frudan belirli veritaban\u0131 t\u00fcrleriyle (\u00f6rne\u011fin, InfluxDB, Google Cloud Pub\/Sub) \u00e7al\u0131\u015fmak \u00fczere tasarlanm\u0131\u015ft\u0131r. Bu, verileri depolama s\u00fcrecini daha da kolayla\u015ft\u0131rabilir.<\/li>\n<\/ul>\n<\/li>\n<li><b>Veri Depolama \u00c7\u00f6z\u00fcm\u00fc (Database):<\/b> TTN&#8217;den entegrasyonlar arac\u0131l\u0131\u011f\u0131yla gelen verilerin kal\u0131c\u0131 olarak sakland\u0131\u011f\u0131 yerdir. Zaman serisi veritabanlar\u0131 (InfluxDB gibi) IoT verileri i\u00e7in olduk\u00e7a uygundur, \u00e7\u00fcnk\u00fc zaman damgal\u0131 verileri verimli bir \u015fekilde depolayabilir ve sorgulayabilirler. PostgreSQL, MySQL gibi ili\u015fkisel veritabanlar\u0131 veya MongoDB gibi NoSQL veritabanlar\u0131 da kullan\u0131labilir, ancak zaman serisi verileri i\u00e7in \u00f6zel optimizasyonlara sahip de\u011fildirler.<\/li>\n<li><b>G\u00f6rselle\u015ftirme Arac\u0131 (Grafana):<\/b> Son ad\u0131mda, Grafana gibi bir g\u00f6rselle\u015ftirme arac\u0131, veri depolama \u00e7\u00f6z\u00fcm\u00fcn\u00fczden verileri \u00e7eker ve anla\u015f\u0131l\u0131r g\u00f6sterge panelleri olu\u015fturur. Grafana, \u00e7e\u015fitli veri kaynaklar\u0131yla entegre olabilir ve g\u00fc\u00e7l\u00fc sorgulama yetenekleri sayesinde istedi\u011finiz grafik ve tablolar\u0131 kolayca tasarlaman\u0131z\u0131 sa\u011flar.<\/li>\n<\/ol>\n<p>Bu ak\u0131\u015f\u0131 anlad\u0131\u011f\u0131n\u0131zda, TTN&#8217;den Grafana&#8217;ya veri aktar\u0131m\u0131 ve g\u00f6rselle\u015ftirme s\u00fcrecinde hangi a\u015famalarda hangi ara\u00e7lara ihtiya\u00e7 duyaca\u011f\u0131n\u0131z\u0131 ve olas\u0131 sorun giderme noktalar\u0131n\u0131 daha iyi kavrayacaks\u0131n\u0131z. \u00d6zellikle MQTT ve Webhook entegrasyonlar\u0131, TTN verilerini Grafana&#8217;ya ta\u015f\u0131mak i\u00e7in en yayg\u0131n ve esnek y\u00f6ntemlerdir.<\/p>\n<h2>Grafana Nedir ve Neden TTN Verileri \u0130\u00e7in \u0130dealdir?<\/h2>\n<p>IoT projelerinde ham verileri toplamak \u00f6nemli bir ilk ad\u0131md\u0131r, ancak as\u0131l de\u011fer, bu verilerden anlaml\u0131 i\u00e7g\u00f6r\u00fcler elde etmek ve durumu ger\u00e7ek zamanl\u0131 olarak takip edebilmektir. \u0130\u015fte tam da bu noktada Grafana devreye girer. Grafana, a\u00e7\u0131k kaynakl\u0131, \u00e7ok platformlu bir analitik ve g\u00f6rselle\u015ftirme web uygulamas\u0131d\u0131r. Kullan\u0131c\u0131lar\u0131n verileri \u00e7e\u015fitli veri kaynaklar\u0131ndan \u00e7ekmesine, g\u00f6rselle\u015ftirmesine ve uyar\u0131lar ayarlamas\u0131na olanak tan\u0131r.<\/p>\n<p>Peki Grafana&#8217;y\u0131 bu kadar \u00f6zel ve TTN verilerini g\u00f6rselle\u015ftirmek i\u00e7in neden bu kadar ideal k\u0131lan nedir?<\/p>\n<ul>\n<li><b>Evrensel Veri Kayna\u011f\u0131 Deste\u011fi:<\/b> Grafana&#8217;n\u0131n en b\u00fcy\u00fck avantajlar\u0131ndan biri, \u00e7ok \u00e7e\u015fitli veri kaynaklar\u0131n\u0131 (data sources) desteklemesidir. PostgreSQL, MySQL, InfluxDB, Prometheus, Elasticsearch, Graphite, Microsoft SQL Server ve hatta AWS CloudWatch, Google Cloud Monitoring gibi bulut hizmetleri gibi onlarca farkl\u0131 veritaban\u0131 ve hizmetle do\u011frudan entegre olabilir. Bu esneklik, TTN verilerinizi depolad\u0131\u011f\u0131n\u0131z veritaban\u0131 ne olursa olsun, Grafana&#8217;ya kolayca ba\u011flayabilece\u011finiz anlam\u0131na gelir. Zaman serisi verileri i\u00e7in \u00f6zel olarak optimize edilmi\u015f InfluxDB gibi veritabanlar\u0131yla m\u00fckemmel uyum sa\u011flar.<\/li>\n<li><b>G\u00fc\u00e7l\u00fc ve Esnek G\u00f6sterge Paneli Olu\u015fturma:<\/b> Grafana, s\u00fcr\u00fckle-b\u0131rak aray\u00fcz\u00fc ile son derece \u00f6zelle\u015ftirilebilir g\u00f6sterge panelleri (dashboards) olu\u015fturman\u0131za olanak tan\u0131r. \u00c7izgi grafikler, \u00e7ubuk grafikler, pasta grafikler, \u00f6l\u00e7erler (gauge), metin panelleri, \u0131s\u0131 haritalar\u0131 ve \u00e7ok daha fazlas\u0131n\u0131 i\u00e7eren zengin bir g\u00f6rselle\u015ftirme paneli k\u00fct\u00fcphanesine sahiptir. TTN&#8217;den gelen s\u0131cakl\u0131k, nem, pil seviyesi gibi farkl\u0131 sens\u00f6r verilerini ayn\u0131 panoda farkl\u0131 g\u00f6rselle\u015ftirme t\u00fcrleriyle birle\u015ftirerek kapsaml\u0131 bir g\u00f6r\u00fcn\u00fcm elde edebilirsiniz.<\/li>\n<li><b>Ger\u00e7ek Zamanl\u0131 Veri \u0130zleme:<\/b> IoT projeleri i\u00e7in ger\u00e7ek zamanl\u0131 izleme hayati \u00f6nem ta\u015f\u0131r. Grafana, panelleri belirli aral\u0131klarla (saniyeler, dakikalar) otomatik olarak yenileyerek canl\u0131 veri ak\u0131\u015f\u0131n\u0131 g\u00f6sterir. Bu sayede, cihazlar\u0131n\u0131z\u0131n durumunu anl\u0131k olarak takip edebilir, herhangi bir anormalli\u011fi veya kritik durumu hemen fark edebilirsiniz. \u00d6rne\u011fin, bir tarladaki topra\u011f\u0131n nem oran\u0131n\u0131n d\u00fc\u015f\u00fc\u015f\u00fcn\u00fc an\u0131nda g\u00f6rerek sulama sistemini devreye sokma karar\u0131 alabilirsiniz.<\/li>\n<li><b>Geli\u015fmi\u015f Uyar\u0131 Sistemi:<\/b> Sadece verileri izlemek yeterli de\u011fildir; belirli ko\u015fullar olu\u015ftu\u011funda bilgilendirilmek de gerekir. Grafana, entegre uyar\u0131 sistemi sayesinde belirledi\u011finiz e\u015fik de\u011ferler a\u015f\u0131ld\u0131\u011f\u0131nda veya belirli bir durum meydana geldi\u011finde e-posta, Slack, PagerDuty, webhook gibi \u00e7e\u015fitli kanallar arac\u0131l\u0131\u011f\u0131yla bildirim g\u00f6nderebilir. Bu, proaktif olarak sorunlara m\u00fcdahale etmenizi ve sisteminizin g\u00fcvenilirli\u011fini art\u0131rman\u0131z\u0131 sa\u011flar. Bir sens\u00f6r\u00fcn pil seviyesi kritik seviyenin alt\u0131na d\u00fc\u015ft\u00fc\u011f\u00fcnde an\u0131nda bir bildirim almak, pil bitmeden m\u00fcdahale etmenizi sa\u011flar.<\/li>\n<li><b>A\u00e7\u0131k Kaynak ve B\u00fcy\u00fck Topluluk Deste\u011fi:<\/b> A\u00e7\u0131k kaynak bir proje olmas\u0131, Grafana&#8217;n\u0131n s\u00fcrekli olarak geli\u015ftirilmesini ve geni\u015f bir topluluk taraf\u0131ndan desteklenmesini sa\u011flar. Bu, bol miktarda dok\u00fcmantasyon, \u00f6rnekler ve sorun giderme kaynaklar\u0131na eri\u015febilece\u011finiz anlam\u0131na gelir. Ayr\u0131ca, bir\u00e7ok eklenti (plugins) ve entegrasyon mevcut olup, ihtiya\u00e7lar\u0131n\u0131za g\u00f6re Grafana&#8217;y\u0131 geni\u015fletme imkan\u0131 sunar.<\/li>\n<li><b>Kullan\u0131c\u0131 Y\u00f6netimi ve Eri\u015fim Kontrol\u00fc:<\/b> Grafana, birden fazla kullan\u0131c\u0131 ve organizasyon i\u00e7in destek sunar. Kullan\u0131c\u0131 rollerini (viewer, editor, admin) tan\u0131mlayabilir ve her kullan\u0131c\u0131n\u0131n hangi panellere veya veri kaynaklar\u0131na eri\u015febilece\u011fini kontrol edebilirsiniz. Bu, b\u00fcy\u00fck ekiplerde veya farkl\u0131 payda\u015flarla \u00e7al\u0131\u015f\u0131rken veri g\u00fcvenli\u011fini ve d\u00fczenini sa\u011flamak i\u00e7in \u00f6nemlidir.<\/li>\n<li><b>De\u011fi\u015fkenler ve Dinamik Paneller:<\/b> Grafana&#8217;n\u0131n de\u011fi\u015fkenler (variables) \u00f6zelli\u011fi, g\u00f6sterge panellerinizi daha dinamik ve etkile\u015fimli hale getirir. \u00d6rne\u011fin, bir a\u00e7\u0131l\u0131r men\u00fcden cihaz kimli\u011fini se\u00e7erek, yaln\u0131zca o cihaza ait verilerin g\u00f6sterilmesini sa\u011flayabilirsiniz. Bu, \u00f6zellikle \u00e7ok say\u0131da IoT cihaz\u0131na sahip projelerde panelleri daha kullan\u0131\u015fl\u0131 hale getirir.<\/li>\n<\/ul>\n<div class=\"interactive-element\">\n  Uzman \u0130pucu: Grafana&#8217;n\u0131n &#8220;Annotations&#8221; \u00f6zelli\u011fini kullanarak belirli olaylar\u0131 (\u00f6rne\u011fin, cihaz bak\u0131m\u0131, yaz\u0131l\u0131m g\u00fcncellemesi) grafikler \u00fczerine i\u015faretleyebilir, b\u00f6ylece veri davran\u0131\u015flar\u0131ndaki de\u011fi\u015fikliklerin nedenlerini kolayca anlayabilirsiniz. Bu, \u00f6zellikle problem te\u015fhisi ve k\u00f6k neden analizi i\u00e7in \u00e7ok de\u011ferlidir.\n<\/div>\n<p>\u00d6zetle, Grafana&#8217;n\u0131n geni\u015f veri kayna\u011f\u0131 deste\u011fi, esnek g\u00f6rselle\u015ftirme se\u00e7enekleri, ger\u00e7ek zamanl\u0131 yetenekleri ve g\u00fc\u00e7l\u00fc uyar\u0131 sistemi, TTN gibi IoT platformlar\u0131ndan gelen verileri anlaml\u0131, eyleme d\u00f6n\u00fc\u015ft\u00fcr\u00fclebilir bilgilere d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in onu ideal bir ara\u00e7 haline getirir. TTN verilerinizi Grafana ile birle\u015ftirmek, IoT projelerinizin izlenmesi, y\u00f6netimi ve geli\u015ftirilmesi a\u00e7\u0131s\u0131ndan size \u00f6nemli avantajlar sa\u011flayacakt\u0131r.<\/p>\n<h2>TTN Verilerini Grafana&#8217;ya Aktarmak \u0130\u00e7in Hangi Y\u00f6ntemler Kullan\u0131labilir?<\/h2>\n<p>The Things Network&#8217;ten (TTN) gelen sens\u00f6r verilerini Grafana&#8217;ya ta\u015f\u0131mak i\u00e7in \u00f6ncelikle bu verilerin bir veritaban\u0131nda saklanmas\u0131 gerekir. TTN, verileri do\u011frudan bir veritaban\u0131na yazmaz; bunun yerine, \u00e7e\u015fitli entegrasyonlar arac\u0131l\u0131\u011f\u0131yla harici hizmetlere aktar\u0131r. Bu b\u00f6l\u00fcmde, TTN verilerini Grafana&#8217;ya aktarmak i\u00e7in en yayg\u0131n y\u00f6ntemleri ve bu y\u00f6ntemler i\u00e7in uygun veri depolama \u00e7\u00f6z\u00fcmlerini inceleyece\u011fiz.<\/p>\n<h3>Veri Depolama \u00c7\u00f6z\u00fcm\u00fc Se\u00e7imi: Hangi Veritaban\u0131 Sizin \u0130\u00e7in Do\u011fru?<\/h3>\n<p>TTN&#8217;den gelen IoT verileri genellikle zaman serisi verileridir; yani her veri noktas\u0131 belirli bir zaman damgas\u0131yla ili\u015fkilidir. Bu t\u00fcr veriler i\u00e7in baz\u0131 veritabanlar\u0131 di\u011ferlerinden daha uygun olabilir:<\/p>\n<ul>\n<li><b>InfluxDB:<\/b> Zaman serisi veritabanlar\u0131 aras\u0131nda en pop\u00fclerlerden biridir ve IoT verileri i\u00e7in m\u00fckemmel bir se\u00e7imdir. Zaman damgal\u0131 verileri verimli bir \u015fekilde depolar, sorgular ve analiz eder. Grafana ile do\u011frudan entegrasyonu \u00e7ok kolayd\u0131r ve performans\u0131 y\u00fcksektir. D\u00fc\u015f\u00fck gecikme s\u00fcresi ile ger\u00e7ek zamanl\u0131 g\u00f6rselle\u015ftirmeler i\u00e7in idealdir.<\/li>\n<li><b>PostgreSQL (TimescaleDB eklentisi ile):<\/b> PostgreSQL, sa\u011flam ve genel ama\u00e7l\u0131 bir ili\u015fkisel veritaban\u0131d\u0131r. TimescaleDB eklentisi ile zaman serisi verileri i\u00e7in optimize edilebilir. Bu, zaten PostgreSQL kullan\u0131yorsan\u0131z veya SQL sorgulama yeteneklerini tercih ediyorsan\u0131z iyi bir se\u00e7enek olabilir.<\/li>\n<li><b>MongoDB:<\/b> NoSQL bir veritaban\u0131d\u0131r ve esnek bir \u015femaya sahiptir, bu da farkl\u0131 sens\u00f6r t\u00fcrlerinden gelen heterojen verileri depolamak i\u00e7in uygun olabilir. Ancak zaman serisi sorgular\u0131 i\u00e7in \u00f6zel optimizasyonlar gerektirebilir veya InfluxDB kadar verimli olmayabilir.<\/li>\n<li><b>MySQL:<\/b> \u0130li\u015fkisel bir veritaban\u0131d\u0131r ve daha az hacimli IoT verileri i\u00e7in kullan\u0131labilir. Ancak zaman serisi verileri i\u00e7in InfluxDB veya TimescaleDB kadar optimize de\u011fildir. B\u00fcy\u00fck veri hacimleri ve ger\u00e7ek zamanl\u0131 sorgular i\u00e7in performans sorunlar\u0131 ya\u015fanabilir.<\/li>\n<\/ul>\n<p>Bu makalede, IoT verileri i\u00e7in en yayg\u0131n ve performans\u0131 y\u00fcksek \u00e7\u00f6z\u00fcm olan <b>InfluxDB<\/b>&#8216;yi kullanarak ilerleyece\u011fiz. Grafana&#8217;n\u0131n InfluxDB ile entegrasyonu olduk\u00e7a sorunsuz ve verimlidir.<\/p>\n<h3>Ad\u0131m Ad\u0131m Kurulum: TTN Verilerini InfluxDB&#8217;ye Nas\u0131l Aktar\u0131l\u0131r?<\/h3>\n<p>TTN&#8217;den InfluxDB&#8217;ye veri aktarman\u0131n birka\u00e7 yolu vard\u0131r, ancak en esnek ve ger\u00e7ek zamanl\u0131 olanlardan biri MQTT entegrasyonunu kullanmakt\u0131r. Bu y\u00f6ntem, bir arac\u0131 yaz\u0131l\u0131m\u0131n TTN MQTT broker&#8217;\u0131na abone olmas\u0131n\u0131 ve gelen verileri InfluxDB&#8217;ye yazmas\u0131n\u0131 i\u00e7erir. Bir ba\u015fka pop\u00fcler y\u00f6ntem ise Webhook&#8217;lar arac\u0131l\u0131\u011f\u0131yla sunucusuz fonksiyonlar (\u00f6rne\u011fin AWS Lambda, Azure Functions) kullanarak verileri InfluxDB&#8217;ye g\u00f6ndermektir.<\/p>\n<p>Burada basit bir Python beti\u011fi kullanarak MQTT aboneli\u011fi ve InfluxDB&#8217;ye yazma ad\u0131mlar\u0131n\u0131 g\u00f6sterece\u011fiz. Bu senaryo i\u00e7in ihtiyac\u0131n\u0131z olanlar:<\/p>\n<ol>\n<li>The Things Stack (TTN v3) hesab\u0131n\u0131zda bir uygulama ve kay\u0131tl\u0131 bir cihaz.<\/li>\n<li>InfluxDB kurulumu (yerel veya bulut tabanl\u0131).<\/li>\n<li>Python 3 ve gerekli k\u00fct\u00fcphaneler.<\/li>\n<\/ol>\n<h4>1. InfluxDB Kurulumu ve Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>InfluxDB&#8217;yi yerel makinenize kurabilir veya InfluxDB Cloud hizmetini kullanabilirsiniz. Kurulum ad\u0131mlar\u0131 i\u015fletim sisteminize g\u00f6re de\u011fi\u015fiklik g\u00f6sterir. Kurulum tamamland\u0131ktan sonra:<\/p>\n<ul>\n<li>Bir organizasyon ve bir bucket (veritaban\u0131) olu\u015fturun. \u00d6rne\u011fin, &#8216;ttn-org&#8217; ve &#8216;ttn-data&#8217; isimlerini kullanabiliriz.<\/li>\n<li>Bir API Token olu\u015fturun. Bu token, verileri InfluxDB&#8217;ye yazmak i\u00e7in kullan\u0131lacakt\u0131r. Yazma (write) izinlerine sahip oldu\u011fundan emin olun.<\/li>\n<\/ul>\n<h4>2. TTN MQTT Entegrasyonu Bilgilerini Alma<\/h4>\n<p>TTN konsolunuzda, uygulaman\u0131z\u0131n <code>Integrations<\/code> -> <code>MQTT<\/code> b\u00f6l\u00fcm\u00fcne gidin. Burada ba\u011flant\u0131 bilgilerinizi (MQTT sunucu adresi, portu, kullan\u0131c\u0131 ad\u0131 ve API anahtar\u0131 olarak uygulama anahtar\u0131) bulacaks\u0131n\u0131z. Unutmay\u0131n, API anahtar\u0131 sizin uygulama anahtar\u0131n\u0131zd\u0131r ve <code>Application API Keys<\/code> b\u00f6l\u00fcm\u00fcnden olu\u015fturulur.<\/p>\n<h4>3. Python Beti\u011fi ile MQTT Aboneli\u011fi ve InfluxDB&#8217;ye Veri Yazma<\/h4>\n<p>A\u015fa\u011f\u0131daki Python beti\u011fi, TTN MQTT broker&#8217;\u0131na abone olur, gelen mesajlar\u0131 ayr\u0131\u015ft\u0131r\u0131r ve InfluxDB&#8217;ye yazar. Bu betik i\u00e7in <code>paho-mqtt<\/code> ve <code>influxdb-client<\/code> k\u00fct\u00fcphanelerini kurman\u0131z gerekmektedir:<\/p>\n<pre><code>\n  pip install paho-mqtt influxdb-client\n<\/pre>\n<p><\/code><\/p>\n<p>\u015eimdi beti\u011fi olu\u015ftural\u0131m. Bu betik, TTN'den gelen JSON y\u00fck\u00fcn\u00fc al\u0131p belirli alanlar\u0131 (\u00f6rne\u011fin, s\u0131cakl\u0131k, nem) InfluxDB'ye \"measurement\" olarak yazacakt\u0131r. Payload formatter'\u0131n\u0131z\u0131n verileri d\u00fczg\u00fcn bir JSON objesi olarak bi\u00e7imlendirdi\u011finden emin olun.<\/p>\n<pre><code class=\"language-python\">\nimport paho.mqtt.client as mqtt\nimport json\nimport os\nfrom influxdb_client import InfluxDBClient, Point, WriteOptions\nfrom influxdb_client.client.write_api import SYNCHRONOUS\n\n# --- TTN MQTT Ayarlar\u0131 ---\nTTN_MQTT_BROKER = \"eu1.cloud.thethings.network\" # B\u00f6lgenize g\u00f6re de\u011fi\u015febilir (eu1, us-west-1 vb.)\nTTN_MQTT_PORT = 1883\nTTN_MQTT_USERNAME = \"your-ttn-application-id@ttn\" # \u00d6rne\u011fin: \"my-smart-farm-app@ttn\"\nTTN_MQTT_PASSWORD = \"NNSEN.XXXXX.YYYYY\" # Uygulama API anahtar\u0131n\u0131z, t\u00fcm uplink haklar\u0131na sahip olmal\u0131\n\n# TTN MQTT Konusu (Topic) - T\u00fcm cihazlar i\u00e7in uplink mesajlar\u0131n\u0131 dinlemek\n# v3 i\u00e7in \"v3\/+\/devices\/+\/up\" yerine uygulama ID'nizi kullan\u0131n:\n# v3\/your-application-id\/devices\/+\/up\nTTN_MQTT_TOPIC = \"v3\/your-ttn-application-id\/devices\/+\/up\"\n\n# --- InfluxDB Ayarlar\u0131 ---\nINFLUXDB_URL = \"http:\/\/localhost:8086\" # Kendi InfluxDB adresinize g\u00f6re ayarlay\u0131n (Cloud i\u00e7in URL farkl\u0131d\u0131r)\nINFLUXDB_TOKEN = \"your-influxdb-api-token\" # InfluxDB'de olu\u015fturdu\u011funuz API token\nINFLUXDB_ORG = \"ttn-org\" # InfluxDB organizasyon ad\u0131n\u0131z\nINFLUXDB_BUCKET = \"ttn-data\" # InfluxDB bucket ad\u0131n\u0131z\n\n# InfluxDB Client'\u0131 ba\u015flatma\ninflux_client = InfluxDBClient(url=INFLUXDB_URL, token=INFLUXDB_TOKEN, org=INFLUXDB_ORG)\ninflux_write_api = influx_client.write_api(write_options=WriteOptions(batch_size=1000, flush_interval=1000, jitter_interval=1000))\n\ndef on_connect(client, userdata, flags, rc):\n    print(f\"MQTT Ba\u011fland\u0131, Kod: {rc}\")\n    client.subscribe(TTN_MQTT_TOPIC)\n    print(f\"MQTT Konusuna Abone Olundu: {TTN_MQTT_TOPIC}\")\n\ndef on_message(client, userdata, msg):\n    try:\n        payload = json.loads(msg.payload.decode('utf-8'))\n        \n        # Cihaz ID'si ve zaman damgas\u0131\n        device_id = payload['end_device_ids']['device_id']\n        received_at = payload['received_at'] # Veya payload['uplink_message']['received_at']\n        \n        # Uygulama verilerini ayr\u0131\u015ft\u0131rma (Payload Formatter taraf\u0131ndan i\u015flenmi\u015f k\u0131s\u0131m)\n        # Bu k\u0131s\u0131m, TTN'deki payload formatter'\u0131n\u0131za g\u00f6re de\u011fi\u015fecektir.\n        # \u00d6rne\u011fin, a\u015fa\u011f\u0131daki gibi \"decoded_payload\" alan\u0131 olabilir:\n        if 'uplink_message' in payload and 'decoded_payload' in payload['uplink_message']:\n            decoded_payload = payload['uplink_message']['decoded_payload']\n            \n            # InfluxDB'ye yaz\u0131lacak Point (veri noktas\u0131) olu\u015fturma\n            point = Point(\"ttn_sensor_data\").tag(\"device_id\", device_id).time(received_at)\n            \n            # decoded_payload i\u00e7indeki her bir anahtar\/de\u011fer \u00e7iftini alan olarak ekle\n            for key, value in decoded_payload.items():\n                # Sadece say\u0131sal de\u011ferleri veya istedi\u011finiz belirli tipleri ekleyin\n                if isinstance(value, (int, float)):\n                    point.field(key, value)\n                elif isinstance(value, bool):\n                    point.field(key, value)\n                # \u0130sterseniz di\u011fer veri tiplerini de i\u015fleyebilirsiniz (\u00f6rn: string, array)\n            \n            if point.has_fields(): # En az bir alan varsa yaz\n                influx_write_api.write(bucket=INFLUXDB_BUCKET, record=point)\n                print(f\"Veri InfluxDB'ye Yaz\u0131ld\u0131: Cihaz '{device_id}', Payload: {decoded_payload}\")\n            else:\n                print(f\"Yaz\u0131lacak ge\u00e7erli alan bulunamad\u0131: Cihaz '{device_id}'\")\n        else:\n            print(f\"Uplink mesaj\u0131nda 'decoded_payload' bulunamad\u0131: Cihaz '{device_id}'\")\n\n    except json.JSONDecodeError:\n        print(\"Ge\u00e7ersiz JSON payload:\", msg.payload)\n    except Exception as e:\n        print(f\"Mesaj i\u015flenirken hata olu\u015ftu: {e}\")\n\n# MQTT Client'\u0131 ba\u015flatma\nmqtt_client = mqtt.Client()\nmqtt_client.username_pw_set(TTN_MQTT_USERNAME, TTN_MQTT_PASSWORD)\nmqtt_client.on_connect = on_connect\nmqtt_client.on_message = on_message\n\nmqtt_client.connect(TTN_MQTT_BROKER, TTN_MQTT_PORT, 60)\n\n# Non-blocking d\u00f6ng\u00fcy\u00fc ba\u015flat\nmqtt_client.loop_forever()\n<\/pre>\n<p><\/code><\/p>\n<div class=\"interactive-element\">\n  Uzman \u0130pucu: \u00dcretim ortamlar\u0131nda, bu Python beti\u011fini bir sunucu (\u00f6rne\u011fin bir Raspberry Pi) \u00fczerinde bir sistem servisi olarak \u00e7al\u0131\u015ft\u0131rman\u0131z veya sunucusuz bir bulut fonksiyonu (AWS Lambda, Azure Function) olarak da\u011f\u0131tman\u0131z \u00f6nerilir. B\u00f6ylece s\u00fcrekli \u00e7al\u0131\u015f\u0131r durumda kal\u0131r ve verileri kesintisiz olarak InfluxDB'ye aktar\u0131r. G\u00fcvenlik i\u00e7in API anahtarlar\u0131n\u0131z\u0131 do\u011frudan koda g\u00f6mmek yerine ortam de\u011fi\u015fkenleri kullan\u0131n.\n<\/div>\n<p>Bu beti\u011fi \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, TTN'deki cihazlar\u0131n\u0131zdan gelen her uplink mesaj\u0131 InfluxDB'ye yaz\u0131lacakt\u0131r. \u015eimdi s\u0131ra Grafana'da bu verileri g\u00f6rselle\u015ftirmeye geldi.<\/p>\n<h2>Grafana'da TTN Verileri \u0130\u00e7in \u0130lk G\u00f6sterge Paneli Nas\u0131l Olu\u015fturulur?<\/h2>\n<p>TTN verilerini InfluxDB'ye ba\u015far\u0131yla aktard\u0131ktan sonra, s\u0131ra bu verileri Grafana'da g\u00f6rselle\u015ftirmeye gelir. Grafana, g\u00fc\u00e7l\u00fc ve esnek bir platform oldu\u011fu i\u00e7in, verilerinizi \u00e7e\u015fitli \u015fekillerde sunarak anlaml\u0131 i\u00e7g\u00f6r\u00fcler elde etmenizi sa\u011flar. Bu b\u00f6l\u00fcmde, Grafana'y\u0131 InfluxDB'ye ba\u011flamay\u0131 ve ilk g\u00f6sterge panelinizi (dashboard) olu\u015fturmay\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz.<\/p>\n<h3>1. Grafana Kurulumu ve Ba\u015flat\u0131lmas\u0131<\/h3>\n<p>E\u011fer Grafana'y\u0131 hen\u00fcz kurmad\u0131ysan\u0131z, i\u015fletim sisteminize uygun kurulum talimatlar\u0131n\u0131 takip edebilirsiniz (Docker, Debian\/Ubuntu, CentOS\/RHEL, Windows vb.). Kurulumdan sonra Grafana genellikle <code>http:\/\/localhost:3000<\/code> adresinde \u00e7al\u0131\u015fmaya ba\u015flar. Varsay\u0131lan kullan\u0131c\u0131 ad\u0131 <code>admin<\/code> ve parola <code>admin<\/code>'dir. \u0130lk giri\u015fte parolan\u0131z\u0131 de\u011fi\u015ftirmeniz istenecektir.<\/p>\n<h3>2. Grafana Veritaban\u0131 Ba\u011flant\u0131s\u0131 Nas\u0131l Yap\u0131l\u0131r? (InfluxDB \u00d6rne\u011fi)<\/h3>\n<p>Grafana'n\u0131n TTN verilerinize eri\u015febilmesi i\u00e7in InfluxDB'yi bir veri kayna\u011f\u0131 (Data Source) olarak eklemeniz gerekir:<\/p>\n<ol>\n<li>Grafana ana ekran\u0131nda sol men\u00fcden <code>Connections<\/code> -> <code>Data sources<\/code> (veya di\u015fli simgesi <code>Configuration<\/code> -> <code>Data sources<\/code>) se\u00e7ene\u011fine t\u0131klay\u0131n.<\/li>\n<li><code>Add new data source<\/code> butonuna t\u0131klay\u0131n.<\/li>\n<li>Arama \u00e7ubu\u011funa <code>InfluxDB<\/code> yaz\u0131n ve se\u00e7in.<\/li>\n<li>InfluxDB veri kayna\u011f\u0131 ayarlar\u0131 sayfas\u0131nda a\u015fa\u011f\u0131daki bilgileri girin:\n<ul>\n<li><b>Name:<\/b> Veri kayna\u011f\u0131n\u0131za anlaml\u0131 bir isim verin, \u00f6rne\u011fin <code>TTN-InfluxDB<\/code>.<\/li>\n<li><b>Query Language:<\/b> E\u011fer InfluxDB v2 kullan\u0131yorsan\u0131z <code>Flux<\/code>, InfluxDB v1 kullan\u0131yorsan\u0131z <code>InfluxQL<\/code> se\u00e7in. Bu makaledeki Python beti\u011fi v2 uyumlu oldu\u011fu i\u00e7in <code>Flux<\/code>'u se\u00e7meliyiz.<\/li>\n<li><b>URL:<\/b> InfluxDB sunucunuzun URL'sini girin (\u00f6rne\u011fin, <code>http:\/\/localhost:8086<\/code> veya InfluxDB Cloud i\u00e7in sa\u011flanan URL).<\/li>\n<li><b>Auth:<\/b> Genellikle kimlik do\u011frulama gereklidir. <code>Token<\/code> se\u00e7ene\u011fini i\u015faretleyin.<\/li>\n<li><b>Token:<\/b> InfluxDB'de olu\u015fturdu\u011funuz API Token'\u0131 buraya yap\u0131\u015ft\u0131r\u0131n.<\/li>\n<li><b>Organization:<\/b> InfluxDB organizasyon ad\u0131n\u0131z\u0131 girin (\u00f6rne\u011fin, <code>ttn-org<\/code>).<\/li>\n<li><b>Default Bucket:<\/b> Verilerinizi yazd\u0131\u011f\u0131n\u0131z InfluxDB bucket ad\u0131n\u0131 girin (\u00f6rne\u011fin, <code>ttn-data<\/code>).<\/li>\n<\/ul>\n<\/li>\n<li>Ayarlar\u0131 girdikten sonra <code>Save & test<\/code> butonuna t\u0131klay\u0131n. \"Data source is working\" veya benzeri bir ba\u015far\u0131 mesaj\u0131 g\u00f6rmelisiniz. Bu, Grafana'n\u0131n InfluxDB'ye ba\u015far\u0131yla ba\u011fland\u0131\u011f\u0131 anlam\u0131na gelir.<\/li>\n<\/ol>\n<h3>3. Ger\u00e7ek Zamanl\u0131 Paneller ve Uyar\u0131lar Nas\u0131l Yap\u0131land\u0131r\u0131l\u0131r?<\/h3>\n<p>Veri kayna\u011f\u0131 ba\u011flant\u0131s\u0131 tamamland\u0131ktan sonra, ilk g\u00f6sterge panelinizi olu\u015fturmaya haz\u0131rs\u0131n\u0131z:<\/p>\n<ol>\n<li>Sol men\u00fcden <code>Dashboards<\/code> -> <code>New dashboard<\/code> (veya <code>Dashboards<\/code> -> <code>+ New dashboard<\/code>) se\u00e7ene\u011fine t\u0131klay\u0131n.<\/li>\n<li><code>Add new panel<\/code> se\u00e7ene\u011fine t\u0131klay\u0131n.<\/li>\n<li><b>Veri Sorgulama:<\/b>\n<ul>\n<li><code>Data source<\/code> a\u00e7\u0131l\u0131r men\u00fcs\u00fcnden az \u00f6nce ekledi\u011finiz <code>TTN-InfluxDB<\/code> veri kayna\u011f\u0131n\u0131 se\u00e7in.<\/li>\n<li>E\u011fer Flux kullan\u0131yorsan\u0131z, bir Flux sorgusu yazman\u0131z gerekecektir. \u00d6rne\u011fin, belirli bir cihaz\u0131n s\u0131cakl\u0131k verilerini almak i\u00e7in a\u015fa\u011f\u0131daki gibi bir sorgu kullanabilirsiniz:\n<pre><code class=\"language-flux\">\nfrom(bucket: \"ttn-data\")\n  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n  |> filter(fn: (r) => r._measurement == \"ttn_sensor_data\")\n  |> filter(fn: (r) => r.device_id == \"your-device-id\") \/\/ Cihaz ID'nizi buraya yaz\u0131n\n  |> filter(fn: (r) => r._field == \"temperature\") \/\/ S\u0131cakl\u0131k alan\u0131n\u0131 se\u00e7in\n  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n  |> yield(name: \"mean\")\n                <\/pre>\n<p><\/code><\/p>\n<p><code>your-device-id<\/code> ve <code>temperature<\/code> yerine kendi cihaz ID'nizi ve sens\u00f6r verinizin alan ad\u0131n\u0131 yazmal\u0131s\u0131n\u0131z. <code>v.timeRangeStart<\/code>, <code>v.timeRangeStop<\/code> ve <code>v.windowPeriod<\/code> Grafana'n\u0131n otomatik olarak zaman aral\u0131\u011f\u0131n\u0131 y\u00f6netmesini sa\u011flayan dahili de\u011fi\u015fkenlerdir.<\/p>\n<\/li>\n<li>Sorgunuzu \u00e7al\u0131\u015ft\u0131rd\u0131ktan sonra, a\u015fa\u011f\u0131da bir grafik \u00f6nizlemesi g\u00f6rmelisiniz.<\/li>\n<\/ul>\n<\/li>\n<li><b>Panel T\u00fcr\u00fc ve Ayarlar\u0131:<\/b>\n<ul>\n<li>Sa\u011fdaki <code>Panel options<\/code> b\u00f6l\u00fcm\u00fcnden g\u00f6rselle\u015ftirme t\u00fcr\u00fcn\u00fc se\u00e7in. S\u0131cakl\u0131k gibi zaman serisi verileri i\u00e7in <code>Graph<\/code> (\u00c7izgi Grafik) veya anl\u0131k de\u011ferler i\u00e7in <code>Gauge<\/code> (\u00d6l\u00e7er) panelini se\u00e7ebilirsiniz.<\/li>\n<li>Se\u00e7ti\u011finiz panel t\u00fcr\u00fcne g\u00f6re ek ayarlar\u0131 yap\u0131land\u0131r\u0131n (renkler, eksenler, birimler, ba\u015fl\u0131k vb.). \u00d6rne\u011fin, s\u0131cakl\u0131k i\u00e7in birim olarak <code>Celsius (\u00b0C)<\/code> se\u00e7ebilirsiniz.<\/li>\n<li>Panel ba\u015fl\u0131\u011f\u0131n\u0131 girin (\u00f6rne\u011fin, \"Cihaz A S\u0131cakl\u0131k De\u011feri\").<\/li>\n<\/ul>\n<\/li>\n<li><b>Kaydetme:<\/b> Panelinizi kaydetmek i\u00e7in sa\u011f \u00fcstteki <code>Save<\/code> butonuna t\u0131klay\u0131n ve panonuza bir isim verin (\u00f6rne\u011fin, \"TTN Ak\u0131ll\u0131 Tar\u0131m Panosu\").<\/li>\n<\/ol>\n<h4>Vaka Analizi: Ak\u0131ll\u0131 Tar\u0131m Sens\u00f6r Verileri<\/h4>\n<p>Bir ak\u0131ll\u0131 tar\u0131m projeniz oldu\u011funu varsayal\u0131m. Tarlan\u0131za yerle\u015ftirilmi\u015f LoRaWAN sens\u00f6rleri, topra\u011f\u0131n nemini, hava s\u0131cakl\u0131\u011f\u0131n\u0131 ve ortam nemini \u00f6l\u00e7\u00fcyor. Bu veriler TTN \u00fczerinden InfluxDB'ye ak\u0131yor. Grafana'da bu verileri \u015fu \u015fekilde g\u00f6rselle\u015ftirebiliriz:<\/p>\n<ol>\n<li><b>S\u0131cakl\u0131k Grafi\u011fi:<\/b> Bir <code>Graph<\/code> paneli ekleyerek belirli bir cihaz\u0131n son 24 saatteki s\u0131cakl\u0131k de\u011fi\u015fimini \u00e7izen bir \u00e7izgi grafik olu\u015fturabilirsiniz. Sorgunuzda <code>_field == \"temperature\"<\/code> filtresini kullan\u0131n.<\/li>\n<li><b>Toprak Nemi \u00d6l\u00e7eri:<\/b> Bir <code>Gauge<\/code> (\u00d6l\u00e7er) paneli ekleyerek anl\u0131k toprak nemi de\u011ferini g\u00f6sterin. Bu panelde renk aral\u0131klar\u0131 belirleyerek (\u00f6rn: 0-30% k\u0131rm\u0131z\u0131, 30-70% sar\u0131, 70-100% ye\u015fil) topra\u011f\u0131n kuru, orta veya yeterince nemli olup olmad\u0131\u011f\u0131n\u0131 an\u0131nda g\u00f6rebilirsiniz. Sorgunuzda <code>_field == \"soil_moisture\"<\/code> filtresini kullan\u0131n ve <code>last()<\/code> fonksiyonu ile son de\u011feri al\u0131n.<\/li>\n<li><b>Pil Seviyesi Tablosu:<\/b> Birden fazla cihaz\u0131n\u0131z varsa, bir <code>Table<\/code> paneli ekleyerek t\u00fcm cihazlar\u0131n anl\u0131k pil seviyelerini ve son veri g\u00f6nderim zamanlar\u0131n\u0131 listeleyebilirsiniz. Bu, hangi cihaz\u0131n pilinin de\u011fi\u015fmesi gerekti\u011fini kolayca tespit etmenizi sa\u011flar.<\/li>\n<\/ol>\n<p>Bu panelleri olu\u015fturduktan sonra, g\u00f6sterge paneliniz tarla ko\u015fullar\u0131na ili\u015fkin kapsaml\u0131 ve ger\u00e7ek zamanl\u0131 bir g\u00f6r\u00fcn\u00fcm sunacakt\u0131r.<\/p>\n<h4>Uyar\u0131 Sistemi Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>Grafana'n\u0131n uyar\u0131 sistemi, belirli ko\u015fullar kar\u015f\u0131land\u0131\u011f\u0131nda sizi bilgilendirmesi a\u00e7\u0131s\u0131ndan \u00e7ok de\u011ferlidir:<\/p>\n<ol>\n<li>Mevcut bir paneli d\u00fczenleyin veya yeni bir panel ekleyin.<\/li>\n<li>Panel ayarlar\u0131nda, sol tarafta <code>Alert<\/code> sekmesine t\u0131klay\u0131n.<\/li>\n<li><code>Create alert<\/code> butonuna t\u0131klay\u0131n.<\/li>\n<li><b>Alert rules:<\/b>\n<ul>\n<li>Bir uyar\u0131 kural\u0131 ismi verin (\u00f6rn: \"Y\u00fcksek S\u0131cakl\u0131k Uyar\u0131s\u0131\").<\/li>\n<li><code>Condition<\/code> b\u00f6l\u00fcm\u00fcnde, hangi sorgunun hangi e\u015fik de\u011ferini tetikleyece\u011fini belirtin. \u00d6rne\u011fin, \"A sorgusundan gelen de\u011fer 30\u00b0C'nin \u00fczerine \u00e7\u0131karsa\" \u015feklinde bir kural belirleyebilirsiniz.<\/li>\n<li><code>No data \/ Error handling<\/code> k\u0131sm\u0131nda, veri gelmedi\u011finde veya hata olu\u015ftu\u011funda nas\u0131l davran\u0131laca\u011f\u0131n\u0131 se\u00e7in (\u00f6rn: \"No Data\", \"Alerting\").<\/li>\n<\/ul>\n<\/li>\n<li><b>Notification channels:<\/b>\n<ul>\n<li>Uyar\u0131lar\u0131n g\u00f6nderilece\u011fi bildirim kanallar\u0131n\u0131 (e-posta, Slack, webhook vb.) Grafana'n\u0131n <code>Alerting<\/code> -> <code>Notification channels<\/code> b\u00f6l\u00fcm\u00fcnden yap\u0131land\u0131r\u0131n.<\/li>\n<li>Kural\u0131n\u0131zda bu kanal\u0131 se\u00e7erek uyar\u0131lar\u0131 istedi\u011finiz yere g\u00f6nderin.<\/li>\n<\/ul>\n<\/li>\n<li>Uyar\u0131y\u0131 kaydedin. Art\u0131k s\u0131cakl\u0131k belirlenen e\u015fi\u011fi a\u015ft\u0131\u011f\u0131nda bilgilendirileceksiniz.<\/li>\n<\/ol>\n<p>Bu ad\u0131mlarla, TTN'den gelen sens\u00f6r verilerini Grafana'da canl\u0131 olarak izleyebilir, anlaml\u0131 g\u00f6rseller olu\u015fturabilir ve kritik durumlar i\u00e7in otomatik uyar\u0131lar ayarlayabilirsiniz. Bu, IoT projelerinizin y\u00f6netimini b\u00fcy\u00fck \u00f6l\u00e7\u00fcde kolayla\u015ft\u0131racak ve veri odakl\u0131 karar alman\u0131z\u0131 sa\u011flayacakt\u0131r.<\/p>\n<h2>TTN ve Grafana Entegrasyonunda \u0130leri D\u00fczey \u0130pu\u00e7lar\u0131 ve En \u0130yi Uygulamalar<\/h2>\n<p>TTN ve Grafana entegrasyonunun temel ad\u0131mlar\u0131n\u0131 anlad\u0131k. \u015eimdi, bu kurulumu daha verimli, g\u00fcvenli ve \u00f6l\u00e7eklenebilir hale getirmek i\u00e7in baz\u0131 ileri d\u00fczey ipu\u00e7lar\u0131 ve en iyi uygulamalara g\u00f6z atal\u0131m. Bu \u00f6neriler, \u00f6zellikle daha b\u00fcy\u00fck veya kritik IoT projeleri \u00fczerinde \u00e7al\u0131\u015fan deneyimli kullan\u0131c\u0131lar i\u00e7in faydal\u0131 olacakt\u0131r.<\/p>\n<h3>1. Veri Modelleme ve Optimalli\u011fi<\/h3>\n<p>InfluxDB'ye veri yazarken, veri modellemenizin sorgu performans\u0131n\u0131 do\u011frudan etkiledi\u011fini unutmay\u0131n. Her sens\u00f6r verisi i\u00e7in ayr\u0131 bir \"measurement\" (\u00f6l\u00e7\u00fcm) yerine, ayn\u0131 cihazdan gelen benzer verileri tek bir \u00f6l\u00e7\u00fcm alt\u0131nda \"field\" (alan) olarak gruplamak daha iyidir (\u00f6rne\u011fin, <code>ttn_sensor_data<\/code> \u00f6l\u00e7\u00fcm\u00fc alt\u0131nda <code>temperature<\/code>, <code>humidity<\/code> gibi alanlar). Cihaz ID'si gibi filtreleme i\u00e7in kullanaca\u011f\u0131n\u0131z bilgileri \"tag\" (etiket) olarak eklemek, sorgular\u0131 h\u0131zland\u0131r\u0131r.<\/p>\n<pre><code class=\"language-flux\">\n\/\/ Y\u00fcksek kardinaliteli tag'lerden ka\u00e7\u0131nmak ve sadece gerekli tag'leri kullanmak performans\u0131 art\u0131r\u0131r.\nfrom(bucket: \"ttn-data\")\n  |> range(start: -1h)\n  |> filter(fn: (r) => r._measurement == \"ttn_sensor_data\")\n  |> filter(fn: (r) => r.device_id == \"sensor_001\")\n  |> group(columns: [\"_field\", \"device_id\"])\n  |> mean()\n<\/pre>\n<p><\/code><\/p>\n<h3>2. Sorgu Optimizasyonu ve Veri Resampling<\/h3>\n<p>Grafana panelleri, her yenilendi\u011finde veritaban\u0131ndan veri \u00e7eker. Y\u00fcksek frekansl\u0131 verilerle \u00e7al\u0131\u015f\u0131rken veya uzun zaman aral\u0131klar\u0131n\u0131 g\u00f6r\u00fcnt\u00fclerken performans sorunlar\u0131 ya\u015fayabilirsiniz. Bu durumda:<\/p>\n<ul>\n<li><b>Veri Resampling (\u00d6rnekleme):<\/b> InfluxDB veya di\u011fer zaman serisi veritabanlar\u0131, b\u00fcy\u00fck veri setlerini daha k\u00fc\u00e7\u00fck zaman aral\u0131klar\u0131nda ortalama, toplam gibi fonksiyonlarla \u00f6rnekleme yetene\u011fine sahiptir. Grafana sorgular\u0131n\u0131zda <code>aggregateWindow()<\/code> gibi fonksiyonlar\u0131 kullanarak daha az veri noktas\u0131 \u00e7ekerek performans\u0131 art\u0131r\u0131n. \u00d6rne\u011fin, 1 dakikal\u0131k aral\u0131klarla gelen verileri 15 dakikal\u0131k ortalamalara indirgeyebilirsiniz.<\/li>\n<li><b>Zaman Aral\u0131\u011f\u0131 Se\u00e7imi:<\/b> G\u00f6sterge panellerinizdeki varsay\u0131lan zaman aral\u0131\u011f\u0131n\u0131 (\u00f6rne\u011fin, \"Last 6 hours\" yerine \"Last 1 hour\") daha k\u0131sa tutmak, panellerin daha h\u0131zl\u0131 y\u00fcklenmesini sa\u011flar.<\/li>\n<\/ul>\n<h3>3. G\u00fcvenlik En \u0130yi Uygulamalar\u0131<\/h3>\n<p>Verilerinizi ve altyap\u0131n\u0131z\u0131 g\u00fcvende tutmak esast\u0131r:<\/p>\n<ul>\n<li><b>API Anahtarlar\u0131 ve Token'lar:<\/b> TTN uygulama anahtar\u0131n\u0131z\u0131, InfluxDB token'\u0131n\u0131z\u0131 ve Grafana API anahtarlar\u0131n\u0131z\u0131 do\u011frudan koda g\u00f6mmeyin. Ortam de\u011fi\u015fkenleri, s\u0131r y\u00f6netimi ara\u00e7lar\u0131 (\u00f6rne\u011fin, HashiCorp Vault, Kubernetes Secrets) veya g\u00fcvenli yap\u0131land\u0131rma dosyalar\u0131 kullan\u0131n.<\/li>\n<li><b>A\u011f G\u00fcvenli\u011fi:<\/b> InfluxDB ve Grafana sunucular\u0131n\u0131za yaln\u0131zca g\u00fcvenli a\u011flardan (VPN, \u00f6zel IP adresleri) eri\u015fimi k\u0131s\u0131tlay\u0131n. Gerekirse g\u00fcvenlik duvar\u0131 (firewall) kurallar\u0131 uygulay\u0131n.<\/li>\n<li><b>Kullan\u0131c\u0131 Yetkilendirmesi:<\/b> Grafana'da kullan\u0131c\u0131lar\u0131 rol tabanl\u0131 yetkilendirme (RBAC) ile y\u00f6netin. Herkese y\u00f6netici yetkisi vermek yerine, yaln\u0131zca ihtiya\u00e7 duyduklar\u0131 eri\u015fimi sa\u011flay\u0131n (\u00f6rne\u011fin, sadece g\u00f6r\u00fcnt\u00fcleyici rolleri).<\/li>\n<li><b>HTTPS Kullan\u0131m\u0131:<\/b> Grafana web aray\u00fcz\u00fcn\u00fcze HTTPS \u00fczerinden eri\u015fimi zorunlu k\u0131l\u0131n. TTN entegrasyonlar\u0131n\u0131zda da HTTPS webhook URL'leri kullan\u0131n.<\/li>\n<\/ul>\n<div class=\"interactive-element\">\n  Uzman \u0130pucu: InfluxDB Cloud veya Grafana Cloud gibi y\u00f6netilen hizmetleri kullanarak altyap\u0131 y\u00f6netimi y\u00fck\u00fcn\u00fc azaltabilir, g\u00fcvenlik g\u00fcncellemeleri ve yedeklemeler konusunda uzman deste\u011fi alabilirsiniz. Bu, \u00f6zellikle k\u00fc\u00e7\u00fck ekipler veya yo\u011fun projeler i\u00e7in maliyet-etkin bir \u00e7\u00f6z\u00fcm olabilir.\n<\/div>\n<h3>4. \u00d6l\u00e7eklenebilirlik \u0130\u00e7in Mimariler<\/h3>\n<p>Tek bir Python beti\u011fi ba\u015flang\u0131\u00e7 i\u00e7in yeterli olsa da, binlerce cihazdan veri alan b\u00fcy\u00fck \u00f6l\u00e7ekli IoT projelerinde daha robust \u00e7\u00f6z\u00fcmler gerekebilir:<\/p>\n<ul>\n<li><b>Mesaj Kuyruklar\u0131:<\/b> TTN'den gelen MQTT mesajlar\u0131n\u0131 do\u011frudan InfluxDB'ye yazmak yerine, bir mesaj kuyru\u011funa (\u00f6rne\u011fin, Kafka, RabbitMQ, AWS SQS) iletmeyi d\u00fc\u015f\u00fcnebilirsiniz. Bu, veri al\u0131m\u0131n\u0131 ve depolamay\u0131 birbirinden ay\u0131rarak sisteminizin daha esnek ve hata toleransl\u0131 olmas\u0131n\u0131 sa\u011flar. Mesaj kuyru\u011fundan verileri okuyup InfluxDB'ye yazan birden fazla i\u015fleyici (consumer) servisi \u00e7al\u0131\u015ft\u0131rabilirsiniz.<\/li>\n<li><b>Sunucusuz Mimariler (Serverless):<\/b> TTN Webhook'lar\u0131n\u0131 do\u011frudan AWS Lambda, Azure Functions veya Google Cloud Functions gibi sunucusuz i\u015flevlere ba\u011flayarak verileri i\u015fleyebilirsiniz. Bu i\u015flevler, gelen verileri ayr\u0131\u015ft\u0131r\u0131p InfluxDB'ye yazabilir. Bu yakla\u015f\u0131m, altyap\u0131 y\u00f6netimi y\u00fck\u00fcn\u00fc azalt\u0131r ve otomatik \u00f6l\u00e7eklenme sa\u011flar.<\/li>\n<li><b>Y\u00fcksek Eri\u015filebilirlik:<\/b> Kritik uygulamalar i\u00e7in Grafana ve InfluxDB'yi y\u00fcksek eri\u015filebilirlikli (High Availability - HA) k\u00fcmeler halinde da\u011f\u0131tmay\u0131 d\u00fc\u015f\u00fcn\u00fcn. Bu, bir sunucu ar\u0131zas\u0131 durumunda bile veri ak\u0131\u015f\u0131n\u0131n ve g\u00f6rselle\u015ftirmenin kesintisiz devam etmesini sa\u011flar.<\/li>\n<\/ul>\n<h3>5. Geli\u015fmi\u015f Grafana \u00d6zellikleri<\/h3>\n<ul>\n<li><b>De\u011fi\u015fkenler (Variables):<\/b> G\u00f6sterge panellerinizi daha dinamik hale getirmek i\u00e7in de\u011fi\u015fkenleri kullan\u0131n. \u00d6rne\u011fin, bir a\u00e7\u0131l\u0131r men\u00fcden cihaz ID'si se\u00e7erek t\u00fcm panellerin sadece o cihaza ait verileri g\u00f6stermesini sa\u011flayabilirsiniz. Bu, karma\u015f\u0131k panolar\u0131 daha kullan\u0131\u015fl\u0131 hale getirir.<\/li>\n<li><b>Paneller Aras\u0131 Etkile\u015fim:<\/b> Paneller aras\u0131nda ba\u011flant\u0131lar olu\u015fturarak (\u00f6rne\u011fin, bir cihaz listesi panelinden t\u0131klanan bir cihaz\u0131n detay paneline gitmek) kullan\u0131c\u0131 deneyimini zenginle\u015ftirebilirsiniz.<\/li>\n<li><b>API ve Entegrasyonlar:<\/b> Grafana'n\u0131n g\u00fc\u00e7l\u00fc API'sini kullanarak g\u00f6sterge panelleri olu\u015fturma, y\u00f6netme ve otomatikle\u015ftirebilirsiniz. Ayr\u0131ca, di\u011fer izleme ve y\u00f6netim ara\u00e7lar\u0131yla entegre edebilirsiniz.<\/li>\n<\/ul>\n<p>Bu ileri d\u00fczey ipu\u00e7lar\u0131n\u0131 uygulayarak TTN ve Grafana entegrasyonunuzu daha sa\u011flam, verimli ve g\u00fcvenli hale getirebilir, IoT projelerinizden elde etti\u011finiz de\u011feri maksimuma \u00e7\u0131karabilirsiniz. S\u00fcrekli \u00f6\u011frenmeye ve yeni teknolojileri ke\u015ffetmeye a\u00e7\u0131k olmak, bu alandaki ba\u015far\u0131n\u0131z\u0131n anahtar\u0131d\u0131r.<\/p>\n<h2>Sonu\u00e7: IoT Verilerinden Anlaml\u0131 Bilgiler \u00c7\u0131karmak<\/h2>\n<p>Nesnelerin \u0130nterneti (IoT) teknolojilerinin hayat\u0131m\u0131z\u0131n her alan\u0131na n\u00fcfuz etti\u011fi bu d\u00f6nemde, sens\u00f6rlerden toplanan b\u00fcy\u00fck veri y\u0131\u011f\u0131nlar\u0131n\u0131 anlaml\u0131 ve eyleme d\u00f6n\u00fc\u015ft\u00fcr\u00fclebilir bilgilere d\u00f6n\u00fc\u015ft\u00fcrmek, projelerin ba\u015far\u0131s\u0131 i\u00e7in vazge\u00e7ilmez bir gereklilik haline gelmi\u015ftir. Bu makale boyunca, The Things Network (TTN) gibi g\u00fc\u00e7l\u00fc bir LoRaWAN platformundan gelen ham verileri, Grafana'n\u0131n e\u015fsiz g\u00f6rselle\u015ftirme yetenekleriyle nas\u0131l birle\u015ftirebilece\u011fimizi ayr\u0131nt\u0131l\u0131 bir \u015fekilde inceledik. TTN'in veri ak\u0131\u015f mekanizmas\u0131ndan ba\u015flayarak, MQTT entegrasyonu ve InfluxDB veri taban\u0131 kullan\u0131m\u0131yla ger\u00e7ek zamanl\u0131 veri aktar\u0131m\u0131n\u0131, ard\u0131ndan Grafana'da g\u00f6sterge panelleri olu\u015fturma ve uyar\u0131 sistemlerini yap\u0131land\u0131rma ad\u0131mlar\u0131n\u0131 ad\u0131m ad\u0131m ele ald\u0131k.<\/p>\n<p>G\u00f6rselle\u015ftirmelerin g\u00fcc\u00fc, karma\u015f\u0131k say\u0131sal de\u011ferleri okunabilir grafiklere ve \u00f6l\u00e7erlere d\u00f6n\u00fc\u015ft\u00fcrerek, mevcut durumu an\u0131nda anlamam\u0131z\u0131 ve potansiyel sorunlar\u0131 proaktif bir \u015fekilde tespit etmemizi sa\u011flar. Bir ak\u0131ll\u0131 tar\u0131m senaryosu \u00fczerinden de g\u00f6rd\u00fc\u011f\u00fcm\u00fcz gibi, s\u0131cakl\u0131k de\u011fi\u015fimlerini, toprak nemini veya cihaz pil seviyelerini canl\u0131 olarak izlemek, operasyonel verimlili\u011fi art\u0131rman\u0131n ve kaynaklar\u0131 daha etkin y\u00f6netmenin kap\u0131lar\u0131n\u0131 aralar. Grafana'n\u0131n geni\u015f veri kayna\u011f\u0131 deste\u011fi, esnek panel se\u00e7enekleri ve g\u00fc\u00e7l\u00fc uyar\u0131 sistemi, TTN ile birle\u015fti\u011finde, IoT projelerinize yeni bir boyut kazand\u0131r\u0131r.<\/p>\n<p>\u0130leri d\u00fczey ipu\u00e7lar\u0131 ve en iyi uygulamalar b\u00f6l\u00fcm\u00fcnde, veri modelleme, sorgu optimizasyonu, g\u00fcvenlik \u00f6nlemleri ve \u00f6l\u00e7eklenebilir mimariler gibi konulara de\u011finerek, projenizi daha sa\u011flam ve gelece\u011fe haz\u0131r hale getirme yollar\u0131n\u0131 g\u00f6sterdik. Unutmay\u0131n ki, her ne kadar teknik detaylar \u00f6nemli olsa da, as\u0131l ama\u00e7, teknoloji arac\u0131l\u0131\u011f\u0131yla ger\u00e7ek d\u00fcnya problemlerine \u00e7\u00f6z\u00fcm bulmak ve verilerden ger\u00e7ek anlamda de\u011fer yaratmakt\u0131r. TTN ve Grafana ikilisi, bu hedefe ula\u015fmak i\u00e7in size g\u00fc\u00e7l\u00fc bir ara\u00e7 seti sunmaktad\u0131r. \u015eimdi s\u0131ra sizde; kendi IoT verilerinizi g\u00f6rselle\u015ftirmeye ba\u015flay\u0131n ve projelerinizin potansiyelini ke\u015ffedin!<\/p>\n<h2>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h2>\n<h3>1. TTN verilerini InfluxDB d\u0131\u015f\u0131nda ba\u015fka bir veritaban\u0131na aktarabilir miyim?<\/h3>\n<p>Evet, kesinlikle. TTN'den gelen verileri MQTT veya Webhook entegrasyonlar\u0131 arac\u0131l\u0131\u011f\u0131yla herhangi bir veritaban\u0131na aktarabilirsiniz (\u00f6rne\u011fin PostgreSQL, MySQL, MongoDB, Elasticsearch). \u00d6nemli olan, veritaban\u0131n\u0131n yap\u0131s\u0131na uygun bir arac\u0131 yaz\u0131l\u0131m veya sunucusuz fonksiyon kullanarak verileri do\u011fru formatta yazmakt\u0131r. Grafana da bu veritabanlar\u0131n\u0131n \u00e7o\u011fuyla do\u011frudan entegre olabilir.<\/p>\n<h3>2. Grafana'y\u0131 kendi sunucumda \u00e7al\u0131\u015ft\u0131rmak zorunda m\u0131y\u0131m, yoksa bulut tabanl\u0131 bir se\u00e7enek var m\u0131?<\/h3>\n<p>Hem yerel sunucunuzda (on-premise) hem de bulut tabanl\u0131 olarak Grafana'y\u0131 \u00e7al\u0131\u015ft\u0131rabilirsiniz. Kendi sunucunuzda kurmak, tam kontrol sa\u011flarken, Grafana Cloud gibi bulut tabanl\u0131 hizmetler, altyap\u0131 y\u00f6netimi y\u00fck\u00fcn\u00fc \u00fczerinizden al\u0131r, otomatik g\u00fcncellemeler ve \u00f6l\u00e7eklenebilirlik sunar. Se\u00e7im, projenizin ihtiya\u00e7lar\u0131na, b\u00fct\u00e7esine ve teknik yeteneklerinize ba\u011fl\u0131d\u0131r.<\/p>\n<h3>3. TTN Payload Formatters'\u0131n g\u00f6rselle\u015ftirme \u00fczerindeki etkisi nedir?<\/h3>\n<p>TTN Payload Formatters (Y\u00fck Bi\u00e7imlendiriciler), sens\u00f6rden gelen ham ikili verileri (\u00f6rne\u011fin bayt dizileri) insan taraf\u0131ndan okunabilir ve anlaml\u0131 JSON format\u0131na d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in kullan\u0131l\u0131r. Bu d\u00f6n\u00fc\u015f\u00fcm, verilerin do\u011fru bir \u015fekilde ayr\u0131\u015ft\u0131r\u0131lmas\u0131 ve InfluxDB gibi veritabanlar\u0131na yaz\u0131lmas\u0131 i\u00e7in kritik \u00f6neme sahiptir. E\u011fer payload formatter do\u011fru yap\u0131land\u0131r\u0131lmazsa, Grafana'da g\u00f6rselle\u015ftirebilece\u011finiz anlaml\u0131 alanlar (s\u0131cakl\u0131k, nem gibi) mevcut olmaz. Bu nedenle, do\u011fru ve iyi tan\u0131mlanm\u0131\u015f bir payload formatter kullanmak, g\u00f6rselle\u015ftirme s\u00fcrecinin temelidir.<\/p>\n<h3>4. Ger\u00e7ek zamanl\u0131 g\u00f6rselle\u015ftirme ne kadar \"ger\u00e7ek zamanl\u0131\" olabilir?<\/h3>\n<p>Ger\u00e7ek zamanl\u0131 g\u00f6rselle\u015ftirme, cihaz\u0131n\u0131z\u0131n veri g\u00f6nderme s\u0131kl\u0131\u011f\u0131na, TTN a\u011f\u0131n\u0131n gecikmesine, veri aktar\u0131m beti\u011finizin (\u00f6rne\u011fin MQTT istemcisinin) h\u0131z\u0131na ve Grafana panelinizin yenilenme aral\u0131\u011f\u0131na ba\u011fl\u0131d\u0131r. Genellikle, saniyeler veya dakikalar i\u00e7inde g\u00fcncellenen paneller \"ger\u00e7ek zamanl\u0131\" kabul edilir. LoRaWAN'\u0131n do\u011fas\u0131 gere\u011fi, veri g\u00f6nderim s\u0131kl\u0131\u011f\u0131 genellikle dakikal\u0131k veya daha uzun aral\u0131klarla s\u0131n\u0131rl\u0131d\u0131r, bu da gecikmeyi etkileyebilir.<\/p>\n<h3>5. Grafana'da olu\u015fturdu\u011fum panelleri ba\u015fkalar\u0131yla nas\u0131l payla\u015fabilirim?<\/h3>\n<p>Grafana, olu\u015fturdu\u011funuz g\u00f6sterge panellerini payla\u015fmak i\u00e7in \u00e7e\u015fitli y\u00f6ntemler sunar:<\/p>\n<ol>\n<li><b>Anl\u0131k G\u00f6r\u00fcnt\u00fcler (Snapshots):<\/b> Panelin belirli bir anl\u0131k g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc olu\u015fturarak, herkese a\u00e7\u0131k veya \u00f6zel bir URL \u00fczerinden payla\u015fabilirsiniz. Bu g\u00f6r\u00fcnt\u00fcler etkile\u015fimli de\u011fildir ve genellikle statik raporlama i\u00e7in kullan\u0131l\u0131r.<\/li>\n<li><b>Payla\u015f\u0131m Linkleri:<\/b> Canl\u0131 paneli g\u00f6r\u00fcnt\u00fclemek i\u00e7in bir URL olu\u015fturabilirsiniz. Bu linki payla\u015f\u0131rken, g\u00f6r\u00fcnt\u00fcleyicinin Grafana'da bir hesab\u0131 olmas\u0131 ve panoya eri\u015fim izni olmas\u0131 gerekebilir. Anonim eri\u015fime izin veren paneller de yap\u0131land\u0131r\u0131labilir.<\/li>\n<li><b>G\u00f6mme (Embed):<\/b> Panelleri veya t\u00fcm panolar\u0131 web sitenize veya di\u011fer uygulamalar\u0131n\u0131za iframe ile g\u00f6mebilirsiniz. Bu, genellikle bir uygulaman\u0131n i\u00e7ine izleme yetenekleri eklemek i\u00e7in kullan\u0131l\u0131r.<\/li>\n<li><b>D\u0131\u015fa Aktarma\/\u0130\u00e7e Aktarma:<\/b> Panelleri JSON olarak d\u0131\u015fa aktarabilir ve ba\u015fka bir Grafana \u00f6rne\u011fine aktarabilirsiniz.<\/li>\n<\/ol>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Nesnelerin \u0130nterneti (IoT) projelerinizdeki sens\u00f6r verilerini anlamland\u0131rmakta zorlan\u0131yor musunuz? The Things Network (TTN) \u00fczerinden gelen ham verileri ger\u00e7ek&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-36233","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>The Things Network Verilerini Grafana&#039;da G\u00f6rselle\u015ftirme (Ger\u00e7ek Zamanl\u0131 &amp; Kolay)<\/title>\n<meta name=\"description\" content=\"Nesnelerin \u0130nterneti (IoT) projelerinizdeki sens\u00f6r verilerini anlamland\u0131rmakta zorlan\u0131yor musunuz? The Things Network (TTN) \u00fczerinden gelen ham verileri ger\u00e7ek zamanl\u0131 ve etkili bir \u015fekilde g\u00f6rselle\u015ftirmek, projelerinizin ba\u015far\u0131s\u0131 i\u00e7in kritik \u00f6neme sahiptir. Bu makalede, TTN verilerini Grafana ile nas\u0131l kolayca ve ger\u00e7ek zamanl\u0131 olarak g\u00f6rselle\u015ftirebilece\u011finizi ad\u0131m ad\u0131m ke\u015ffedece\u011fiz.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/the-things-network-verilerini-grafanada-gorsellestirme-gercek-zamanli-kolay\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Things Network Verilerini Grafana&#039;da G\u00f6rselle\u015ftirme (Ger\u00e7ek Zamanl\u0131 &amp; Kolay)\" \/>\n<meta property=\"og:description\" content=\"Nesnelerin \u0130nterneti (IoT) projelerinizdeki sens\u00f6r verilerini anlamland\u0131rmakta zorlan\u0131yor musunuz? The Things Network (TTN) \u00fczerinden gelen ham verileri ger\u00e7ek zamanl\u0131 ve etkili bir \u015fekilde g\u00f6rselle\u015ftirmek, projelerinizin ba\u015far\u0131s\u0131 i\u00e7in kritik \u00f6neme sahiptir. Bu makalede, TTN verilerini Grafana ile nas\u0131l kolayca ve ger\u00e7ek zamanl\u0131 olarak g\u00f6rselle\u015ftirebilece\u011finizi ad\u0131m ad\u0131m ke\u015ffedece\u011fiz.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/the-things-network-verilerini-grafanada-gorsellestirme-gercek-zamanli-kolay\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-10T23:31:14+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"32 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/the-things-network-verilerini-grafanada-gorsellestirme-gercek-zamanli-kolay\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/the-things-network-verilerini-grafanada-gorsellestirme-gercek-zamanli-kolay\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"The Things Network Verilerini Grafana&#8217;da G\u00f6rselle\u015ftirme (Ger\u00e7ek Zamanl\u0131 &#038; Kolay)\",\"datePublished\":\"2025-12-10T23:31:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/the-things-network-verilerini-grafanada-gorsellestirme-gercek-zamanli-kolay\/\"},\"wordCount\":5855,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/the-things-network-verilerini-grafanada-gorsellestirme-gercek-zamanli-kolay\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/the-things-network-verilerini-grafanada-gorsellestirme-gercek-zamanli-kolay\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/the-things-network-verilerini-grafanada-gorsellestirme-gercek-zamanli-kolay\/\",\"name\":\"The Things Network Verilerini Grafana'da G\u00f6rselle\u015ftirme (Ger\u00e7ek Zamanl\u0131 & Kolay)\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-12-10T23:31:14+00:00\",\"description\":\"Nesnelerin \u0130nterneti (IoT) projelerinizdeki sens\u00f6r verilerini anlamland\u0131rmakta zorlan\u0131yor musunuz? The Things Network (TTN) \u00fczerinden gelen ham verileri ger\u00e7ek zamanl\u0131 ve etkili bir \u015fekilde g\u00f6rselle\u015ftirmek, projelerinizin ba\u015far\u0131s\u0131 i\u00e7in kritik \u00f6neme sahiptir. Bu makalede, TTN verilerini Grafana ile nas\u0131l kolayca ve ger\u00e7ek zamanl\u0131 olarak g\u00f6rselle\u015ftirebilece\u011finizi ad\u0131m ad\u0131m ke\u015ffedece\u011fiz.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/the-things-network-verilerini-grafanada-gorsellestirme-gercek-zamanli-kolay\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/the-things-network-verilerini-grafanada-gorsellestirme-gercek-zamanli-kolay\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/the-things-network-verilerini-grafanada-gorsellestirme-gercek-zamanli-kolay\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The Things Network Verilerini Grafana&#8217;da G\u00f6rselle\u015ftirme (Ger\u00e7ek Zamanl\u0131 &#038; Kolay)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"The Things Network Verilerini Grafana'da G\u00f6rselle\u015ftirme (Ger\u00e7ek Zamanl\u0131 & Kolay)","description":"Nesnelerin \u0130nterneti (IoT) projelerinizdeki sens\u00f6r verilerini anlamland\u0131rmakta zorlan\u0131yor musunuz? The Things Network (TTN) \u00fczerinden gelen ham verileri ger\u00e7ek zamanl\u0131 ve etkili bir \u015fekilde g\u00f6rselle\u015ftirmek, projelerinizin ba\u015far\u0131s\u0131 i\u00e7in kritik \u00f6neme sahiptir. Bu makalede, TTN verilerini Grafana ile nas\u0131l kolayca ve ger\u00e7ek zamanl\u0131 olarak g\u00f6rselle\u015ftirebilece\u011finizi ad\u0131m ad\u0131m ke\u015ffedece\u011fiz.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/the-things-network-verilerini-grafanada-gorsellestirme-gercek-zamanli-kolay\/","og_locale":"tr_TR","og_type":"article","og_title":"The Things Network Verilerini Grafana'da G\u00f6rselle\u015ftirme (Ger\u00e7ek Zamanl\u0131 & Kolay)","og_description":"Nesnelerin \u0130nterneti (IoT) projelerinizdeki sens\u00f6r verilerini anlamland\u0131rmakta zorlan\u0131yor musunuz? The Things Network (TTN) \u00fczerinden gelen ham verileri ger\u00e7ek zamanl\u0131 ve etkili bir \u015fekilde g\u00f6rselle\u015ftirmek, projelerinizin ba\u015far\u0131s\u0131 i\u00e7in kritik \u00f6neme sahiptir. Bu makalede, TTN verilerini Grafana ile nas\u0131l kolayca ve ger\u00e7ek zamanl\u0131 olarak g\u00f6rselle\u015ftirebilece\u011finizi ad\u0131m ad\u0131m ke\u015ffedece\u011fiz.","og_url":"https:\/\/fatihsoysal.com\/blog\/the-things-network-verilerini-grafanada-gorsellestirme-gercek-zamanli-kolay\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-12-10T23:31:14+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"32 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/the-things-network-verilerini-grafanada-gorsellestirme-gercek-zamanli-kolay\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/the-things-network-verilerini-grafanada-gorsellestirme-gercek-zamanli-kolay\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"The Things Network Verilerini Grafana&#8217;da G\u00f6rselle\u015ftirme (Ger\u00e7ek Zamanl\u0131 &#038; Kolay)","datePublished":"2025-12-10T23:31:14+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/the-things-network-verilerini-grafanada-gorsellestirme-gercek-zamanli-kolay\/"},"wordCount":5855,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/the-things-network-verilerini-grafanada-gorsellestirme-gercek-zamanli-kolay\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/the-things-network-verilerini-grafanada-gorsellestirme-gercek-zamanli-kolay\/","url":"https:\/\/fatihsoysal.com\/blog\/the-things-network-verilerini-grafanada-gorsellestirme-gercek-zamanli-kolay\/","name":"The Things Network Verilerini Grafana'da G\u00f6rselle\u015ftirme (Ger\u00e7ek Zamanl\u0131 & Kolay)","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-12-10T23:31:14+00:00","description":"Nesnelerin \u0130nterneti (IoT) projelerinizdeki sens\u00f6r verilerini anlamland\u0131rmakta zorlan\u0131yor musunuz? The Things Network (TTN) \u00fczerinden gelen ham verileri ger\u00e7ek zamanl\u0131 ve etkili bir \u015fekilde g\u00f6rselle\u015ftirmek, projelerinizin ba\u015far\u0131s\u0131 i\u00e7in kritik \u00f6neme sahiptir. Bu makalede, TTN verilerini Grafana ile nas\u0131l kolayca ve ger\u00e7ek zamanl\u0131 olarak g\u00f6rselle\u015ftirebilece\u011finizi ad\u0131m ad\u0131m ke\u015ffedece\u011fiz.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/the-things-network-verilerini-grafanada-gorsellestirme-gercek-zamanli-kolay\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/the-things-network-verilerini-grafanada-gorsellestirme-gercek-zamanli-kolay\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/the-things-network-verilerini-grafanada-gorsellestirme-gercek-zamanli-kolay\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"The Things Network Verilerini Grafana&#8217;da G\u00f6rselle\u015ftirme (Ger\u00e7ek Zamanl\u0131 &#038; Kolay)"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36233","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=36233"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36233\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=36233"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=36233"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=36233"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}