Robotik Kodlama

Robotik Kodlama
Ana Sayfa

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

1 Mayıs 2021 Cumartesi

Kızılötesi Algılama ve Arduino

Kızılötesi Algılama ve Arduino

Anlayabileceğiniz gibi, bir IR sisteminin temel gereksinimleri, bir sinyali iletmek ve sinyali almak için verici ve alıcı modüllerdir. Gördüğümüz IR sensörleri genellikle EM spektrumunun (nanometre, nm cinsinden verilir) aynı bant genişliğinde çalışan (gönderen ve alan) bir çift olarak gelir. Bunları ardışık olarak satmak harikadır, ancak parçaları kesip değiştiriyorsanız, bant genişliği iki bileşene uyması için kullanılan özelliktir.

Kızılötesini nasıl kullanacağız ?

Bu tür bir teknolojinin bariz kullanımı uzaktan kumandadır, ancak kızılötesi bir ton harika uygulamanın bir parçasıdır. Engellerden kaçınmak ve bir duvara yakın olduğunda bilmek için robotunuza 'gözler' vermek mi istiyorsunuz? Kızılötesi, uygun bir seçenektir. Hareket algılandığında bir eylemi tetikleyebilecek bir hareket sensörü oluşturmak istiyorsanız, kesinlikle IR'yi kullanabilirsiniz. Gece görüş kameraları ve termal görüntüleme bile kızılötesi teknolojiyi kullanır. Kızılötesi teknolojisi için çok sayıda uygulama vardır ve onu kullanan üretici dostu ürünler de yaygın ve iyi belgelenmiştir!

Basit bir kırılma ışını devresi yapacağız. Adafruit'teki arkadaşlarımız , bu kullanım için yapılmış harika bir modül çifti yaptılar. Aksiyon filmlerindeki hırsızlık sahnelerini düşünün, kahraman yeşil lazer alarmları labirentinde dikkatlice hareket ediyor. Yeşil lazer kısmı olmadan bunlardan birini yapacağız. Bir dakika bekle; sen bir yapıcısın! Birine çok meraklıysanız, eklemekten çekinmeyin!

kızılötesi kırılma ışını kırma eskiz

Örnek bir yük devresi olarak temel bir piezo hoparlör devresi kullanacağız. Bu devre, kullandığımız kızılötesi ışının durumuna tepki verecektir. Kırılma kirişleri, anahtarlar hakkındaki makalemizin de harika bir uzantısıdır, ancak kabloları ve fiziksel anahtarı kaldırıyoruz. Esasen kurulumun hoparlör kısmını istediğiniz herhangi bir şeyle değiştirebilirsiniz, ancak alarm sistemi ile uyumlu bir zil sesi görünür. Daha sonraki eğitimlerde, Arduino'nuzla bir IR uzaktan kumanda yapacağız! 

Bugün bizimle birlikte takip etmek için şunlara ihtiyacınız olacak:

  • Arduino Uno
  • Piezo Hoparlör
  • Bağlantı telleri
  • Adafruit 3mm IR Break Beam modülü

Donanım Kesintileri ve Pullup Dirençleri

Devremizin taslağını yazarken bakacağımız birkaç ekstra şey var. Programımızın ışın frenlemesine tepki vermesi ve bu olduğunda bir ses çalması gerekecek.

Bu olayı kontrol etmek için donanım kesintilerini kullanacağız. Donanım kesintileri için mükemmel bir uygulama olmayabilir, ancak konsepti tanıtmak için harika bir yer! Kesintileri kullanırken veya hatta sadece donanım kullanırken, kontrol pimini bilinen bir duruma getirmek iyi bir uygulamadır. Bu şekilde, onunla arayüz oluşturduğumuzda nasıl tepki vereceğini doğru bir şekilde tahmin edebiliriz.

Pim bilinen bir durumda değilse, ona kayan diyoruz. Kayma, esas olarak, pimin mantığının açık veya kapalı olmadığı ve muhtemelen iki değer arasında salınım yaptığı anlamına gelir. Bu nedenle, pimi bilinen bir duruma getirmek için, pimi yüksek mantığa bağlamak için bir çekme direnci kullanabiliriz. ATMega328 için dahili olarak çekme dirençleri mevcuttur; biz de Uno'yu kullanıyoruz ve bunlara işlev kullanılarak erişilebilir

