Robotik Kodlama

Robotik Kodlama
Ana Sayfa

İLGİNİZİ ÇEKEBİLECEK LİNKLER :

hc-06 etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
hc-06 etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

30 Haziran 2021 Çarşamba

Arduino Akıllı telefon bluetooth ile sıcaklık ve nem

 


İşte evinizin sıcaklığını ölçmekten ve akıllı telefonunuzdaki verileri toplamaktan oluşan küçük bir ev projesi. Bluetooth modülü, çoklu veri ile başa çıkma yolu ile seri iletişim ve App Inventor 2 ile yapılmış bir akıllı telefon Android uygulaması kullandığımız basit bir projedir.

Not: Fritzing'de görüntülenen modül bir HC-05'tir ancak HC-06 ile aynı pin çıkışına sahiptir.

Malzeme

  • akıllı telefon
  • Arduino UNO'su
  • 5V Pil
  • Sıcaklık sensörü LM35
  • Bluetooth modülü HC-06

kod

Sıcaklık aralığını ve voltaj ile sıcaklık arasındaki dönüştürme kuralını bulmak için LM35 sensörünün veri sayfasını araştırıyoruz Ölçülen voltajı fiziksel bir değere çevirebilme. Sıcaklık ölçüldüğünde, Bluetooth modülü aracılığıyla akıllı telefona gönderilir. Çoklu verilerle başa çıkmak için veriler, deşifre etmeyi kolaylaştıran bir ayırıcı ile bir String'de birleştirilir.

.

#include <SoftwareSerial.h>                          
SoftwareSerial HC06(2,3); 

// Constants
#define DELAY 1000 // Delay between two measurements in ms

// Parameters
const int sensorPin = A0; // Pin connected to sensor

// Variables
float voltage, temperature;

void setup(void) {
  Serial.begin(9600);
  HC06.begin(9600);
}

void loop(void) {
  voltage= analogRead(sensorPin) * (5.0 / 1023.0); // Convert digital value to voltage
  temperature=100*voltage; // conversion from V to °C
  
  Serial.print("Sensor reading = ");
  Serial.println(temperature); // the temperature reading

  // Send voltage and temperature value to app
  HC06.print(voltage);
  HC06.print("x");
  HC06.print(temperature);
  
  delay(DELAY);  
}


Ev Ölçüm Uygulaması

App mucit 2 kullanarak basit bir uygulama oluşturduk.Arduino'dan gelen veriler Android uygulamasına metin olarak gönderiliyor. Sensörden değerleri elde etmek için metnin “x” ayırıcısına göre bölünmesi gerekir. Ortaya çıkan liste öğeleri daha sonra ilgili etiketlerde görüntülenir.

ev ölçümü için android uygulama mucidi 2uygulama mucidi 2 ev ölçüm çizik

Bluetooth modülü, telefonunuzdaki Bluetooth cihazları listesinde saklanmalıdır. Bluetooth modülü HC-05 veya HC-06, uygulamayı kullanmadan önce bir kez eşleştirilmelidir. 

ANA SAYFAYA DÖN

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.


28 Haziran 2021 Pazartesi

Bluetooth HC-06 Modül Resetleme ve Programlama Arduino İle

 Bluetooth HC-06 Modül Resetleme ve Programlama Arduino İle


Modül HC-06'ya genel bakış

modül bluetooth hc06

Bluetooth modülü HC-06, 2'si güç ve 2'si bağlantı kurmak için olmak üzere 4 pime sahiptir.

  • VCC güç kaynağı. Tipik olarak Arduino'nun 5V pinine bağlanır.
  • GND zemin. Tipik olarak Arduino'nun GND pinine bağlanır
  • RX alım pimi. Tipik olarak Arduino'nun iletim pinine (TX) bağlanır
  • TX iletim pimi. Tipik olarak Arduino'nun alım pinine (RX) bağlanır

Arduino kartınızın RX/TX pinini kontrol edin.

Not: HC-06 modülü bir slave modül olduğu için kendi başına başka bir cihaza bağlanamaz. Bunun için Bluetooth modülü HC-05 gibi bir ana modüle ihtiyacınız vardır .

