Arduino ve Esp8266 Kullanan Web Kontrollü Servo Motor
Esp8266 kullanarak servo motor kontrolü için gerekli bileşenler
Bu özel proje için gerekli bileşenlerin listesi aşağıdadır.
- Arduino UNO
- Servo Motor
- Wi-Fi modülü ESP8266
- Bir adet 2k direnç
- Bir 1k direnç
- Atlama telleri
Wi-Fi modülü esp8266
Wi-Fi modülünün 2 sıra halinde düzenlenmiş 8 pin çıkışı vardır. Entegre tarafın size bakmasını ve iğnelerin ucunuza daha yakın olmasını sağlamak. Soldan sağa doğru alt sıra
- Tx - İletim pimi
- CH-DO - Kanal Aşağı pimi
- RST - Sıfırla
- Vcc - 3.3V güç kaynağı
Soldan sağa üst satırda
Servo Motor:
Tower Pro Company'nin servo motoru aşağıda gösterilmiştir. 3 çıkış teline sahiptir.
Arduino ve esp8266 kullanan Web Kontrollü Servo Motor
ESP8266 Wi-Fi modülünün Arduino ile bağlantıları aşağıdaki gibidir.
- ESP8266 Wi-Fi modülü Tx Pin, Arduino'nun D6'sı ile
- ESP8266 Wi-Fi modülü CH-EN Pin, 3V Arduino ile
- ESP8266 Wi-Fi modülü Vcc Pin, 3V Arduino ile
- ESP8266 Wi-Fi modülü GND Pin, Arduino'nun GND'si ile
- ESP8266 Wi-Fi modülü Voltaj bölücü orta noktalı (seri 1k ve 2k direnç bağlantı noktası) Rx Pin.
- 1k direncin ikinci ucu, Arduino'nun D7'si ile.
- Arduino'nun GND'si ile 2k direncin ikinci ucu.
Servo motorun Arduino ile bağlantıları aşağıdaki gibidir.
- Arduino'nun GND'sine sahip Servo Motor GND pini.
- 5V Arduino ile Servo Motor Vcc pini.
- Arduino'nun D10'lu Servo Motor Sinyal pimi.
Yazılım Bölümü:
Öncelikle Motor açısını kontrol etmek için web sitenizi oluşturacak bir .html sayfası yapmanız gerekir. Bunun için jQuery dosyasına da ihtiyacınız olacak. Her ikisi de aynı klasörde olmalıdır. Her iki dosya da sonunda sağlanır.
Html Kodunun Açıklaması:
<! DOCTYPE> , tarayıcıya bu sayfanın html kodunu yazmak için html5 sürümünü kullandığımızı söyler. Sayfanın en üstünde olmalıdır
Bu etiketlerin içine yazılan <html> </html> kod, web sayfasında ve başlık çubuğunda görüntülenir. Baş ve vücut etiketlerinden oluşur. HTML sayfasının başlangıç ve bitiş noktasını tarayıcıya bildirir.
<head> </head> bu etiketler başlık, stiller, bağlantılar ve jQuery komut dosyası içerir.
<title> </title> başlık etiketinin içine yazılan ifade, sayfanın başlık çubuğunda veya sekmesinde görüntülenir.
<script> </script> bu etiket jQuery'yi dahil etmek için kullanılır. JQuery, görevleri basitleştirmek ve otomatikleştirmek için kullanılan JavaScript kitaplığıdır.
<body> </body> Gövde etiketinin içinde yazılanlar web sitesi sayfasında görüntülenecektir. Ekranı çekici ve okunabilir hale getirmek için gövde etiketinin içinde farklı etiketler kullanılır.
<center> </center> etiketi, metni sayfanın ortasına getirmek için kullanılır
<h1> </h1> boyutu büyütmek için kullanılır. Metin boyutunda farklılık gösteren h2, h3, h4, h5 etiketleri vardır.
<marquee> </marquee> , "direction" özniteliğinde belirtildiği gibi metni belirtilen yönde hareket ettirmek için kullanılır.
<b> <\ b> metni kalın yapar.
<div> </div> , belirtilen yükseklik ve genişlikte bir kutu yapmak için kullanılır. Bunun için kenarlık gösterilmemiştir.
<FORM> </FORM> , kullanıcıdan girdi almak için kullanılır.
<input type = "aralık"> , aralığı etiketlerin özniteliklerinde belirtilebilen bir kaydırıcı oluşturur.
Fonksiyon servo , servoyu belirli bir açıya hareket ettirebilmesi için kaydırıcının değerini karta gönderir ve sonunda bağlantıyı kapatır.
Yazılımın ikinci kısmı, IDE içerisine yerleştirilen ve karta yüklenen Arduino kodundan oluşmaktadır.
Arduino Kodunun Açıklaması:
#include <SoftwareSerial.h> Diğer pinleri Tx ve Rx pinleri olarak kullanmamızı sağlayan yazılım seri kitaplığını dahil edin. Bu, programımızı her yüklediğimizde panonun pin0 ve pin1'deki kablolarını çıkarmaktan bizi kurtarır. D0 ve D1'i Tz ve Rx pinleri olarak kullanırsanız, programı Arduino kartına her yüklediğinizde bu pinleri çıkarmanız gerekecektir.
#include <Servo.h> servo motor kitaplığını dahil et
#define servopin 10 servo motoru pin 10'a bağlayın
#define DEBUG true Modül mesajlarını seri monitörde görüntülemek için
SoftwareSerial compin (6, 7); iletişim pini Tx ve Rx'i tanımlayın
Servo serMtr; Servo Motor Değişkenini beyan et
serMtr.attach (servopin); servo motoru servo pinine takın
serMtr.write (maxPos); pano motorunun takılı olduğunu söylemek için maksimum konuma ayarlandı
serMtr.detach (); daha sonra void loop () işlevine göre çalışabilmesi için motoru ayırın.
Serial.begin (9600); seri monitörü başlatma ve baud hızını 9600 olarak ayarlama
compin.begin (9600); Başlangıç modülü ve baud hızını 9600'e ayarla
sData ("AT + RST \ r \ n", 2000, DEBUG); Modülü sıfırla
sData ("AT + CWMODE = 1 \ r \ n", 1000, DEBUG); Modülü istasyon moduna ayarlayın
sData ("AT + CWJAP = \" Microcontrollerslab.com \ ", \" itulahore786 \ "\ r \ n", 2000, DEBUG); Wi-Fi Yönlendiriciye bağlanın. Değiştir Microcontrollerslab.com Kablosuz Yönlendirici adı ve birlikte itulahore786 Kablosuz yönlendirici şifre ile.
sData ("AT + CIFSR \ r \ n", 1000, DEBUG); Seri monitörde IP adresini gösterme
sData ("AT + CIPMUX = 1 \ r \ n", 1000, DEBUG); Birden çok bağlantıya izin ver
sData ("AT + CIPSERVER = 1,80 \ r \ n", 1000, DEBUG); Web sunucusunu 80 numaralı bağlantı noktasından başlatın
sData, verileri modüle göndermek ve Wi-Fi modülünün yanıtını kontrol etmek için kullanılan bir işlevdir.
void loop () Bu işlevde Wi-Fi modülü verinin gelip gelmediğini kontrol edecektir. Veriler gelirse, bu verileri okuyacak ve seri monitörde gösterecek ve Motoru buna göre hareket ettirecektir.
Avantajları:
- Kablosuz Wi-Fi ağ iletişim cihazları kabloların maliyetini düşürebilir.
- Wi-Fi kurulumu ve yapılandırması, kablolama işleminden daha kolaydır
- Tamamen güvenlidir ve herhangi bir ağa müdahale etmez
- İnternete erişim noktaları üzerinden de bağlanabiliriz
- İnternete kablosuz bağlanabiliriz
Dezavantajları:
- Wi-Fi, insan sağlığına zarar verebilecek radyasyonlar üretir
- Sunucuyu kullanmadığımız zamanlarda Wi-Fi bağlantısını kesmeliyiz
- Verilerin aktarılmasında bazı sınırlamalar vardır, verileri uzun mesafelere aktaramıyoruz.
Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook robotic.code
instagram @roboticcode
Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.