pinMode ([PinNumber], INPUT_PULLUP);

Kesinti pimleri yaptıkları işte harikadır. Sadece boşta durmak, bir pin mantığının yüksekten alçağa veya tam tersi şekilde gitmesini beklemek için yapılmıştır. Bu olduğunda, o olaya hizmet etmek için kodunuza rutinler / işlevler girebilirler.

İyi çalışıyor, devrenin arkasındaki koda bakalım.

Kod

# tanım PIEZOPIN 3 # tanım BEAMPIN 2

Uçucu int sensorState = 0 , lastState = 0 ; // Değişkenler uçucu olmalıdır veya bunları

void kurulumu () {
pinMode ( PIEZOPIN , ÇIKIŞ ); Çıkış için // initialism Piezo pinMode ([ BEAMPIN ] INPUT_PULLUP );
attachInterrupt ( digitalPinToInterrupt ( 2 ), buzz_ISR , ALÇALMA ); Seri . başlangıç ( 9600 ); }


geçersiz döngü () {
sensorState = digitalRead ( BEAMPIN ); // ışının mevcut durumunu oku if ( sensorState == HIGH ) { // Işın kırık değilse bana her şeyin yolunda olduğunu söyle.
analogWrite ( PIEZOPIN , 0 ); Seri . println ( "Herşey Tamam" ); } else { Serial . println ( "Her Şey Tamam Değil" );
} }