şemalar

arduino modülü hc06 şemaları

Bazı HC-06 modülleri 3V3'te çalışır ve Rx pinindeki 5V voltaj seviyesini desteklemez. Bu durumda, mantık sinyalini dönüştürmek için bir voltaj bölücü köprüsü gerekir (pin3 ile Rx arasında 1k direnç ve Rx ile GND arasında 2k Ohm).

UYARI : Arduino Uno'nun 2 ve 3 numaralı pinlerini kullanıyoruz. Mikrodenetleyiciye bağlı olarak bazı pinler SoftwareSerial iletişimini desteklemeyebilir. Özellikle Arduino Mega, Micro ve Leonardo. Belgeleri kontrol edin

Modül HC-06 konfigürasyonu

HC-06 modülünü yapılandırmak, çalıştığını, doğru şekilde bağlandığını doğrulamak ve adı (birden fazla modül kullandığınızda kullanışlıdır), PIN kodu ve iletişim hızı (baud hızı) gibi parametrelerini değiştirmek için ilginç olabilir. Yapılandırmaya izin vermek için, HC-06 modülüne güç verilmeli ancak eşleştirilmemelidir (LED yanıp sönüyor).

Aşağıdaki kod, seri monitörü kullanarak parametreleri değiştirmenize izin verir.

#include <SoftwareSerial.h>

SoftwareSerial hc06(2,3);

void setup(){
  //Initialize Serial Monitor
  Serial.begin(9600);
  Serial.println("ENTER AT Commands:");
  //Initialize Bluetooth Serial Port
  hc06.begin(9600);
}

void loop(){
  //Write data from HC06 to Serial Monitor
  if (hc06.available()){
    Serial.write(hc06.read());
  }
  
  //Write from Serial Monitor to HC06
  if (Serial.available()){
    hc06.write(Serial.read());
  }  
}

Seri iletişimi test etmek için, seri monitöre AT girin ve gönder'e tıklayın veya enter'a basın. İletişim seçeneklerinde “Bitiş çizgisi yok” ve doğru baud hızını seçtiğinizden emin olun. Modül Tamam yanıtını vermelidir. Çalışmıyorsa, kablolamayı ve modül versiyonunu kontrol edin.

Modül adını değiştirmek için, AT + NAMEmodule_name girin. Modül, OKsetname yanıtı vermelidir. (Örn: Modül adını BTM1 olarak değiştirmek istiyorsanız AT+NAMEBTM1 giriniz)

Modül PIN kodunu değiştirmek için AT+PINxxxx girin. Modül OKsetPIN'e cevap vermelidir. (Örn: PIN'i 0000 olarak değiştirmek istiyorsanız AT+PIN0000 girin)

Modül iletişim hızını değiştirmek için (sadece gerekliyse), AT+BAUDx girin. Ör: Baud hızını 9600 olarak değiştirmek istiyorsanız AT+BAUD4 girin. Modül OK9600'e cevap vermelidir. (Not: 1200 için 1, 2400 için 2, 4800 için 3, 9600 için 4, 19200, için 5, 38400 için 6, 57600 için 7, 115200 için 8)

UYARI: Bluetooth modülü HC-06'nın farklı sürümleri çıkar ve AT komutlarının listesi değişebilir. AT + VERSION girerek modül üzerinde yazılı seri numarasını ve aygıt yazılımı sürümünü kontrol edin.

Örneğin, donanım yazılımı sürümü 3.0-20170609 olan ZS-040 etiketli HC-06 modülü, AT+NAMExxxx (modülün yeni adı xxxx ile) komutunu gönderirken ERROR(0) döndürür. Bu modülü yapılandırmak için AT komutları şunlardır:

  • AT+NAME=xxxx modülün adını ayarlamak için
  • AT+PSWD:”xxxx” modülün pin kodunu ayarlamak için

Bluetooth modülünüzü HC-06 yapılandırırken bir sorunla karşılaşırsanız yorum yapmaktan çekinmeyin.

Bluetooth modülü HC-06'yı eşleştirme

