-
Notifications
You must be signed in to change notification settings - Fork 0
/
esp32-ile-calismak.html
198 lines (163 loc) · 13.3 KB
/
esp32-ile-calismak.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="utf-8">
<title> ESP32 ile çalışmak
</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="HandheldFriendly" content="True" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="author" content="0x656e" />
<meta name="description" content="Selamlar, Geçen hafta sonu sevdiğim bir abim daha önce almış olduğu ESP32 kartını denemem için bana getirmişti. Malesef sadece dün akşam bu kart ile ilgilenebildim. Tabi ki daha öncesinde kart hakkında araştırmalar yapmış bulundum. Bu kart ne işe yarar? Bu kart tümleşik bir kart olarak geçiyor. Kendine ait bir işlemcisi …" />
<meta name="keywords" content="esp32 introduction, esp32 başlangıç, esp32 türkçe, esp32 kullanmak">
<meta property="article:tag" content="esp32 introduction" />
<meta property="article:tag" content="esp32 başlangıç" />
<meta property="article:tag" content="esp32 türkçe" />
<meta property="article:tag" content="esp32 kullanmak" />
<link rel="canonical" href="https://enesergun.net/esp32-ile-calismak.html"/>
<meta name="description" content=""/>
<!-- og definitions -->
<meta property="og:type" content="article" />
<meta property="og:url" content="https://enesergun.net/esp32-ile-calismak.html" />
<meta property="og:title" content="ESP32 ile çalışmak" />
<meta property="og:description" content="Selamlar, Geçen hafta sonu sevdiğim bir abim daha önce almış olduğu ESP32 kartını denemem için bana getirmişti. Malesef sadece dün akşam bu kart ile ilgilenebildim. Tabi ki daha öncesinde kart..." />
<meta property="og:image" content="https://w0.peakpx.com/wallpaper/212/918/HD-wallpaper-virtual-world-sunset-80s-landscape-retro-theme-tron.jpg" />
<link rel="stylesheet" href="theme/style.css">
<link href="https://enesergun.net/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Enes Ergün Atom Feed" />
</head>
<body>
<div class="container">
<header class="blog-header">
<h1><a href="https://enesergun.net" class="glitch glow" data-text="Enes Ergün">Enes Ergün</a></h1>
<p> Chaotic Neutral / ISTP-T - 30 lvl rogue - Cyber Security </p>
<nav>
<a href="https://enesergun.net/">INDEX</a>
<a href="https://enesergun.net/archives">ARCHIVES</a>
<a href="https://enesergun.net/categories">CATEGORIES</a>
</nav>
</header>
<div class="post">
<header>
<h1>ESP32 ile çalışmak</h1>
<p class="date">Written on <time datetime="2018-04-14T13:12:00+03:00">Apr 14, 2018</time></p>
</header>
<article>
<p>Selamlar,</p>
<p>Geçen hafta sonu sevdiğim bir abim daha önce almış olduğu ESP32 kartını denemem için bana getirmişti. Malesef sadece dün akşam bu kart ile ilgilenebildim. Tabi ki daha öncesinde kart hakkında araştırmalar yapmış bulundum. </p>
<h4>Bu kart ne işe yarar?</h4>
<p>Bu kart tümleşik bir kart olarak geçiyor. Kendine ait bir işlemcisi/rom eprom artık ne diyorsunuz bilmiyorum metadolojiye o kadar hakim değilim. Yani burada bahsetmek istediğim şey bu kartı alıp usb ile bağladıktan ve programladıktan sonra tek başına bir şekilde kullanabiliyorsunuz. Herhangi bir board'a ihtiyacı yok ( eg: Arduino, Raspberry ).</p>
<h4>Özellikler</h4>
<p><a href="https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf">Ayrıntılar için tıklayınız</a></p>
<p>Aşağıda ki resimde bir karşılaştırma göreceksiniz. Bu karşılaştırma da oldukça popüler olan ESP8266 modülü ile ESP32'nin farklarını göreceksiniz. ESP32 de bluetooth olduğundan dolayı Low Level Bluetooth projelerinizde bile kullanabilirsiniz(Beacon).</p>
<p>Beacon <a href="https://www.donanimhaber.com/diger-bilim-ve-teknoloji/haberleri/Dosya-konusu-Beacon-teknolojisi-nedir-Nerelerde-kullanilir.htm">Türkçe Beacon Nedir?</a></p>
<p><img alt="Differences" src="https://www.cnx-software.com/wp-content/uploads/2016/03/ESP8266_vs_ESP32.png"></p>
<p>Ben şuan bu kartı Samsung Fast Charge özellikli bir usb kablosu ile sıkıntısız bir şekilde kullanıyorum. Tabi ki kabloyu USB(5.0v) üzerinden bağlıyorum.</p>
<h4>Başlayalım</h4>
<p><em>Öncelikle bu yazıyı ben bu işte profesyonel, çok iyi olduğum için değil dün akşam bu konuda herhangi bir Türkçe referans bulamadığımdan dolayı yazıyorum. Bir nevi çevirmenlik yapacağım.</em></p>
<p><strong>Nelere ihtiyacımız var?</strong></p>
<ul>
<li>Bilgisayar</li>
<li>ESP-IDF ( ESP32 için çeşitli script ve toolların olduğu bir paket )</li>
<li>ESP32</li>
<li>USB Kablosu</li>
</ul>
<p><strong>Linux için kurulum</strong></p>
<p>Ben debian based bir sistem kullandığımdan dolayı aşağıda ki gereksinimleri kuracağım sizler işletim sisteminize göre bunları kurmalısınız.</p>
<div class="highlight"><pre><span></span><code>sudo apt-get install gcc git wget make libncurses-dev flex bison gperf python python-serial
</code></pre></div>
<p><a href="https://esp-idf.readthedocs.io/en/latest/get-started/linux-setup.html">Diğer Linux Sistemler İçin</a></p>
<p><a href="https://esp-idf.readthedocs.io/en/latest/get-started/windows-setup.html">Windows İçin</a></p>
<p><a href="https://esp-idf.readthedocs.io/en/latest/get-started/macos-setup.html">MAC İçin</a></p>
<p><strong>Xtense-ESP32 Paketini Kuralım</strong></p>
<p>Herhangi bir yerde esp adında veya farklı bir ad ile klasör oluşturunuz. Ben örneğe sadık kalacağım için home dizini üzerinde esp adında bir klasör oluşturdum. Daha sonra burada aşağıda ki komutu girdim.</p>
<div class="highlight"><pre><span></span><code>wget https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz
</code></pre></div>
<p>Şimdi paketimiz indikten sonra bu sıkıştırılmış dosyayı bir klasöre açalım.</p>
<div class="highlight"><pre><span></span><code>tar -xzf xtensa<span class="o">[</span>tab-tab<span class="o">]</span>
</code></pre></div>
<p>Açtığımız klasör içerisinde bin klasörüne gidip isterseniz burada <code>pwd</code> yazabilirsiniz. Buna neden ihtiyacımız var? Çünkü kullandığımız sisteme environment olarak eklememiz gerekmekte.</p>
<p>Ben ZSH kullandığımdan dolayı .zshrc dosyasına ekledim fakat siz BASH kullanıyorsanız .bashrc veya hepsinden bağımsız olarak <code>/etc/profile</code> dosyasına aşağıda ki kodu ekleyelim.</p>
<div class="highlight"><pre><span></span><code><span class="nb">export</span> <span class="nv">PATH</span><span class="o">=</span><span class="s2">"</span><span class="nv">$PATH</span><span class="s2">:</span><span class="nv">$HOME</span><span class="s2">/espdizininiz/xtensa[tab-tab]/bin"</span>
</code></pre></div>
<p>Environment ne diye soracak olursanız sizi <a href="http://www.belgeler.org/lis/archive-tlkg-lis-6.4.html">şuraya alalım</a></p>
<p>Evet burayı tamamladıysak şimdi ESP-IDF kuralım. ESP-IDF içerisinde bize başlangıç aşamasında lazım olacak her şey var. Örnek vermek gerekirse Hello World uygulaması, Bluetooth Scanner, Wireless Scanner gibi amacımıza uygun kod blokları hali hazırda içerisinde bulunuyor.</p>
<p><strong>ESP-IDF Kuralım</strong></p>
<p>İstediğimiz bir yere Github üzerinden aşağıda ki komut ile repomuzu indirelim.</p>
<div class="highlight"><pre><span></span><code>git clone --recursive https://github.com/espressif/esp-idf.git
</code></pre></div>
<p>İndirdikten sonra içerisine girip <code>git submodule update --init</code> yapalım. Yukarıda Environment olarak tanımlama yapmıştık hatırlarsanız aynısını ESP-IDF içinde yapalım.</p>
<div class="highlight"><pre><span></span><code><span class="nb">export</span> <span class="nv">IDF_PATH</span><span class="o">=</span>~/esp/esp-idf
</code></pre></div>
<h4>Merhaba ESP32</h4>
<p>Kurulumlarımız tamamlandıktan sonra bir şeye başlarken her zaman yaptığımız gibi bir hello world yazdıralım. Bu yazma ekranı tabi ki bizim terminalimizde fakat ESP32 tarafından yazılmış olacak.</p>
<p>ESP-IDF içerisinde examples/get-started içerisinde hello_world adlı klasöre gidelim. </p>
<p>Aşağıda ki komutu girelim.</p>
<div class="highlight"><pre><span></span><code>make menuconfig
</code></pre></div>
<p>Bu komutu girdikten sonra sizi terminal üzerinde bir arayüz karşılayacak burada kartımıza ait bilgileri değiştirebileceğiz. ( bende default tanımlı geldiği için değiştirmedim ).</p>
<p>Aşağıda ki resmi direk referans sayfasından alıyorum.</p>
<p><img alt="Serial Flasher" src="https://esp-idf.readthedocs.io/en/latest/_images/project-configuration.png"></p>
<p>Burada en önemli nokta Serial Flasher Config</p>
<p>Buraya girdiğinizde aygıtınızın bağlı olduğu serial port'u göreceksiniz. Bende bu /ttyUSB0 sizler bunu <code>ls /dev/tty*</code> komutunu girerek görebilirsiniz. Bu kısımda hangisi olduğunu bilemiyorsanız aygıtı çıkartıp ve takıp komutu 2 kere çalıştırmanız yeterli.</p>
<p>Serial Flasher Config kısmından Serial Portumuzu girdikten sonra Save yapıyoruz.</p>
<h4>Hadi uygulamayı ESP32'ye atalım</h4>
<p>Bir üst kısımda uygulamamızın ayarlarını kayıt etmiştik hatırlarsanız. Şimdi bu uygulamayı ESP32 üzerine atmamız gerekecek. Bunun için yapmamız gereken tek şey aşağıda ki komutu girmek.</p>
<div class="highlight"><pre><span></span><code>make flash
</code></pre></div>
<p>Bu komutu girdikten sonra yazılımınız ESP32 üzerine atılacaktır. Eğer Connect kısmında benim gibi hata alıyorsanız bu kısımda yapmanız gerken şey ESP32 üzerinde ki BOOT tuşuna basılı tutmanız veya 1 kere basmanız bunu zaten deneyerek görebileceksiniz.</p>
<h4>Hadi uygulama çalışıyor mu bakalım</h4>
<p>Attığımız uygulamanın çalışıp çalışmadığını veya ne çıktı ürettiğini görmek isterseniz bunun için terminale aşağıda ki komutu yazmanız yeterlidir.</p>
<div class="highlight"><pre><span></span><code>make monitor
</code></pre></div>
<p><strong>Not:</strong> Hello World uygulamasından sonra terminalden çıkamayabilirsiniz. Bunun için klavye kısayolu : CTRL + ] (Köşeli Parantez)</p>
<h4>Bağlantı problemi yaşıyorum?</h4>
<p>Cihazınızın sağlam olup olmadığını test etmek için ve bağlantı kontrolleri yapmak için ESP-IDF içerisinde Components kısmında esptool diye bir klasör bulunuyor. Bu klasörün içerisinde ki esptool.py dosyasını aşağıda ki komutla çalıştırırsanız eğer bağlanabilirse size ESP32'niz hakkında bilgiler verecektir. Bu komutu girdikten sonra üzerinde ki tuşları deneyerek hangisine bastıktan sonra Connect olduğuna bakarsanız da olur. (Ben gece 4 de yaptığımdan dolayı hatırlamıyorum sanırım rastgele basmıştım.)</p>
<div class="highlight"><pre><span></span><code>python esptool.py --chip esp32 -b <span class="m">115200</span> -p /dev/ttyUSB0 flash_id
</code></pre></div>
<p>veya</p>
<div class="highlight"><pre><span></span><code>python esptool.py --chip esp32 -b <span class="m">115200</span> -p /dev/ttyUSB0 chip_id
</code></pre></div>
<p>Aşağıda ki ekran görüntüsünü de kendi ekranımdan aldım.</p>
<p><img alt="esp32 Başlamak" src="images/esp32nemicya.jpg"></p>
<p>Okuduğunuz için teşekkürler.</p>
</article>
<footer>
<p>This entry is posted in <a href="https://enesergun.net/category/iot-elektronik.html">iot & elektronik</a>.</p>
</footer>
<div class="comments">
<div id="disqus_thread"></div>
<script type="text/javascript">
var disqus_shortname = '0x656e';
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
</div>
</div>
<footer class="blog-footer">
<ul class="nav">
<li><a href="https://devilinside.me/"> Eşelyon</a></li>
<li><a href="https://medium.com/@brkalbyrk"> Berk Albayrak</a></li>
<li><a href="https://ahmtglr.wordpress.com/"> Ahmet Güler</a></li>
<li><a href="https://kaganisildak.com/"> Kağan Işıldak</a></li>
<li><a href="https://eybisi.run/"> Eybisi</a></li>
<li><a href="https://onur.im/"> Onur Aslan</a></li>
<li><a href="https://canyoupwn.me/"> Canyoupwn.me</a></li>
<li><a href="https://www.oguzozkeroglu.com"> Oğuz Özkeroğlu</a></li>
<li><a href="https://aligoren.com"> Ali Gören</a></li>
<li><a href="https://0xf61.gitlab.io/"> Emir Kurt</a></li>
<br>
<li><a href="www.twitter.com/eness_ergun">Twitter</a></li>
<li><a href="[email protected]">Mail</a></li>
</ul>
<p class="disclaimer">
Built with <a href="http://getpelican.com">Pelican</a>, and <a href="https://github.com/ka1nsha/MBPelican">MB Pelican</a> theme.
</p>
</footer>
</div>
</body>
</html>