void buzz_ISR () {
analogWrite ( PIEZOPIN , 20 ); // Buzzer'ı Tetikle! }

Pekala, devrenizi ve taslağınızı bir araya getirin ve çalıştırın. Siz ışınlarını kırana kadar sisteminiz kesinlikle hiçbir şey yapmamalıdır; bunu yaptığınızda piezonun tetiklendiğini duymalı ve bir uğultu sesi çıkarmalısınız! 

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.

Bluetooth HC-05 ile ve Arduino ile 2 DC Motor kontrol

 

Bluetooth HC-05 ile ve Arduino ile 2 DC Motor kontrol

Burada DC motorun hızını ve yönünü kontrol etmek için Arduino ve Bluetooth modülünü kullandığımızla aynıdır  Bu projede DC motorun nasıl kontrol edileceğini, motorların yönünü, motorlar arasındaki haberleşmeyi ve Akıllı Telefon'u nasıl kontrol edeceğimizi öğrendiğimiz bu projede Arduino UNO'ya takılı Bluetooth modülü HC-05 kullanılarak yapıldı.













Gerekli Bileşenler:

  • Arduino Uno: Dijital pinleri sayesinde kullanımı kolay ve farklı cihazlarla arayüz oluşturmak kolaydır. Burada Bluetooth modülünü ve DC motoru aynı anda arayüzledik.
  • 2 DC Motor
  • L293D Motor Sürücüsü : Motoru doğrudan Arduino'ya bağlamak iyi değildir çünkü motor Arduino'nun sağladığı daha az akım gerektirir. Bu problemi çözmek için DC motor ile Arduino arasına bağlanan bir motor sürücüsü kullanılır.
  • Bluetooth Modülü HC-05

Devre şeması:bluetooth ve Arduino kullanarak dc motor hız ve yön kontrolü

Bağlantılar:

  • 5V ve IC'nin topraklaması 5V'a ve Arduino'nun toprağı.
  • Motor 1 pinleri IC pinleri 3 ve 6'yı bağlar.
  • Motor 2 pimleri, IC pimleri 11 ve 13'ü bağlar.
  • IC'nin Input1 ve input2 pinleri sırasıyla Arduino'nun 3 ve 4 pinlerini bağlar.
  • IC'nin input3 ve input4 pinleri sırasıyla Arduino'nun 8 ve 9 pinlerini bağlar
  • Enable1 ve Enable2, 2 ve 11 pinlerini bağlayın.
  • Bluetooth pin Vcc ve GND, Arduino'nun Vcc ve GND'sine doğrudan bağlanır ve sırasıyla Arduino'nun TX ve RX'ine bağlı RX ve TX pinleri.

Çalışma Şekli

Öncelikle Bluetooth modülünü Akıllı Telefonumuza bağlarız. Daha sonra kodlama talimatına göre mesajı gönderdik. st sonra 1 mesaj motoru ileriye gidiyor edilir mesaj göndermek; Motorun dönmesini istiyorsak motoru durdurmak istiyorsak 3 motora dur mesajı gönderelim. Motoru sola veya ters çevirmek istersek 2 ve 5 numaralı mesajlar gönderilirse sırasıyla motor sola ve tersine çevrilir.

Kod

int motor1Pin1 = 3; // pin 2 on IC

int motor1Pin2 = 4; // pin 7 on IC

int enable1Pin = 2; // pin 1 on IC

int motor2Pin1 = 8; // pin 10 on IC

int motor2Pin2 = 9; // pin 15 on IC

int enable2Pin = 11; // pin 9 on IC

int state;

int flag=0;       

int stateStop=0; 

void setup() {

    // sets the pins as outputs:

    pinMode(motor1Pin1, OUTPUT);

    pinMode(motor1Pin2, OUTPUT);

    pinMode(enable1Pin, OUTPUT);

    pinMode(motor2Pin1, OUTPUT);

    pinMode(motor2Pin2, OUTPUT);

    pinMode(enable2Pin, OUTPUT);

    // sets enable1Pin and enable2Pin high so that motor can turn on:

    digitalWrite(enable1Pin, HIGH);

    digitalWrite(enable2Pin, HIGH);

    // initialize serial communication at 9600 bits per second:

    Serial.begin(9600);

}

void loop() {

    //Start Serial Communication

    if(Serial.available() > 0){    

      state = Serial.read();  

      flag=0;

    }  

    // if the state is '1' the DC motor will go forward

    if (state == '1') {

        digitalWrite(motor1Pin1, HIGH);

        digitalWrite(motor1Pin2, HIGH);

        digitalWrite(motor2Pin1, LOW);

        digitalWrite(motor2Pin2, HIGH);

        if(flag == 0){

          Serial.println("Go Forward!");

          flag=1;

        }

         delay(3000);

        state=3;

        stateStop=1;

    }

    // if the state is '2' the motor will turn left

    else if (state == '2') {

        digitalWrite(motor1Pin1, HIGH);

        digitalWrite(motor1Pin2, LOW);

        digitalWrite(motor2Pin1, LOW);

        digitalWrite(motor2Pin2, LOW);

        if(flag == 0){

          Serial.println("Turn LEFT");

          flag=1;

        }

        delay(3000);

        state=3;

        stateStop=1;

    }

    // if the state is '3' the motor will Stop

    else if (state == '3' || stateStop == 1) {

        digitalWrite(motor1Pin1, LOW);

        digitalWrite(motor1Pin2, LOW);

        digitalWrite(motor2Pin1, LOW);

        digitalWrite(motor2Pin2, LOW);

        if(flag == 0){

          Serial.println("STOP!");

          flag=1;

        }

        stateStop=0;

    }

    // if the state is '4' the motor will turn right

    else if (state == '4') {

        digitalWrite(motor1Pin1, LOW);

        digitalWrite(motor1Pin2, LOW);

        digitalWrite(motor2Pin1, LOW);

        digitalWrite(motor2Pin2, HIGH);

        if(flag == 0){

          Serial.println("Turn RIGHT");

          flag=1;

        }

        delay(3000);

        state=3;

        stateStop=1;

    }

    // if the state is '5' the motor will Reverse

    else if (state == '5') {

        digitalWrite(motor1Pin1, LOW);

        digitalWrite(motor1Pin2, HIGH);

        digitalWrite(motor2Pin1, HIGH);

        digitalWrite(motor2Pin2, LOW);

        if(flag == 0){

          Serial.println("Reverse!");

          flag=1;

        }

         delay(3000);

        state=3;

        stateStop=1;

    }}

}

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.