Modül istediğiniz gibi yapılandırıldıktan sonra, HC-06 modülünü herhangi bir Bluetooth cihazı gibi istediğiniz cihazla eşleştirebilirsiniz. Kullanılabilir Bluetooth cihazı listesinden modülünüzün adını seçin (varsayılan HC-06'dır) ve PIN kodunu girin (varsayılan 1234'tür). Tamamlandığında, LED'in yanıp sönmesi durmalıdır.

Kod

Modülünüz eşleştirildikten sonra, istediğiniz işlevselliği elde etmek için aşağıdaki kodu değiştirebilirsiniz. Arduino'da bir işlevi etkinleştirmek için AÇIK veya KAPALI komutunu göndermesini bekliyoruz.(Cep telefonuna bluetooth programı eklenecek.)

HC-06 modülünü işlemek için Arduino kartında Seri bağlantı noktası tanımlamaya izin veren SoftwareSerial.h kitaplığını kullanıyoruz Bilinmesi gereken fonksiyonlar şunlardır:

  • Seri bağlantı noktasının pinlerini tanımlamak için SoftwareSerial hc06(Rx,Tx)
  • baud hızını tanımlamak için hc06.begin() (değer, modülünüzle aynı olmalıdır)
  • hc06.available() modülün arabelleğinde veri olup olmadığını test etmek için
  • hc06.read() her seferinde bir bayt veri okumak için
  • ASCII biçiminde bir dize göndermek için hc06.print ()
  • hc06.write () her seferinde bir bayt veri göndermek için
#include <SoftwareSerial.h>

SoftwareSerial hc06(2,3);

String cmd="";
float sensor_val=0;

void setup(){
  //Initialize Serial Monitor
  Serial.begin(9600);
  //Initialize Bluetooth Serial Port
  hc06.begin(9600);
}

void loop(){
  //Read data from HC06
  while(hc06.available()>0){
    cmd+=(char)hc06.read();
  }

  //Select function with cmd
  if(cmd!=""){
    Serial.print("Command recieved : ");
    Serial.println(cmd);
    // We expect ON or OFF from bluetooth
    if(cmd=="ON"){
        Serial.println("Function is on");
    }else if(cmd=="OFF"){
        Serial.println("Function is off");
    }else{
        Serial.println("Function is off by default");
    }
    cmd=""; //reset cmd
  }
  // Simulate sensor measurement
  sensor_val=(float)random(256); // random number between 0 and 255
    
  //Write sensor data to HC06
  hc06.print(sensor_val);
  delay(100);
}


Baud hızı tarayıcı

Modül baud hızınızı bulmakta zorluk çekiyorsanız, Bluetooth'u başlatan ve her baud hızı değeri için AT komutu gönderen bir kod burada.

#include <SoftwareSerial.h>
SoftwareSerial hc06(2, 3);

void setup() {
  //Initialize Serial Monitor
  Serial.begin(9600);
  // scan
  scanBaudrate();
}

void loop() {}

void scanBaudrate() {
  unsigned long bauds[12] = {300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 74880, 115200, 230400, 250000};
  for (int i = 0; i < 12; i++) {
    hc06.begin(bauds[i]);
    delay(10);
    Serial.print(F("Baudrate "));
    Serial.println(bauds[i]);
    command("AT", 2000);

  }
}
String command(const char *toSend, unsigned long milliseconds) {
  String result;
  Serial.print("Sending: ");
  Serial.println(toSend);
  hc06.print(toSend);
  unsigned long startTime = millis();
  Serial.print(F("Received: "));
  while (millis() - startTime < milliseconds) {
    if (hc06.available()) {
      char c = hc06.read();
      Serial.write(c);
      result += c;  // append to the result string
    }
  }
  Serial.println();  // new line after timeout.
  return result;
}


İletişim baud hızı doğru ayarlandığında, Bluetooth modülü OK yanıtını vermelidir. Thois kodu, modülün düzgün çalışıp çalışmadığını ve hangi baud hızını kullandığını size hızlı bir şekilde söyleyecektir.



ANA SAYFAYA DÖN

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.