{"id":2757,"date":"2024-05-01T16:36:36","date_gmt":"2024-05-01T13:36:36","guid":{"rendered":"https:\/\/www.mikrobotik.com\/wp2\/?p=2757"},"modified":"2024-05-01T16:36:36","modified_gmt":"2024-05-01T13:36:36","slug":"esp32-wroom-32u-kablosuz-ble-klavye","status":"publish","type":"post","link":"https:\/\/www.mikrobotik.com\/wp2\/2024\/05\/01\/esp32-wroom-32u-kablosuz-ble-klavye\/","title":{"rendered":"ESP32-WROOM-32U KABLOSUZ BLE KLAVYE"},"content":{"rendered":"<p>&nbsp;<\/p>\n<p>Bu fikir nereden do\u011fdu. Tabii ki ihtiya\u00e7tan. PC ba\u015f\u0131nda filim seyretmek yerine PC yi a\u00e7\u0131p yatt\u0131\u011f\u0131n\u0131z\u00a0 yerden seyretmek isterseniz de\u011fi\u015fen durumlara g\u00f6re sesini a\u00e7, kapat, durdur gibi komutlara ihtiyac\u0131n\u0131z olabilir. Ya da oyun oynarken baz\u0131 kelimelerin girilmesi gerekti\u011finde akl\u0131n\u0131zda tutmak ve tek tek girmek sorun yaratabilir. Bunun yerine bu kelimeleri tek tu\u015fa ba\u011flamak iyi olacakt\u0131.(Hala oyunlarda b\u00f6yle \u015feyler var m\u0131 bilemiyorum)\u00a0 Bu tip d\u00fc\u015f\u00fcncelerle daha \u00f6nce g\u00f6rm\u00fc\u015f oldu\u011fum\u00a0 keyboard uygulamalar\u0131na bakt\u0131m. Normal Arduino ile USB HID uyumlu klavye yap\u0131lam\u0131yordu. Eskiden PS2 giri\u015fler vard\u0131. Arduino ile PS2 klavye mouse yap\u0131labiliyordu. \u015eimdi ise USB olmal\u0131yd\u0131. HID uyumlu klavye i\u00e7in bir ka\u00e7 \u00e7\u00f6z\u00fcm var a\u015fa\u011f\u0131da bunlar\u0131 a\u00e7\u0131klamaya \u00e7al\u0131\u015ft\u0131m. Ayr\u0131ca bu da kablosuz olmal\u0131yd\u0131. Her zamanki gibi yan\u0131m\u0131zdan ay\u0131rmad\u0131\u011f\u0131m\u0131z android telefonumuz yard\u0131mc\u0131 olabilirdi. Bundan dolay\u0131 ESP32 yi se\u00e7tim.<br \/>\nA<span style=\"color: #ff6600;\">yr\u0131ca PC i\u00e7in bir program y\u00fcklemedim. Sadece PC bluetooth k\u0131sm\u0131nda tan\u0131tt\u0131m hepsi bu.\u00a0<\/span><\/p>\n<p>\u00d6ncelikle <span style=\"color: #ff6600;\">HID<\/span> uyumlu klavyeyi Arduino ile nas\u0131l yapabilece\u011fimize bakal\u0131m.<br \/>\n\u015eayet klavyeyi <span style=\"color: #ff6600;\">HID<\/span> uyumlu yani USB klavye gibi tan\u0131tmak isterseniz arduino kart\u0131n\u0131z\u0131n <span style=\"color: #ff6600;\">ATMEGA 32U<\/span> entegresine sahip olmas\u0131 gerekir. Normal <span style=\"color: #ff6600;\">ATMEGA328<\/span> entegreleri <span style=\"color: #ff6600;\">HID<\/span> uyumlu olarak kullan\u0131lam\u0131yor.<\/p>\n<p>Bu arduino kartlar\u0131na \u00f6rnek verecek olursak <span style=\"color: #ff6600;\">LEONARDO, Micro PRO<\/span> modelleri ve <span style=\"color: #ff6600;\">ATMEGA32U<\/span> kullanan di\u011fer modeller olarak d\u00fc\u015f\u00fcnebiliriz.<br \/>\n<span style=\"color: #ff6600;\">ESP32 WROOM32U<\/span> entegresi de <span style=\"color: #ff6600;\">BLE<\/span> \u00f6zelli\u011fi yani Bluetooth \u00f6zelli\u011fi ile HID uyumlu klavye gibi davranabiliyor.<\/p>\n<p>ESP32 mod\u00fcl\u00fcm\u00fc sadece bunun i\u00e7in kullanmak istemem diyebilirsiniz.<br \/>\nFakat benim verdi\u011fim programda BLE k\u0131sm\u0131n\u0131 KLAVYE gibi kullan\u0131rken, yan\u0131nda ESP32 nin di\u011fer giri\u015f ve \u00e7\u0131k\u0131\u015flar\u0131n\u0131 istedi\u011finiz gibi ba\u015fka i\u015fler i\u00e7in kullanabiliyorsunuz.<br \/>\nBen program\u0131mda \u00f6rnek olarak klavye olarak kullan\u0131rken, <span style=\"color: #ff6600;\">1 adet r\u00f6lenin a\u00e7\u0131l\u0131p kapanmas\u0131n\u0131 da g\u00f6sterdim.<\/span> Siz de istedi\u011finiz gibi bunu \u00e7o\u011faltabilirsiniz.<br \/>\nYani ESP32 mod\u00fcl\u00fcn\u00fcz\u00fc <span style=\"color: #ff6600;\">TAM KAPAS\u0130TE<\/span> kullanabilirsiniz.<\/p>\n<p><span style=\"color: #ff6600;\">Nas\u0131l kablosuz yap\u0131yoruz<\/span> derseniz de bunu 2 \u015fekilde d\u00fc\u015f\u00fcnebilirsiniz.<br \/>\n1. si ESP32 ye buton ba\u011flay\u0131p klavye olarak BLE kablosuz iletimiyle Kablosuz klavye yapabilirsiniz.<br \/>\n2. si ise ESP32 nin WIFI \u00f6zelli\u011fini kullanarak hem klavye basmalar\u0131n\u0131 kablosuz al\u0131rs\u0131n\u0131z, hem de klavye kodlar\u0131n\u0131 BLE ile kablosuz iletirsiniz.<\/p>\n<p>\u0130kinci se\u00e7imde ESP32 nin yan\u0131nda olmak zorunda de\u011filsiniz. \u00c7\u00fcnk\u00fc esp32 nin giri\u015flerine butonla basmayacaks\u0131n\u0131z. WIFI kapsam\u0131 i\u00e7erisinde ESP32 den uza\u011fa gidebilirsiniz. Bu sayede ESP32 ye wifi \u00fczerinden hem klavye hem de di\u011fer \u00e7al\u0131\u015fma komutlar\u0131n\u0131 kablosuz olarak iletebileceksiniz.<\/p>\n<p><strong><span style=\"color: #ff0000;\">NASIL YAPIYORUZ:<\/span><\/strong><\/p>\n<p>\u00d6ncelikle ESP32 yi <span style=\"color: #ff6600;\">TCP SOCKET SERVER<\/span> olarak \u00e7al\u0131\u015ft\u0131r\u0131yoruz. Ba\u015fka \u015fekillerde de \u00e7al\u0131\u015fabilir ama ben kolay oldu\u011fu i\u00e7in bu yolu se\u00e7tim.<br \/>\nAndroid i\u00e7in APP INVENTOR\u00a0 program\u0131 ile TCP CLIENT program\u0131n\u0131 yapt\u0131m. Bu haberle\u015fme sa\u011fland\u0131\u011f\u0131nda APP INVENTOR da yapt\u0131\u011f\u0131m BUTONLAR ile klavye i\u00e7in belirte\u00e7 yollad\u0131m.<br \/>\nMesela PP yollad\u0131m. Bu PLAY\/PAUSE butonuna bas demek olsun. ESP32 bu belirteci wifi \u00fczerinden al\u0131nca klavyenin multimedya butonlar\u0131ndan PLAY PAUSE butonunun kodunu PC ye yollar.<\/p>\n<p>Di\u011fer android program\u0131nda olan butonlar da bu mant\u0131kla belirte\u00e7lerini yollarlar. ESP 32 bu belirte\u00e7lere g\u00f6re klavye kodlar\u0131n\u0131 olu\u015fturur ve PC ye yollar.<\/p>\n<p>Benim PC Windows 10 ve T\u00fcrk\u00e7e klavye kulland\u0131\u011f\u0131ndan T\u00fcrk\u00e7e klavye karakter kodlar\u0131n\u0131 da i\u00e7ermesi gerekir.<\/p>\n<p>ESP32 k\u00fct\u00fcphanesi buna normalde <span style=\"color: #ff6600;\">yer vermese de<\/span> Klavye kodlar\u0131n\u0131 farkl\u0131 \u015fekilde yollad\u0131\u011f\u0131n\u0131zda T\u00fcrk\u00e7e karakterlerin de ekrana bas\u0131ld\u0131\u011f\u0131n\u0131 g\u00f6receksiniz.<\/p>\n<p>\u00d6ncelikle bu kodlar\u0131n <span style=\"color: #ff6600;\">ASCII 255 e<\/span> kadar kodlar\u0131ndan olu\u015ftu\u011funu s\u00f6ylemem laz\u0131m. Fakat ASCII karakterlerinin hepsi ekrana bas\u0131labilir komutlar de\u011fildir. Mesela <span style=\"color: #ff6600;\">DEC 8<\/span> numara <span style=\"color: #ff6600;\">BACKSPACE<\/span> tu\u015funa kar\u015f\u0131l\u0131k gelir <span style=\"color: #ff6600;\">DEC 9<\/span> numara <span style=\"color: #ff6600;\">TAB<\/span> tu\u015funa kar\u015f\u0131l\u0131k gelir. <span style=\"color: #ff6600;\">DEC 32<\/span> numara bo\u015fluk tu\u015fudur ve ilk 32-128 aras\u0131 karakterler klavye bas\u0131labilir karakterleridir.<\/p>\n<p>Klavyelerin ihtiya\u00e7lara g\u00f6re de\u011fi\u015ftirilmesi sonucu, zaman i\u00e7erisinde bu kodlar de\u011fi\u015ftirilerek 128 den sonras\u0131 da kullan\u0131lmaya ba\u015flanm\u0131\u015ft\u0131r. Mesela \u015e \u00dc gibi T\u00fcrk\u00e7ede kullan\u0131lanlar gibi, di\u011fer dillerde de \u0130ngilizcede olmayan karakterler vard\u0131. Klavyeler <span style=\"color: #ff6600;\">yerele g\u00f6re<\/span> uyarlanmas\u0131 i\u00e7in bu komut seti farkl\u0131la\u015fmaya ba\u015flad\u0131.<br \/>\nT\u00fcm karakterleri \u00f6\u011frenmek i\u00e7in<span style=\"color: #ff6600;\"> FOR NEXT<\/span> d\u00f6ng\u00fcs\u00fcyle <span style=\"color: #ff6600;\">32-255<\/span> aras\u0131n\u0131 Excel de bast\u0131rmak istedi\u011fimde tam ba\u015far\u0131l\u0131 olamad\u0131m. Bunun nedeni ise baz\u0131 kodlar\u0131n ekranda yeni pencere a\u00e7mas\u0131 yada START men\u00fcs\u00fcn\u00fc a\u00e7mas\u0131ndan dolay\u0131 bu tam ba\u015far\u0131l\u0131 sonu\u00e7 vermedi.<\/p>\n<p>Fakat ben de, sizin kendi karakterlerinizi ve klavye kodlar\u0131n\u0131z\u0131 g\u00f6rmeniz i\u00e7in <span style=\"color: #ff6600;\">Android programa<\/span> bir karakter yollama butonu koydum. Bu buton ile kendi bilgisayar\u0131n\u0131zda hangi kodun hangi harfe denk geldi\u011fine teker teker bakabileceksiniz. Bakt\u0131ktan sonra hangi butonlar\u0131 kullanmak isterseniz buna g\u00f6re karar verebileceksiniz.<\/p>\n<p>K\u00fct\u00fcphanede \u00f6rnek bir karakter tablosu var. Fakat <span style=\"color: #ff6600;\">kendi klavye kodlar\u0131n\u0131z\u0131 karakterler i\u00e7in kullanman\u0131z yerinde olacakt\u0131r.<\/span> Bunun sebebi, ister T\u00fcrk\u00e7e ister Almanca ister \u0130ngilizce olsun t\u00fcm karakter tablosuna eri\u015febilmenizdir. Androiddeki bu kod g\u00f6nderme butonuyla klavyenizi d\u00fczenleyebilirsiniz.<\/p>\n<p>K\u00fct\u00fcphane i\u00e7erisinde size haz\u0131r butonlarda verilmi\u015f. Mesela MULTIMEDIA butonlar\u0131 gibi. Bunlar\u0131 direkt olarak kullanabilirsiniz. Ben zaten bu butonlar\u0131 Android programa ekledim. Bir de android programda NUMPAD dedi\u011fimiz klavyenin sa\u011f taraf\u0131nda bulunan baz\u0131 klavyelerde yer darl\u0131\u011f\u0131ndan konulmayan TU\u015e TAKIMINI i\u00e7erecek \u015fekilde Android programa koydum.<\/p>\n<p>Android programda bir de <span style=\"color: #ff6600;\">1 adet R\u00f6le i\u00e7in A\u00c7 KAPA butonlar\u0131 var<\/span>.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_BLE_KEYBOARD\/PICTURE\/android_1.jpg?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" class=\"alignleft lazyload\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_BLE_KEYBOARD\/PICTURE\/android_1.jpg?raw=true\" alt=\"\" width=\"285\" height=\"507\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 285px; --smush-placeholder-aspect-ratio: 285\/507;\" \/><\/a><\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_BLE_KEYBOARD\/PICTURE\/android_2.jpg?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_BLE_KEYBOARD\/PICTURE\/android_2.jpg?raw=true\" alt=\"\" width=\"267\" height=\"475\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 267px; --smush-placeholder-aspect-ratio: 267\/475;\" \/><\/a><\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_BLE_KEYBOARD\/PICTURE\/android_3.jpg?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_BLE_KEYBOARD\/PICTURE\/android_3.jpg?raw=true\" alt=\"\" width=\"303\" height=\"539\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 303px; --smush-placeholder-aspect-ratio: 303\/539;\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Programda 2 k\u00fct\u00fcphane kullan\u0131l\u0131yor. Birincisi Klavye i\u00e7in BLE k\u00fct\u00fcphanesi, ikincisi ise WIFI k\u00fct\u00fcphanesi. Bu k\u00fct\u00fcphane TCP SOCKET server destekliyor. \u00a0Zaten ESP32 kart\u0131n\u0131 KARTLAR b\u00f6l\u00fcm\u00fcne ekledi\u011finizde WIFI k\u00fct\u00fcphanesi hemen ekleniyor. \u015eayet ekledi\u011finiz k\u00fct\u00fcphane bunu desteklemiyorsa benim verdi\u011fim programlar b\u00f6l\u00fcm\u00fcnden k\u00fct\u00fcphaneyi indirebilirsiniz.<\/p>\n<p>WIFI ayarlar\u0131nda a\u015fa\u011f\u0131daki sat\u0131rlar\u0131 yazmazsan\u0131z IP adres otomatik olarak de\u011fi\u015fece\u011finden her defas\u0131nda ESP32 nin adresini ba\u011flant\u0131 i\u00e7in \u00f6\u011frenmeniz gerekir. Bunu \u00f6nlemek ve sabit IP vermek i\u00e7in a\u015fa\u011f\u0131daki sat\u0131rlar\u0131 program\u0131n\u0131za eklemeniz gerekiyor.<br \/>\nBen verdi\u011fim programda bunu ekledim. Siz IP adresi olan 184 say\u0131s\u0131n\u0131 istedi\u011finiz gibi de\u011fi\u015ftirebilirsiniz. Fakat \u00e7ok d\u00fc\u015f\u00fck yaparsan\u0131z otomatik olarak a\u011f\u0131n\u0131zda \u00e7al\u0131\u015fan IP adreslerle \u00e7ak\u0131\u015fabilir bunu m\u00fcmk\u00fcn oldu\u011funca 100 den sonra vermeye bak\u0131n. \u00c7ak\u0131\u015fma olmas\u0131n diye.<\/p>\n<p><strong>\/\/ statik ip adresi **********************************<br \/>\n<\/strong><strong>IPAddress local_IP(192, 168, 1, 184);<br \/>\n<\/strong><strong>\/\/ gateway ip (modem aray\u00fcz\u00fcne giri\u015fte kulland\u0131\u011f\u0131n\u0131z ip adresi)<br \/>\n<\/strong><strong>IPAddress gateway(192, 168, 1, 1);<br \/>\n<\/strong><strong>IPAddress subnet(255, 255, 0, 0);<br \/>\n<\/strong><strong>IPAddress primaryDNS(8, 8, 8, 8);\u00a0\u00a0 \/\/iste\u011fe ba\u011fl\u0131 google dnsleri<br \/>\n<\/strong><strong>IPAddress secondaryDNS(8, 8, 4, 4); <\/strong><\/p>\n<p><strong>\/\/*******************************************************<\/strong><\/p>\n<p>Ayr\u0131ca bu sat\u0131rlar\u0131 \u00a0verirken bir de SETUP k\u0131sm\u0131nda a\u015fa\u011f\u0131daki sat\u0131rlar\u0131 da eklemelisiniz. WIFI begin komutundan \u00f6nce.<\/p>\n<p><strong>if (!WiFi.config(local_IP, gateway, subnet, primaryDNS, secondaryDNS)) {<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 Serial.println(&#8220;sta hatasi&#8221;);<\/strong><\/p>\n<p><strong>\u00a0 }<\/strong><\/p>\n<p><span style=\"color: #ff6600;\">Bu \u015fekilde her daim android program ayn\u0131 IP adresine ba\u011flanacakt\u0131r.<\/span><\/p>\n<p>Arduino program\u0131n\u0131n LOOP d\u00f6ng\u00fcs\u00fcnde WIFI ile karakter alma i\u015flemi yap\u0131l\u0131yor. Karakter al\u0131nd\u0131\u011f\u0131nda ise di\u011fer alt programa giderek bunu BLE ile g\u00f6nderiyor.<\/p>\n<p><span style=\"color: #ff0000;\"><strong>\u00d6NEML\u0130 NOKTA:<\/strong><\/span> benim ESP32 WROOM 32U mod\u00fcl\u00fcm 4MB mod\u00fcld\u00fcr. 2 ayr\u0131 k\u00fct\u00fcphaneyi dahil etti\u011fimde ve k\u00fct\u00fcphanelerdeki tablolar da PROGMEM komutuyla program haf\u0131zas\u0131nda sakland\u0131\u011f\u0131 i\u00e7in KART HAFIZASI se\u00e7iminde 4MB se\u00e7erken SPIFSS yi minimum ayarlaman\u0131z gerekiyor ki Program memory YETS\u0130N.<\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_BLE_KEYBOARD\/PICTURE\/Arduino_kart_ayar.png?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" class=\"alignleft lazyload\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_BLE_KEYBOARD\/PICTURE\/Arduino_kart_ayar.png?raw=true\" alt=\"\" width=\"267\" height=\"475\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 267px; --smush-placeholder-aspect-ratio: 267\/475;\" \/><\/a><\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_BLE_KEYBOARD\/PICTURE\/Arduino_kart_ayar1.png?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_BLE_KEYBOARD\/PICTURE\/Arduino_kart_ayar1.png?raw=true\" alt=\"\" width=\"260\" height=\"146\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 260px; --smush-placeholder-aspect-ratio: 260\/146;\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_BLE_KEYBOARD\/PICTURE\/derleme_sonucu.PNG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_BLE_KEYBOARD\/PICTURE\/derleme_sonucu.PNG?raw=true\" alt=\"\" width=\"500\" height=\"333\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/333;\" \/><\/a><\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_BLE_KEYBOARD\/PICTURE\/esp32_kart_yonetici.PNG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_BLE_KEYBOARD\/PICTURE\/esp32_kart_yonetici.PNG?raw=true\" alt=\"\" width=\"293\" height=\"165\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 293px; --smush-placeholder-aspect-ratio: 293\/165;\" \/><\/a><br \/>\n<span style=\"color: #ff0000;\"><strong>BLE KLAVYE ayar\u0131 nas\u0131l yap\u0131lacak.<\/strong><\/span><br \/>\nBunun i\u00e7in PC de Bluetooth ayarlar\u0131n\u0131 a\u00e7\u0131p ESP32 \u00e7al\u0131\u015f\u0131rken + butonuna basarak BLUETOOT YA DA BA\u015eKA C\u0130HAZ EKLE k\u0131sm\u0131na ge\u00e7in. Orada cihaz\u0131n BLUETOOTH \u00f6zelli\u011fi oldu\u011funu belirtin. Arama yapacakt\u0131r ve &#8220;ESP32 Keyboard&#8221; gelecek. Bunu se\u00e7in. Se\u00e7ildikten sonra ESP32 kapanas\u0131ya kadar bu ba\u011fl\u0131 olacakt\u0131r. Zaman i\u00e7erisinde ESP32 yi a\u00e7t\u0131\u011f\u0131n\u0131zda klavye butona bast\u0131\u011f\u0131n\u0131z halde \u00e7al\u0131\u015fm\u0131yorsa Bluetooth ayarlar\u0131na gidip hala aktif mi kontrol edin.<\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_BLE_KEYBOARD\/PICTURE\/BLE%20AYAR.PNG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_BLE_KEYBOARD\/PICTURE\/BLE%20AYAR.PNG?raw=true\" alt=\"\" width=\"267\" height=\"475\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 267px; --smush-placeholder-aspect-ratio: 267\/475;\" \/><\/a><br \/>\nBuraya kadar san\u0131r\u0131m ba\u011flant\u0131y\u0131 ve mant\u0131\u011f\u0131n\u0131 anlam\u0131\u015fs\u0131n\u0131zd\u0131r.<\/p>\n<p>\u00d6zellikle baz\u0131 butonlar i\u00e7in haz\u0131r komutlar\u0131, BLUEKEYBOARD.h dosyas\u0131n\u0131 a\u00e7arak g\u00f6rebilirsiniz.<br \/>\nBurada multimedia ve NUMPAD k\u0131sm\u0131n\u0131 g\u00f6receksiniz. Bu komutlar \u00e7al\u0131\u015f\u0131yor.<\/p>\n<p><strong>bleKeyboard.write(KEY_MEDIA_PLAY_PAUSE);<\/strong><\/p>\n<p>\u015feklinde komut olarak g\u00f6nderebiliyorsunuz.<\/p>\n<p>Karakterler ise BlueKeyboard.cpp dosyas\u0131nda bulunuyor ama buna pek bakman\u0131z gerekmeyecek. \u00c7\u00fcnk\u00fc karakter seti T\u00fcrk\u00e7e klavyeye g\u00f6re yeniden d\u00fczenlenmi\u015f oldu. Siz Android program ile test etti\u011finiz karakter kodlar\u0131n\u0131 kullanacaks\u0131n\u0131z.<\/p>\n<p><span style=\"color: #ff6600;\">Bu \u015fekilde KABLOSUZ klavyeniz oldu.<\/span><\/p>\n<p><span style=\"color: #ff6600;\">BEN NEDEN KOCA ESP32 MOD\u00dcL\u00dcM\u00dc BURADA KULLANAYIM D\u0130YORSANIZ HAKLI OLAB\u0130L\u0130RS\u0130N\u0130Z.<\/span><\/p>\n<p>Elbette bu programda, \u00a0hem BLE ile klavye kullanacaks\u0131n\u0131z. Hem de WIFI \u00fczerinden ESP 32 yi ba\u015fka i\u015fler i\u00e7in tam kapasite kullanabileceksiniz.<br \/>\nBunun Yerine Arduino Micro PRO kart\u0131n\u0131 ald\u0131\u011f\u0131n\u0131zda yine HID uyumlu klavye yapabilirsiniz. Fakat bu kez bir ESP8266 mod\u00fcl\u00fcn\u00fc, Arduino ya ekleyerek yine ayn\u0131 mant\u0131kla, Android kontroll\u00fc kablosuz bir klavye yapabilirsiniz.<\/p>\n<p>Ba\u015fka se\u00e7enekleriniz de olabilir. Bizim piyasada olmasa da \u00c7\u0130N piyasas\u0131nda HID uyumlu mod\u00fcller var. Bu mod\u00fcller seri porttan gelen bilgiyi direkt olarak klavye gibi kulland\u0131rtabiliyor. Seri port \u00fczerinden bilgi giri\u015fi oldu\u011fu i\u00e7in elinizdeki Arduino micro veya mini gibi k\u00fc\u00e7\u00fck kartlar da burada kullan\u0131labilecektir.<br \/>\nYine de kablosuz derseniz 2 se\u00e7ene\u011finiz olacakt\u0131r. Ya android \u00fczerinden bir kontrol i\u00e7in Arduinoya ESP8266 ile wifi kontrol yapacaks\u0131n\u0131z. Ya da RF al\u0131c\u0131 verici kullanarak kablosuz klavye yapabileceksiniz.<\/p>\n<p>Bu programda klavye kodlar\u0131n\u0131 ekranda g\u00f6rmeniz i\u00e7in bir ONLINE JAVA SCRIPT program\u0131 WEB \u00fczerinden sunulmu\u015f. Burada bast\u0131\u011f\u0131n\u0131z karakter kodunu ve ekranda g\u00f6r\u00fcnecek halini size g\u00f6steriyor.<br \/>\nBurada da \u015funu g\u00f6receksiniz. Mesela \u201ca\u201d harfi DEC 65 g\u00f6steriyorsa \u201cA\u201d harfi de 65 g\u00f6sterecek. Sistem bunu nas\u0131l alg\u0131l\u0131yor. Bu programda bunu da g\u00f6rebileceksiniz. Normal karakter \u201ca\u201d direkt bas\u0131lm\u0131\u015f oluyor. \u201cA\u201d ise SHIFT \u201ca\u201d tu\u015fu ile sa\u011fland\u0131\u011f\u0131ndan java program\u0131 size SHIFT tu\u015funa bast\u0131\u011f\u0131n\u0131z\u0131 da g\u00f6sterecektir. Ya da CAPS LOCK butonu bas\u0131l\u0131 oldu\u011fu i\u00e7in \u201cA\u201d yazd\u0131m diyecektir.<\/p>\n<p><strong><a href=\"https:\/\/www.toptal.com\/developers\/keycode\" target=\"_blank\" rel=\"noopener\">https:\/\/www.toptal.com\/developers\/keycode<\/a><\/strong><\/p>\n<p><strong><span style=\"color: #ff6600;\">NOT:<\/span><\/strong> <span style=\"color: #ff6600;\">Dikkat etmeniz<\/span> gereken \u015fey aktif pencerenin bu pencere olmas\u0131. \u00c7\u00fcnk\u00fc klavyeden gelen kodlar aktif pencereye gider. Siz bir di\u011fer pencereyi aktif ettiyseniz karakter kodlar\u0131 o pencereye gider.<\/p>\n<p>Mesela bu online program ve bir TXT ekran\u0131 a\u00e7\u0131k olsun. Siz TXT ekran\u0131n\u0131 o an aktif olarak se\u00e7mi\u015fseniz karakter TXT ekran\u0131na yaz\u0131l\u0131r JAVA program\u0131 bu tu\u015fu alg\u0131lamaz.<\/p>\n<p>Ayr\u0131nt\u0131lar i\u00e7in <span style=\"color: #ff6600;\">V\u0130DEOyu<\/span> izlemelisiniz. \u00a0Elimden geldi\u011fince size a\u00e7\u0131klamaya \u00e7al\u0131\u015faca\u011f\u0131m.<\/p>\n<p>Fakat yine de \u00f6ncesinde <span style=\"color: #ff6600;\">ASCII<\/span> kodu ne demek bilmiyorsan\u0131z, bu tablolara bakman\u0131z\u0131 \u00f6neririm.<\/p>\n<p><strong><a href=\"https:\/\/www.commfront.com\/pages\/ascii-chart\" target=\"_blank\" rel=\"noopener\">https:\/\/www.commfront.com\/pages\/ascii-chart<\/a><\/strong><\/p>\n<p>A\u015fa\u011f\u0131da T\u00fcrk\u00e7e karakter kodunu ve klavyedeki yerlerini g\u00f6rebilece\u011finiz sayfa bulunuyor. Klavyenin SCAN CODE b\u00f6l\u00fcm\u00fcnde bu tu\u015flar\u0131n OEM tu\u015flar oldu\u011funu yani Her dilde ki farkl\u0131l\u0131klar\u0131n buraya yaz\u0131labilece\u011fini belirtmi\u015fler.<\/p>\n<p><strong><a href=\"https:\/\/kbdlayout.info\/KBDTUQ\/10.0.17134.1\" target=\"_blank\" rel=\"noopener\">https:\/\/kbdlayout.info\/KBDTUQ\/10.0.17134.1<\/a><\/strong><\/p>\n<p><strong>Scan kodlar\u0131 burada.<\/strong><\/p>\n<p><strong><a href=\"https:\/\/kbdlayout.info\/KBDTUQ\/10.0.17134.1\/scancodes\" target=\"_blank\" rel=\"noopener\">https:\/\/kbdlayout.info\/KBDTUQ\/10.0.17134.1\/scancodes<\/a><\/strong><\/p>\n<p>Tu\u015flar\u0131n \u00fczerindeki SCAN kodlar\u0131 ise klavye i\u00e7erisinden hangi karakter koduna bas\u0131ld\u0131\u011f\u0131n\u0131n alg\u0131lanmas\u0131n\u0131 g\u00f6steriyor. MATR\u0130S \u015feklinde d\u00fc\u015f\u00fcn\u00fcn t\u00fcm klavye tu\u015flar\u0131 taranarak elde edilir. Bundan dolay\u0131 TARAMA i\u015flemi yapan i\u015flemci hangi tu\u015fun bas\u0131ld\u0131\u011f\u0131n\u0131 g\u00f6r\u00fcr ve buna uygun ASCII kodunu PC ye g\u00f6nderir. T\u00fcrk\u00e7e karakter olan tu\u015flar\u0131n hemen yan\u0131nda OEM-1 gibi yazar. Bu tu\u015flar de\u011fi\u015fken tu\u015flard\u0131r.<\/p>\n<p><strong><a href=\"https:\/\/kbdlayout.info\/KBDTUQ\/10.0.17134.1\/virtualkeys\" target=\"_blank\" rel=\"noopener\">https:\/\/kbdlayout.info\/KBDTUQ\/10.0.17134.1\/virtualkeys<\/a><\/strong><\/p>\n<p>Klavye kodlamas\u0131n\u0131 anlamak isterseniz bu sayfaya da g\u00f6z atabilirsiniz.<br \/>\n<strong><a href=\"https:\/\/www.win.tue.nl\/~aeb\/linux\/kbd\/scancodes-10.html\" target=\"_blank\" rel=\"noopener\">https:\/\/www.win.tue.nl\/~aeb\/linux\/kbd\/scancodes-10.html<\/a><\/strong><\/p>\n<p>Bu k\u00fct\u00fcphanede fakl\u0131 tu\u015flara birlikte basmak i\u00e7in bir y\u00f6ntem de var. A\u015fa\u011f\u0131daki komutlar\u0131 kullanarak \u00f6nce bas\u0131lacak tu\u015flar\u0131 ayarlay\u0131p sonras\u0131nda ise hepsine bas komutunu verebilirsiniz.<\/p>\n<p><strong>bleKeyboard.press(KEY_LEFT_CTRL);<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 bleKeyboard.press(KEY_LEFT_ALT);<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 bleKeyboard.press(KEY_DELETE);<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 delay(100);<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 bleKeyboard.<\/strong><strong><span style=\"color: #ff6600;\">releaseAll()<\/span>;<\/strong><\/p>\n<p>Bu \u015fekilde <span style=\"color: #ff6600;\">CTRL+ALT+DEL<\/span> tu\u015flar\u0131na basm\u0131\u015f olacaks\u0131n\u0131z.<\/p>\n<p>Bunun yan\u0131 s\u0131ra PRINT komutu ile KEL\u0130ME g\u00f6nderebilirsiniz. \u00d6zellikle oyunlarda H\u0130LE kodlar\u0131 bir kelimeden olu\u015fuyor. Ak\u0131lda tutmak yerine tek tu\u015fla kelime yollayabilirsiniz.<br \/>\n<span style=\"color: #ff6600;\"><strong>FAKAT burada bir problem olabilir.<\/strong><\/span><\/p>\n<p><strong>bleKeyboard.print(&#8220;Hello world&#8221;);<\/strong><\/p>\n<p>Yukar\u0131daki komut ile bu kelimeleri ekrana yazd\u0131rabilirsiniz fakat baz\u0131 karakterler T\u00fcrk\u00e7e karakterler yerine denk gelebilir. Mesela \u201cHELLO<strong>, <\/strong>WORLD\u201d dedi\u011finizde HELLO<span style=\"color: #ff6600;\"><strong>\u00f6<\/strong><\/span> WORLD g\u00f6receksiniz. Bundan dolay\u0131 dikkatli kullan\u0131lmas\u0131 gerekiyor.\u00a0 Ya da normal karakter yollama komutunu tek tu\u015fa programlay\u0131p karakterleri arka arkaya g\u00f6nderecek \u015fekilde ayarlayabilirsiniz.\u00a0 Aralar\u0131nda 100ms gecikme b\u0131rakmak yerinde olacakt\u0131r. PC rahatl\u0131kla kodlar\u0131 yakalayabilsin diye. Belki 50ms de yeter ama ben 100ms yapt\u0131m.<\/p>\n<p><strong>\u00a0<\/strong><strong><span style=\"color: #ff0000;\">NOT:<\/span> Denemelerinizde <span style=\"color: #ff6600;\">SCROLL LOCK<\/span> kilitlenirse ve klavyenizde bu tu\u015f yok ise W\u0130NDOWS denetim masas\u0131ndan ER\u0130\u015e\u0130M KOLAYLI\u011eI k\u0131sm\u0131na gelerek<span style=\"color: #ff6600;\"> EKRAN KLAVYES\u0130N\u0130<\/span> se\u00e7in. Burada <span style=\"color: #ff6600;\">E-K\u0130TLE<\/span> butonuna basarak ilk haline getirebilirsiniz.<br \/>\n<\/strong><\/p>\n<figure style=\"width: 500px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_BLE_KEYBOARD\/PICTURE\/ekranklavye.PNG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_BLE_KEYBOARD\/PICTURE\/ekranklavye.PNG?raw=true\" alt=\"\" width=\"500\" height=\"333\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/333;\" \/><\/a><figcaption class=\"wp-caption-text\"><span style=\"color: #ff6600;\">sa\u011f taraftaki scroll lock tu\u015funu siyah renge d\u00f6nd\u00fcr\u00fcn. \u015eayet scroll lock bas\u0131ld\u0131ysa ve klavyenizde yoksa. <\/span><\/figcaption><\/figure>\n<p>Ayr\u0131ca t\u00fcm programlar aras\u0131nda APP INVENTOR program\u0131nda <span style=\"color: #ff6600;\">CLIENT SOCKET<\/span> kullan\u0131labilmesi i\u00e7in bir <span style=\"color: #ff6600;\">EXTENSION<\/span> var. Bunu gerekti\u011finde APP INVENTOR program\u0131n\u0131za ekleyebilirsiniz.<br \/>\n<strong><span style=\"color: #ff0000;\">Program ismi:<\/span><\/strong> <strong>com.gmail.at.moicjarod.aix<\/strong><\/p>\n<p>ESP32 ile ilk defa \u00e7al\u0131\u015facaksan\u0131z ARDUINO IDE i\u00e7inde yapman\u0131z gerekenler var. Dosyalar\u0131n bulundu\u011fu yerde resimli anlat\u0131mlar\u0131 var. resimlere bakarak gerekli programlar\u0131 y\u00fcklemelisiniz ve IDE men\u00fclerinde PREFERENCES (Tercihler) yazan yere a\u015fa\u011f\u0131daki resimdeki gibi ilgili sat\u0131rlar\u0131 yazman\u0131z gerekiyor.<\/p>\n<p><strong><span style=\"color: #ff0000;\">esp01 i\u00e7in tercihler sat\u0131r\u0131<\/span><\/strong><\/p>\n<p>https:\/\/arduino.esp8266.com\/stable\/package_esp8266com_index.json<\/p>\n<p><strong><span style=\"color: #ff0000;\">esp32 i\u00e7in tercihler sat\u0131r\u0131<\/span><\/strong><\/p>\n<p>https:\/\/raw.githubusercontent.com\/espressif\/arduino-esp32\/gh-pages\/package_esp32_index.json<\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_BLE_KEYBOARD\/PICTURE\/esp32_tercihler.PNG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_BLE_KEYBOARD\/PICTURE\/esp32_tercihler.PNG?raw=true\" alt=\"\" width=\"500\" height=\"333\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/333;\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><strong><span style=\"color: #ff0000;\">FARKLI B\u0130R KLAVYE:\u00a0<\/span><\/strong><br \/>\nB\u00fct\u00fcn bunlara ek olarak Android telefonunuzdaki ekran klavyesini de kullan\u0131m i\u00e7in ayarlayabilirsiniz. a\u015fa\u011f\u0131daki ekranda 2 adet textbox var. 1 adet clock sens\u00f6r\u00fc var. \u015eayet textbox1 e ekran klavyesi ile bir karakter yazd\u0131ysan\u0131z bu 30ms i\u00e7inde textbox2 ye yaz\u0131l\u0131yor. Bu temel bilgi. siz ise bu textbox2 deki karakteri al\u0131p ESP32 ye g\u00f6nderbilirsiniz. ESP32 deki program\u0131n\u0131z gelen karakterin ascii kodunu PC ye g\u00f6nderecek klavye koduna \u00e7evirecektir.<br \/>\nBu sadece sizin i\u00e7in bir \u00f6rnek android program\u0131d\u0131r.<br \/>\nYapman\u0131z gereken basit textbox2 ye bilgi geldi\u011finde sizin WIFI g\u00f6nderme k\u0131sm\u0131na da gelecek ve h\u0131zl\u0131ca g\u00f6nderecek.<br \/>\nBen sadece temel k\u0131sm\u0131n\u0131 buraya koyuyorum. EKRAN KLAVYES\u0130N\u0130 de kullanabilmeniz i\u00e7in.<\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_BLE_KEYBOARD\/PICTURE\/ekranklavyesi_inventor.PNG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_BLE_KEYBOARD\/PICTURE\/ekranklavyesi_inventor.PNG?raw=true\" alt=\"\" width=\"500\" height=\"333\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/333;\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #ff0000;\"><strong>T\u00dcM PROGRAMLARA<a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/tree\/main\/ESP32_BLE_KEYBOARD\" target=\"_blank\" rel=\"noopener\"> BURADAN ULA\u015eAB\u0130L\u0130RS\u0130N\u0130Z<\/a>. \u00a0<\/strong><\/span><\/p>\n<p>&nbsp;<\/p>\n<p><iframe title=\"ESP32 BLE KEYBOARD\" data-src=\"https:\/\/www.youtube.com\/embed\/e8nga13wOhw\" width=\"928\" height=\"522\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; Bu fikir nereden do\u011fdu. Tabii ki ihtiya\u00e7tan. PC ba\u015f\u0131nda filim seyretmek yerine PC yi a\u00e7\u0131p yatt\u0131\u011f\u0131n\u0131z\u00a0 yerden seyretmek isterseniz de\u011fi\u015fen durumlara g\u00f6re sesini a\u00e7, kapat, durdur gibi komutlara ihtiyac\u0131n\u0131z&#8230; <\/p>\n","protected":false},"author":1,"featured_media":2768,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,12,112,24],"tags":[],"class_list":["post-2757","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino","category-pcprog","category-esp32-proje","category-mit-app-inventor-2"],"_links":{"self":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/2757","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/comments?post=2757"}],"version-history":[{"count":3,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/2757\/revisions"}],"predecessor-version":[{"id":2772,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/2757\/revisions\/2772"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/media\/2768"}],"wp:attachment":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/media?parent=2757"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/categories?post=2757"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/tags?post=2757"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}