Arduino kullanarak Basit Tek Yönlü Trafik Işığı

 

Arduino kullanarak Basit Tek Yönlü Trafik Işığı


Basit Tek Yönlü Trafik Işığı: In bu öğretici basit tek yönlü trafik sinyal Arduino Uno R3 kullanılarak tasarlanmıştır. Arduino öğreticilerinin  tam listesini kontrol edin  Trafik Işıkları, araç trafiğini kontrol etmek için kullanılır. Bu nedenle trafik sıkışıklığını ve kazaları önlemek için trafik ışıkları kullanılır. Trafik sinyalinde sürücüler için farklı mesajlara sahip üç ışık vardır. Kırmızı ışık sürücüye durma talimatı verir, yeşil ışık sürücüye kavşaktan GO talimatını verirken, sarı ışık sürücüyü uyarır.

Gerekli Bileşenler

  • Arduino UNO Kurulu
  • Kırmızı, Yeşil, Sarı (kehribar) LED'ler
  • Dirençler
  • Breadboard

DevreArduino kullanarak basit tek yönlü trafik sinyali

Kırmızı, Sarı ve Yeşil LED'lerin anotunu sırasıyla dijital pimler 4, 7 ve 8 ile bağlayın. Ve LED'lerin katotunu doğrudan toprağa bağlayın  .

Kod

  • Geçersiz setup () fonksiyonunda OUTPUT için kırmızı, yeşil ve sarı LED'lerin 4,8 ve 7 dijital pinlerini beyan ederim.
  • DigitalWrite () fonksiyonu 1 geçersiz döngü () fonksiyonu kullanımda st Kırmızı led talimat durdurmak için sürücü talimat Yüksek'tir
  • Ardından 10 saniyelik gecikmeden sonra Sarı led Yüksek yanarak sürücüye hazır duruma gelmesini söyler ve Kırmızı led düşüktür.
  • Ardından 1 saniyelik gecikmeden sonra hem Kırmızı hem de Sarı ledler Düşük ve Yeşil Led Yüksek olup sürücüye talimata gitmesi talimatını verir.
  • Sarı Işıklar, sürücüyü uyaran sürücü için iki Olasılığa sahiptir.
  • Bir sonraki ışık kırmızı ise bekleyin
  • Ve yeşil ışık yanarsa, gitmeye / motoru AÇIK konuma getirmeye hazırlanın.

basit tek yönlü trafik sinyali kodu

int ledred=4;

int ledgreen=8;

int ledyellow=7;

void setup() {

  pinMode(ledred,OUTPUT);

  pinMode(ledgreen,OUTPUT);

  pinMode(ledyellow,OUTPUT);

  // put your setup code here, to run once:

}



void loop() {

  digitalWrite(ledred,HIGH);

  delay(10000);

  digitalWrite(ledyellow,HIGH);

  digitalWrite(ledred,LOW);

  delay(1000);

  digitalWrite(ledgreen,HIGH);

  digitalWrite(ledred,LOW);

  digitalWrite(ledyellow,LOW);

  delay(10000);

  digitalWrite(ledyellow,HIGH);  

  digitalWrite(ledgreen,LOW);  

  delay(2000);     

  digitalWrite(ledyellow,LOW); }  // put your main code here, to run repeatedly:

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.


ESP8266 ve Arduino ile bulut üzerinden wifi tabanlı ev otomasyon sistemi

 

ESP8266 ve Arduino ile bulut üzerinden wifi tabanlı ev otomasyon sistemi


Şimdi S Remote Android Uygulamasını kullanarak cihazları kontrol etmek için ESP8266 wifi modülünü kullanıyorum. S uzak uygulaması Google Play mağazasından ücretsiz olarak indirilebilir. Bu wifi tabanlı ev otomasyonu projesinde esp8266 wifi modülü kullanılarak bulut üzerinden, Ev cihazlarını kontrol etmek için kablosuz iletişim olarak wifi kullanacağım. Bu wifi tabanlı ev otomasyon sisteminde Arduino Uno R3 kullanıyoruz Wifi üzerinden pic mikrodenetleyici tabanlı ev otomasyonu kullanan benzer bir proje yayınladık ayrıca kontrol etmek de isteyebilirsiniz. 

arduino kullanarak bulut üzerinden iot tabanlı ev otomasyonu

Wifi üzerinden wifi tabanlı ev otomasyonu için Blok Şemasıarduino blok diyagramı kullanarak bulut üzerinden iot tabanlı ev otomasyonu

Gerekli Bileşenler:

  • ESP8266 Wifi Modülü: ESP8266, Transfer Kontrol Protokolü (TCP) ve İnternet Protokolü (IP) sağlayan bir wifi çipidir. Piyasada farklı ESP8266 modülleri mevcuttur. Bu projede ilk modeli kullanıyoruz. 6 pimli olup, 3.3v ile çalışır. ESP8266, aşağıdaki komutlarla başlatıldı:
  • AT
  • AT + CWMODE = 3
  • AT + CIFSR
  • AT + CIPMUX = 1
  • ESP8266 daha sonra aşağıdaki komutlarla mobil etkin noktaya bağlandı:
  • AT + CWLAP (mevcut Wi-Fi ağlarının listesini döndürür)
  • AT + CWJAP = "SSID", "şifre" Örnek: AT + CWJAP = "PTCL-BB", "12345467"
  • Arduino Uno: Arduino, ATmega 328P etrafında inşa edilen geliştirme kartlarıdır. Arduino, arayüz röle modülü, 16 × 2 LCD ve ESP8266 wifi modülüne çok sayıda pin sağladığı için bu proje için mükemmeldir.
  • 4 Kanal Röle Modülü : Röle, Arduino dijital pininden gelen sinyal gibi düşük dc voltajları kullanarak yüksek voltajlı cihazları açıp kapatmak için kullanılır. Bu projemizde 4 kanal röle modülü kullandık, her bir röleyi ayrı ayrı bağlamak yerine Arduino ile arayüz oluşturmak kolaydır. 250VAC ve 10 ampere kadar akım taşıyabilir.
  • 16X2 LCD: 16 × 2 LCD 16 karakteri iki satırda görüntülemek için kullanılır. Mevcut kütüphanesi sayesinde Arduino ile arayüz oluşturmak kolaydır. Bu projede bu LCD, cihazların durumunu açık veya kapalı olarak görüntülemek için kullanılır.

Bulut üzerinden wifi tabanlı ev otomasyon sisteminin Devre Şeması

Bağlantı şeması

16 × 2 LCD:

  • SS toprağa.
  • DD , besleme gerilimi için.
  • O , 10k potansiyometrenin pimini ayarlamak için.
  • RS'den Pin A0'a.
  • RW toprağa.
  • A1'i Sabitlemeyi etkinleştirin.
  • LCD D4'ten Pin A2'ye.
  • LCD D5'den Pin A3'e.
  • LCD D6'dan Pin A4'e.
  • LCD D7'den Pin A5'e.
  • Potansiyometrenin bir ucunu topraklayın.
  • Potansiyometrenin diğer ucuna 5v.

4 Kanal Röle modülleri:

  • Harici 5 volt'tan JD V CC'ye .
  • Yerden yere.
  • Ini1'den Pin 3'e.
  • Ini2'den Pin 4'e.
  • Ini3'ten Pin5'e.
  • Vcc'den Arduino 5v'ye.
  • Tüm ampullerin bir terminalini normalde açık olan rölelerin terminaline bağlayın.

220VAC'nin bir ucu, rölenin tüm ortak terminallerine ve diğer ucu ampullerin diğer terminallerine.

Arduino'ya ESP8266 wifi modülü:

  • Modül Vcc - 3.3v.
  • Modül CH_PD - 3.3v.
  • Arduino toprağına Modül Ground.
  • Modül Tx - Arduino Rx.
  • Modül Rx - Arduino Tx.

Çalışma: S Remote uygulamasını Google Play Store'dan indirin. Uygulamayı açın, Ayarlar >> Gelişmiş >> Düzen'e gidin ve isteğinize göre Düğmeyi seçin. Ardından IP'yi seçin ve "AT + CIFSR" komutunu kullanarak ESP8266 wifi modülünü başlattığımızda aldığımız IP adresini girin. IP adresi “192.168.10.4” gibi üçüncü satıra yazılır. Daha sonra port seçeneğine “80” olan portu yazınız. Ayar >> Tuşlar'a gidin ve ardından key1'i seçin ve düğme üzerinde görüntülenecek etiketi ve ardından Arduino'ya göndermek istediğiniz verileri yazın. TCP düğmesine tıklayın. Benzer şekilde etiketi ve verileri diğer anahtarlara yazın. Her şeyi doğru bir şekilde bağlarsanız, ardından devreyi açın ve seri monitörü açın, wifi modülünü başlatmak birkaç saniye sürer. Uygulama üzerindeki düğmeye basın,arduino android uygulamasını kullanarak bulut üzerinden iot tabanlı ev otomasyonu

Arduino kullanan IOT tabanlı ev otomasyon sistemi kodu

Bu proje için kod bedelsiz değildir. aşağıda verilen ziyaret linkinden kod satın alabilirsiniz.

#include<LiquidCrystal.h>
#include <SoftwareSerial.h>
LiquidCrystal lcd(A0,A1,A2,A3,A4,A5);
#define Fan 3
#define Light 4
#define TV 5
int temp=0,i=0;
int led=13;
char str[15];
void setup()
{
lcd.begin(16,2);
Serial.begin(9600);

Serial.print("AT\r\n");
delay(200);
Serial.print("AT+CWMODE=3\r\n");
delay(200);
Serial.print("AT+CIFSR\r\n");
delay(200);
Serial.print("AT+CIPMUX=1\r\n");
delay(200);
Serial.print("AT+CIPSERVER=1,80\r\n");
delay(200);
pinMode(led, OUTPUT);
pinMode(Fan, OUTPUT);
pinMode(Light, OUTPUT);
pinMode(TV, OUTPUT);
digitalWrite(Fan,HIGH);
digitalWrite(Light,HIGH);
digitalWrite(TV,HIGH);
lcd.setCursor(0,0);
lcd.print("WI-FI Control ");
lcd.setCursor(0,1);
lcd.print("Home AutomatIon");
delay(2000);
lcd.clear();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Fan Light TV ");
lcd.setCursor(0,1);
lcd.print("OFF OFF OFF "); 
}
void loop()
{
lcd.setCursor(0,0);
lcd.print("Fan Light TV");
if(temp==1)
{
check();
temp=0;
i=0;
delay(1000);
}
}
void serialEvent() 
{
while(Serial.available()) 
{
if(Serial.find("#A."))
{
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
while (Serial.available()) 
{
char inChar=Serial.read();
str[i++]=inChar;
if(inChar=='*')
{
temp=1;
return;
} 
} 
}
}
}
void check()
{
if(!(strncmp(str,"tv on",5)))
{
digitalWrite(TV, LOW);
lcd.setCursor(13,1); 
lcd.print("ON ");
delay(200);
} 

else if(!(strncmp(str,"tv off",5)))
{
digitalWrite(TV, HIGH);
lcd.setCursor(13,1); 
lcd.print("OFF ");
delay(200);
}

else if(!(strncmp(str,"fan on",6)))
{
digitalWrite(Fan, LOW);
lcd.setCursor(0,1); 
lcd.print("ON ");
delay(200);
}

else if(!(strncmp(str,"fan off",7)))
{
digitalWrite(Fan, HIGH);
lcd.setCursor(0,1); 
lcd.print("OFF ");
delay(200);
}

else if(!(strncmp(str,"light on",8)))
{
digitalWrite(Light, LOW);
lcd.setCursor(7,1); 
lcd.print("ON ");
delay(200);
}

else if(!(strncmp(str,"light off",9)))
{
digitalWrite(Light, HIGH);
lcd.setCursor(7,1); 
lcd.print("OFF ");
delay(200);
} 
}

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