arduino adım say için arama sonuçları

  • Arduino ile 74HC595

    Temel bilgiler: Proje 018k

    Arduino ile 74HC595 – Seriden Paralel Kaymaya Çıkış

    Kodlar:

    //**************************************************************//
    //  Name    : shiftOutCode, Hello World                                
    //  Author  : Carlyn Maw,Tom Igoe, David A. Mellis 
    //  Date    : 25 Oct, 2006    
    //  Modified: 23 Mar 2010                                 
    //  Version : 2.0                                             
    //  Notes   : Code for using a 74HC595 Shift Register           //
    //          : to count from 0 to 255                           
    //****************************************************************
    
    //Pin connected to ST_CP of 74HC595
    int latchPin = 8;
    //Pin connected to SH_CP of 74HC595
    int clockPin = 12;
    ////Pin connected to DS of 74HC595
    int dataPin = 11;
    
    
    
    void setup() {
      //set pins to output so you can control the shift register
      pinMode(latchPin, OUTPUT);
      pinMode(clockPin, OUTPUT);
      pinMode(dataPin, OUTPUT);
    }
    
    void loop() {
      // count from 0 to 255 and display the number 
      // on the LEDs
      for (int numberToDisplay = 0; numberToDisplay < 256; numberToDisplay++) {
        // take the latchPin low so 
        // the LEDs don't change while you're sending in bits:
        digitalWrite(latchPin, LOW);
        // shift out the bits:
        shiftOut(dataPin, clockPin, MSBFIRST, numberToDisplay);  
    
        //take the latch pin high so the LEDs will light up:
        digitalWrite(latchPin, HIGH);
        // pause before next value:
        delay(500);
      }
    }
    
    /*
      Shift Register Example
     for 74HC595 shift register
    
     This sketch turns reads serial input and uses it to set the pins
     of a 74HC595 shift register.
    
     Hardware:
     * 74HC595 shift register attached to pins 8, 12, and 11 of the Arduino,
     as detailed below.
     * LEDs attached to each of the outputs of the shift register.
    
    
     Created 22 May 2009
     Created 23 Mar 2010
     by Tom Igoe
    
     */
    
    //Pin connected to latch pin (ST_CP) of 74HC595
    const int latchPin = 8;
    //Pin connected to clock pin (SH_CP) of 74HC595
    const int clockPin = 12;
    ////Pin connected to Data in (DS) of 74HC595
    const int dataPin = 11;
    
    void setup() {
      //set pins to output because they are addressed in the main loop
      pinMode(latchPin, OUTPUT);
      pinMode(dataPin, OUTPUT);  
      pinMode(clockPin, OUTPUT);
      Serial.begin(9600);
      Serial.println("reset");
    }
    
    void loop() {
      if (Serial.available() > 0) {
        // ASCII '0' through '9' characters are
        // represented by the values 48 through 57.
        // so if the user types a number from 0 through 9 in ASCII, 
        // you can subtract 48 to get the actual value:
        int bitToSet = Serial.read() - 48;
    
      // write to the shift register with the correct bit set high:
        registerWrite(bitToSet, HIGH);
      }
    }
    
    // This method sends bits to the shift register:
    
    void registerWrite(int whichPin, int whichState) {
    // the bits you want to send
      byte bitsToSend = 0;
    
      // turn off the output so the pins don't light up
      // while you're shifting bits:
      digitalWrite(latchPin, LOW);
    
      // turn on the next highest bit in bitsToSend:
      bitWrite(bitsToSend, whichPin, whichState);
    
      // shift the bits out:
      shiftOut(dataPin, clockPin, MSBFIRST, bitsToSend);
    
        // turn on the output so the LEDs can light up:
      digitalWrite(latchPin, HIGH);
    
    }
    
    /*
      Shift Register Example
      Turning on the outputs of a 74HC595 using an array
    
     Hardware:
     * 74HC595 shift register 
     * LEDs attached to each of the outputs of the shift register
    
     */
    //Pin connected to ST_CP of 74HC595
    int latchPin = 8;
    //Pin connected to SH_CP of 74HC595
    int clockPin = 12;
    ////Pin connected to DS of 74HC595
    int dataPin = 11;
    
    //holders for infromation you're going to pass to shifting function
    byte data;
    byte dataArray[10];
    
    void setup() {
      //set pins to output because they are addressed in the main loop
      pinMode(latchPin, OUTPUT);
      Serial.begin(9600);
    
      //Binary notation as comment
      dataArray[0] = 0xFF; //0b11111111
      dataArray[1] = 0xFE; //0b11111110
      dataArray[2] = 0xFC; //0b11111100
      dataArray[3] = 0xF8; //0b11111000
      dataArray[4] = 0xF0; //0b11110000
      dataArray[5] = 0xE0; //0b11100000
      dataArray[6] = 0xC0; //0b11000000
      dataArray[7] = 0x80; //0b10000000
      dataArray[8] = 0x00; //0b00000000
      dataArray[9] = 0xE0; //0b11100000
    
      //function that blinks all the LEDs
      //gets passed the number of blinks and the pause time
      blinkAll_2Bytes(2,500); 
    }
    
    void loop() {
    
      for (int j = 0; j < 10; j++) {
        //load the light sequence you want from array
        data = dataArray[j];
        //ground latchPin and hold low for as long as you are transmitting
        digitalWrite(latchPin, 0);
        //move 'em out
        shiftOut(dataPin, clockPin, data);
        //return the latch pin high to signal chip that it 
        //no longer needs to listen for information
        digitalWrite(latchPin, 1);
        delay(300);
      }
    }
    
    
    
    // the heart of the program
    void shiftOut(int myDataPin, int myClockPin, byte myDataOut) {
      // This shifts 8 bits out MSB first, 
      //on the rising edge of the clock,
      //clock idles low
    
      //internal function setup
      int i=0;
      int pinState;
      pinMode(myClockPin, OUTPUT);
      pinMode(myDataPin, OUTPUT);
    
      //clear everything out just in case to
      //prepare shift register for bit shifting
      digitalWrite(myDataPin, 0);
      digitalWrite(myClockPin, 0);
    
      //for each bit in the byte myDataOut�
      //NOTICE THAT WE ARE COUNTING DOWN in our for loop
      //This means that %00000001 or "1" will go through such
      //that it will be pin Q0 that lights. 
      for (i=7; i>=0; i--)  {
        digitalWrite(myClockPin, 0);
    
        //if the value passed to myDataOut and a bitmask result 
        // true then... so if we are at i=6 and our value is
        // %11010100 it would the code compares it to %01000000 
        // and proceeds to set pinState to 1.
        if ( myDataOut & (1<<i) ) {
          pinState= 1;
        }
        else {  
          pinState= 0;
        }
    
        //Sets the pin to HIGH or LOW depending on pinState
        digitalWrite(myDataPin, pinState);
        //register shifts bits on upstroke of clock pin  
        digitalWrite(myClockPin, 1);
        //zero the data pin after shift to prevent bleed through
        digitalWrite(myDataPin, 0);
      }
    
      //stop shifting
      digitalWrite(myClockPin, 0);
    }
    
    
    //blinks the whole register based on the number of times you want to 
    //blink "n" and the pause between them "d"
    //starts with a moment of darkness to make sure the first blink
    //has its full visual effect.
    void blinkAll_2Bytes(int n, int d) {
      digitalWrite(latchPin, 0);
      shiftOut(dataPin, clockPin, 0);
      shiftOut(dataPin, clockPin, 0);
      digitalWrite(latchPin, 1);
      delay(200);
      for (int x = 0; x < n; x++) {
        digitalWrite(latchPin, 0);
        shiftOut(dataPin, clockPin, 255);
        shiftOut(dataPin, clockPin, 255);
        digitalWrite(latchPin, 1);
        delay(d);
        digitalWrite(latchPin, 0);
        shiftOut(dataPin, clockPin, 0);
        shiftOut(dataPin, clockPin, 0);
        digitalWrite(latchPin, 1);
        delay(d);
      }
    }
    
    //**************************************************************//
    //  Name    : shiftOutCode, Dual Binary Counters                 //
    //  Author  : Carlyn Maw, Tom Igoe                               //
    //  Date    : 25 Oct, 2006                                       //
    //  Version : 1.0                                                //
    //  Notes   : Code for using a 74HC595 Shift Register            //
    //          : to count from 0 to 255                             //
    //**************************************************************//
    
    //Pin connected to ST_CP of 74HC595
    int latchPin = 8;
    //Pin connected to SH_CP of 74HC595
    int clockPin = 12;
    ////Pin connected to DS of 74HC595
    int dataPin = 11;
    
    
    
    void setup() {
      //Start Serial for debuging purposes  
      Serial.begin(9600);
      //set pins to output because they are addressed in the main loop
      pinMode(latchPin, OUTPUT);
    
    }
    
    void loop() {
      //count up routine
      for (int j = 0; j < 256; j++) {
        //ground latchPin and hold low for as long as you are transmitting
        digitalWrite(latchPin, 0);
        //count up on GREEN LEDs
        shiftOut(dataPin, clockPin, j); 
        //count down on RED LEDs
        shiftOut(dataPin, clockPin, 255-j);
        //return the latch pin high to signal chip that it 
        //no longer needs to listen for information
        digitalWrite(latchPin, 1);
        delay(1000);
      }
    }
    
    void shiftOut(int myDataPin, int myClockPin, byte myDataOut) {
      // This shifts 8 bits out MSB first, 
      //on the rising edge of the clock,
      //clock idles low
    
    ..//internal function setup
      int i=0;
      int pinState;
      pinMode(myClockPin, OUTPUT);
      pinMode(myDataPin, OUTPUT);
    
    . //clear everything out just in case to
    . //prepare shift register for bit shifting
      digitalWrite(myDataPin, 0);
      digitalWrite(myClockPin, 0);
    
      //for each bit in the byte myDataOut�
      //NOTICE THAT WE ARE COUNTING DOWN in our for loop
      //This means that %00000001 or "1" will go through such
      //that it will be pin Q0 that lights. 
      for (i=7; i>=0; i--)  {
        digitalWrite(myClockPin, 0);
    
        //if the value passed to myDataOut and a bitmask result 
        // true then... so if we are at i=6 and our value is
        // %11010100 it would the code compares it to %01000000 
        // and proceeds to set pinState to 1.
        if ( myDataOut & (1<<i) ) {
          pinState= 1;
        }
        else {  
          pinState= 0;
        }
    
        //Sets the pin to HIGH or LOW depending on pinState
        digitalWrite(myDataPin, pinState);
        //register shifts bits on upstroke of clock pin  
        digitalWrite(myClockPin, 1);
        //zero the data pin after shift to prevent bleed through
        digitalWrite(myDataPin, 0);
      }
    
      //stop shifting
      digitalWrite(myClockPin, 0);
    }
    //**************************************************************//
    //  Name    : shiftOutCode, Dual One By One                           //
    //  Author  : Carlyn Maw, Tom Igoe                               //
    //  Date    : 25 Oct, 2006                                       //
    //  Version : 1.0                                                //
    //  Notes   : Code for using a 74HC595 Shift Register            //
    //          : to count from 0 to 255                             //
    //**************************************************************//
    
    //Pin connected to ST_CP of 74HC595
    int latchPin = 8;
    //Pin connected to SH_CP of 74HC595
    int clockPin = 12;
    ////Pin connected to DS of 74HC595
    int dataPin = 11;
    
    //holder for infromation you're going to pass to shifting function
    byte data = 0; 
    
    
    
    void setup() {
      //set pins to output because they are addressed in the main loop
      pinMode(latchPin, OUTPUT);
    
    }
    
    void loop() {
    
      //function that blinks all the LEDs
      //gets passed the number of blinks and the pause time
      blinkAll_2Bytes(1,500); 
    
      // light each pin one by one using a function A
      for (int j = 0; j < 8; j++) {
        //ground latchPin and hold low for as long as you are transmitting
        digitalWrite(latchPin, 0);
        //red LEDs
        lightShiftPinA(7-j);
        //green LEDs
        lightShiftPinA(j);
        //return the latch pin high to signal chip that it 
        //no longer needs to listen for information
        digitalWrite(latchPin, 1);
        delay(1000);
      }
    
      // light each pin one by one using a function A
      for (int j = 0; j < 8; j++) {
        //ground latchPin and hold low for as long as you are transmitting
        digitalWrite(latchPin, 0);
        //red LEDs
        lightShiftPinB(j);
        //green LEDs
        lightShiftPinB(7-j);
        //return the latch pin high to signal chip that it 
        //no longer needs to listen for information
        digitalWrite(latchPin, 1);
        delay(1000);
      } 
    
    }
    
    //This function uses bitwise math to move the pins up
    void lightShiftPinA(int p) {
      //defines a local variable
      int pin;
    
      //this is line uses a bitwise operator
      //shifting a bit left using << is the same
      //as multiplying the decimal number by two. 
      pin = 1<< p;
    
      //move 'em out
      shiftOut(dataPin, clockPin, pin);   
    
    }
    
    //This function uses that fact that each bit in a byte
    //is 2 times greater than the one before it to
    //shift the bits higher
    void lightShiftPinB(int p) {
      //defines a local variable
      int pin;
    
      //start with the pin = 1 so that if 0 is passed to this
      //function pin 0 will light. 
      pin = 1;
    
      for (int x = 0; x < p; x++) {
        pin = pin * 2; 
      }
      //move 'em out
      shiftOut(dataPin, clockPin, pin);   
    }
    
    
    // the heart of the program
    void shiftOut(int myDataPin, int myClockPin, byte myDataOut) {
      // This shifts 8 bits out MSB first, 
      //on the rising edge of the clock,
      //clock idles low
    
      //internal function setup
      int i=0;
      int pinState;
      pinMode(myClockPin, OUTPUT);
      pinMode(myDataPin, OUTPUT);
    
      //clear everything out just in case to
      //prepare shift register for bit shifting
      digitalWrite(myDataPin, 0);
      digitalWrite(myClockPin, 0);
    
      //for each bit in the byte myDataOut�
      //NOTICE THAT WE ARE COUNTING DOWN in our for loop
      //This means that %00000001 or "1" will go through such
      //that it will be pin Q0 that lights. 
      for (i=7; i>=0; i--)  {
        digitalWrite(myClockPin, 0);
    
        //if the value passed to myDataOut and a bitmask result 
        // true then... so if we are at i=6 and our value is
        // %11010100 it would the code compares it to %01000000 
        // and proceeds to set pinState to 1.
        if ( myDataOut & (1<<i) ) {
          pinState= 1;
        }
        else {  
          pinState= 0;
        }
    
        //Sets the pin to HIGH or LOW depending on pinState
        digitalWrite(myDataPin, pinState);
        //register shifts bits on upstroke of clock pin  
        digitalWrite(myClockPin, 1);
        //zero the data pin after shift to prevent bleed through
        digitalWrite(myDataPin, 0);
      }
    
      //stop shifting
      digitalWrite(myClockPin, 0);
    }
    
    
    //blinks both registers based on the number of times you want to 
    //blink "n" and the pause between them "d"
    //starts with a moment of darkness to make sure the first blink
    //has its full visual effect.
    void blinkAll_2Bytes(int n, int d) {
      digitalWrite(latchPin, 0);
      shiftOut(dataPin, clockPin, 0);
      shiftOut(dataPin, clockPin, 0);
      digitalWrite(latchPin, 1);
      delay(200);
      for (int x = 0; x < n; x++) {
        digitalWrite(latchPin, 0);
        shiftOut(dataPin, clockPin, 255);
        shiftOut(dataPin, clockPin, 255);
        digitalWrite(latchPin, 1);
        delay(d);
        digitalWrite(latchPin, 0);
        shiftOut(dataPin, clockPin, 0);
        shiftOut(dataPin, clockPin, 0);
        digitalWrite(latchPin, 1);
        delay(d);
      }
    }
    //**************************************************************//
    //  Name    : shiftOutCode, Predefined Dual Array Style         //
    //  Author  : Carlyn Maw, Tom Igoe                              //
    //  Date    : 25 Oct, 2006                                      //
    //  Version : 1.0                                               //
    //  Notes   : Code for using a 74HC595 Shift Register           //
    //          : to count from 0 to 255                            //
    //****************************************************************
    
    //Pin connected to ST_CP of 74HC595
    int latchPin = 8;
    //Pin connected to SH_CP of 74HC595
    int clockPin = 12;
    ////Pin connected to DS of 74HC595
    int dataPin = 11;
    
    //holders for infromation you're going to pass to shifting function
    byte dataRED;
    byte dataGREEN;
    byte dataArrayRED[10];
    byte dataArrayGREEN[10];
    
    void setup() {
      //set pins to output because they are addressed in the main loop
      pinMode(latchPin, OUTPUT);
      Serial.begin(9600);
    
      //Arduino doesn't seem to have a way to write binary straight into the code 
      //so these values are in HEX.  Decimal would have been fine, too. 
      dataArrayRED[0] = 0xFF; //11111111
      dataArrayRED[1] = 0xFE; //11111110
      dataArrayRED[2] = 0xFC; //11111100
      dataArrayRED[3] = 0xF8; //11111000
      dataArrayRED[4] = 0xF0; //11110000
      dataArrayRED[5] = 0xE0; //11100000
      dataArrayRED[6] = 0xC0; //11000000
      dataArrayRED[7] = 0x80; //10000000
      dataArrayRED[8] = 0x00; //00000000
      dataArrayRED[9] = 0xE0; //11100000
    
      //Arduino doesn't seem to have a way to write binary straight into the code 
      //so these values are in HEX.  Decimal would have been fine, too. 
      dataArrayGREEN[0] = 0xFF; //11111111
      dataArrayGREEN[1] = 0x7F; //01111111
      dataArrayGREEN[2] = 0x3F; //00111111
      dataArrayGREEN[3] = 0x1F; //00011111
      dataArrayGREEN[4] = 0x0F; //00001111
      dataArrayGREEN[5] = 0x07; //00000111
      dataArrayGREEN[6] = 0x03; //00000011
      dataArrayGREEN[7] = 0x01; //00000001
      dataArrayGREEN[8] = 0x00; //00000000
      dataArrayGREEN[9] = 0x07; //00000111
    
      //function that blinks all the LEDs
      //gets passed the number of blinks and the pause time
      blinkAll_2Bytes(2,500); 
    }
    
    void loop() {
    
    
      for (int j = 0; j < 10; j++) {
        //load the light sequence you want from array
        dataRED = dataArrayRED[j];
        dataGREEN = dataArrayGREEN[j];
        //ground latchPin and hold low for as long as you are transmitting
        digitalWrite(latchPin, 0);
        //move 'em out
        shiftOut(dataPin, clockPin, dataGREEN);   
        shiftOut(dataPin, clockPin, dataRED);
        //return the latch pin high to signal chip that it 
        //no longer needs to listen for information
        digitalWrite(latchPin, 1);
        delay(300);
      }
    }
    
    
    
    // the heart of the program
    void shiftOut(int myDataPin, int myClockPin, byte myDataOut) {
      // This shifts 8 bits out MSB first, 
      //on the rising edge of the clock,
      //clock idles low
    
      //internal function setup
      int i=0;
      int pinState;
      pinMode(myClockPin, OUTPUT);
      pinMode(myDataPin, OUTPUT);
    
      //clear everything out just in case to
      //prepare shift register for bit shifting
      digitalWrite(myDataPin, 0);
      digitalWrite(myClockPin, 0);
    
      //for each bit in the byte myDataOut�
      //NOTICE THAT WE ARE COUNTING DOWN in our for loop
      //This means that %00000001 or "1" will go through such
      //that it will be pin Q0 that lights. 
      for (i=7; i>=0; i--)  {
        digitalWrite(myClockPin, 0);
    
        //if the value passed to myDataOut and a bitmask result 
        // true then... so if we are at i=6 and our value is
        // %11010100 it would the code compares it to %01000000 
        // and proceeds to set pinState to 1.
        if ( myDataOut & (1<<i) ) {
          pinState= 1;
        }
        else {  
          pinState= 0;
        }
    
        //Sets the pin to HIGH or LOW depending on pinState
        digitalWrite(myDataPin, pinState);
        //register shifts bits on upstroke of clock pin  
        digitalWrite(myClockPin, 1);
        //zero the data pin after shift to prevent bleed through
        digitalWrite(myDataPin, 0);
      }
    
      //stop shifting
      digitalWrite(myClockPin, 0);
    }
    
    
    //blinks the whole register based on the number of times you want to 
    //blink "n" and the pause between them "d"
    //starts with a moment of darkness to make sure the first blink
    //has its full visual effect.
    void blinkAll_2Bytes(int n, int d) {
      digitalWrite(latchPin, 0);
      shiftOut(dataPin, clockPin, 0);
      shiftOut(dataPin, clockPin, 0);
      digitalWrite(latchPin, 1);
      delay(200);
      for (int x = 0; x < n; x++) {
        digitalWrite(latchPin, 0);
        shiftOut(dataPin, clockPin, 255);
        shiftOut(dataPin, clockPin, 255);
        digitalWrite(latchPin, 1);
        delay(d);
        digitalWrite(latchPin, 0);
        shiftOut(dataPin, clockPin, 0);
        shiftOut(dataPin, clockPin, 0);
        digitalWrite(latchPin, 1);
        delay(d);
      }
    }

     sketch1 , sketch2 , sketch3  ve sketch4 , sketch5 , sketch6

    Bu projede, şu parçalara ihtiyacınız vardı:

    1.Aruduino Uno R3 (Arduino’nun diğer sürümünü de kullanabilirsiniz)

    2.Arduino IDE (siz indirebilirsiniz  burada   )

    3. atlama kabloları

    4. Breadboard

    5.74HC595 (kaydırma kaydı) 2 adet

    6. LED’ler 8 adet (kırmızı) ve 8 adet (yeşil)

    7. Direnç 16 adet (her biri 220 Ohm)

    8. Kondansatör 0.1 uF 1 adet

    Genel

    Bu projede bir veya iki 74HC595’i  Arduino kartına nasıl bağlayacağımızı öğreneceğiz  . 

    74HC595’i Anlamak

    74HC595, 8 bitlik kaydırma yazmacı ve üç durumlu paralel çıkışlara sahip bir depolama yazmacından oluşur. Seri girişi paralel çıkışa dönüştürür, böylece bir MCU’nun IO portlarını kaydedebilirsiniz. MR (pin10) yüksek ve OE (pin13) düşük seviyedeyken, veri SHcp’nin yükselen kenarına girer ve bellek kaydına gider. SHcp’nin yükselen kenarı. İki saat birbirine bağlanırsa, kaydırma yazmacı her zaman bellek yazmacından bir atım daha erken olur. Bellek kaydında bir seri kaydırma giriş pimi (Ds), bir seri çıkış pimi (Q) ve bir asenkron sıfırlama düğmesi (düşük seviye) bulunmaktadır. Bellek kaydı, paralel bir 8-bit ve üç durumda bir Veri Yolu çıkışı verir. OE etkinleştirildiğinde (düşük seviye), hafıza kaydındaki veriler veri yoluna gönderilir. Bir süre veya bir süre sonra Arduino kartınızdaki pimler tükenebilir ve vardiya kayıtlarıyla genişletmeniz gerekir. Bu proje 74HC595’e dayanmaktadır. Veri sayfası 74HC595’i “Çıkış mandallı 8 bit seri giriş, seri veya paralel çıkış kaydırma yazmacı; 3-durumu. “Başka bir deyişle, bir seferde 8 çıkışı kontrol etmek için kullanabilirsiniz, ancak mikrodenetleyicinizde yalnızca birkaç pimi çeker. Çıktınızı daha da uzatmak için birden fazla kaydı birbirine bağlayabilirsiniz. (Kullanıcılar ayrıca başka bir sürücü de bulmak isteyebilir. parça numaralarında “595” veya “596” olan yongalar, çok sayıda var. Örneğin STP16C596, 16 LED’i sürecek ve dahili sabit akım kaynaklarına sahip seri dirençleri ortadan kaldıracak.) Tüm bunlar nasıl işler “denilen bir şeyden geçer. senkronize seri haberleşme“, yani bir pimi yukarı ve aşağı atabilir ve böylece bir veri baytını kayıt defterine bit bit olarak iletebilirsiniz. Bu, ikinci pimi, saat pimini, bitler arasında tanımladığınız zaman darbesiyle. Bu” asenkron seri iletişimi kullanmanın tersine ” Seri.begin () ‘inBelirlenen veri hızına kararlaştırılan vericiye bağımsız olarak ayarlanacak gönderici ve alıcıya dayanan işlev. Tüm bayt kayıt defterine iletildiğinde, her bir bitte tutulan YÜKSEK veya DÜŞÜK mesajlar, her bir çıkış pimine ayrıştırılır. Bu, “paralel çıktı” kısmıdır, tüm pimlerin hepsini bir defada yapmalarını istediğiniz şeyi yapmalarıdır. Bu bileşenin “seri çıkışı” kısmı, mikrodenetleyiciden alınan seri bilgisini tekrar değiştirmeden iletebilen ekstra piminden gelir. Bu, 16 bit’i arka arkaya (2 bayt) aktarabileceğiniz anlamına gelir ve ilk 8 ilk yazmacın içinden ikinci yazmacın içine akar ve burada ifade edilir. Bunu ikinci örnekten yapmayı öğrenebilirsin. “3 durum”, çıkış pimlerini yüksek, düşük veya “olarak ayarlayabileceğiniz anlamına gelir” yüksek empedans. “YÜKSEK ve DÜŞÜK durumların aksine, pinleri ayrı ayrı yüksek empedans durumlarına ayarlayamazsınız. Tüm yongayı sadece bir araya getirebilirsiniz. Bu yapılacak oldukça özel bir şey. Projenize özgü bir mod ayarına bağlı olarak tamamen farklı bir mikrodenetleyici tarafından kontrol edilmesi gerekebilecek bir LED dizisi düşünün. Her iki örnek de bu özellikten faydalanmaz ve genellikle sahip olduğu bir fişi almak için endişelenmenize gerek yoktur.

    Phillip’in veri sayfasından uyarlanan pin-out’ları açıklayan bir tablo .

    74HC595’in sinyalleri ve bağlantıları 

    74HC595’in pimleri ve işlevleri:

    Q0-Q7: 8-bit paralel veri çıkış pinleri, 8 LED’i veya 7 pinli ekranın 8 pinini doğrudan kontrol edebilen.

    Q7 ‘: Birden fazla 74HC595’i seri bağlamak için başka bir 74HC595’in DS’sine bağlı seri çıkış pimi

    MR: Pimi sıfırla, düşük seviyede aktif; burada doğrudan 5V’a bağlanır.

    SHcp: Vardiya kaydının zaman sırası girişi. Yükselen kenarında, kaydırma yazmacındaki veriler art arda bir bit, yani Q1’deki veriler Q2’ye vb. Taşınır. Düşen kenardayken, kaydırma yazmacındaki veriler değişmeden kalır.

    STcp: Depolama kaydının zaman sırası girişi. Yükselen kenarda, vardiya kaydındaki veriler hafıza kaydına taşınır.

    OE: Düşük seviye aktif çıkış pimi. İşte GND’ye bağlı.

    DS: Seri veri giriş pimi

    VCC: Pozitif besleme gerilimi

    GND: Toprak

    Sen yonganın şartname kontrol edebilirsiniz  74HC595 burada .

    Devreyi kur

    1. İlk adım Arduino’nuzu bir vardiya kaydında genişletmek.

    1. Açma.

    Aşağıdaki bağlantıları yapın:

    GND (pin 8) yere,

    Vcc (pin 16) ila 5V

    OE (pim 13) toprağa

    MR (pim 10) ila 5V

    Bu ayar, tüm çıkış pinlerinin her zaman aktif ve adreslenebilir olmasını sağlar. Bu kurulumun bir kusuru, ışıklar çalışmaya başladıktan önce devreyi ilk açışınızda, son durumlarına veya isteğe bağlı olarak yanan bir şeye neden olmanızdır. Arduino kartınızdan MR ve OE pimlerini de kontrol ederek bu sorunu çözebilirsiniz, ancak bu şekilde çalışır ve sizi daha açık pimlerle bırakır.

    2. Arduino kurulu için Bağlan

    DS (pim 14) – Ardunio DigitalPin 11 (mavi kablo)

    SH_CP (pin 11) – Ardunio DigitalPin 12 (sarı kablo)

    ST_CP (pin 12) – Ardunio DigitalPin 8 (yeşil kablo)

    Bundan sonra, bunlar sırasıyla dataPin, clockPin ve latchPin olarak adlandırılacaktır. LatchPin’deki 0.1 uf kapasitöre dikkat edin, mandal pimi darbeye girdiğinde biraz titriyorsanız, eşitlemek için bir kapasitör kullanabilirsiniz.

    3. 8 LED ekleyin.

    Bu durumda, her LED’in katodunu (kısa pim) ortak bir toprağa ve her LED’in anotunu (uzun pim) ilgili kaydırma yazmacı çıkış pimine bağlamalısınız. Bu şekilde güç sağlamak için vardiya kaydının kullanılması kaynak akımı olarak adlandırılır. Bazı vardiya kayıtları akım besleyemez, yalnızca batan akım denilen şeyi yapabilirler. Bunlardan birine sahipseniz, anotları doğrudan güce ve katotları (topraklama pimleri) vites değiştirme yazıcısının çıkışlarına yerleştirerek, LED’lerin yönünü çevirmeniz gerekeceği anlamına gelir. 595 serisi bir yonga kullanmıyorsanız, kendi veri sayfanızı kontrol etmelisiniz. LED’lerin aşırı yüklenmesini önlemek için seri olarak 220 ohm’luk bir direnç eklemeyi unutmayın.

    2. İkinci adım, Arduino’nuzu bir tane daha vardiya kaydıyla genişletmektir.1. İkinci bir vardiya kaydı ekleyin.Önceki örnekten başlayarak, tahtaya ikinci bir vardiya kaydı koymalısınız. Aynı elektriğe güç ve toprak vermelidir.

    1. İlk vardiya yazıcısını ve 8 kırmızı LED’i Arduino’nuza daha önce anlatıldığı gibi bağlayın.

    2. İkinci bir vardiya kaydı ekleyin. Önceki örnekten başlayarak, tahtaya ikinci bir vardiya kaydı koymalısınız. Aynı elektriğe güç ve toprak vermelidir.

    3. 2 kaydı bağlayın.

    Bu bağlantılardan ikisi Arduino’dan ikinci kaydırma yazmacına (sarı ve yeşil teller) aynı saat ve mandallama sinyalini uzatır. Mavi kablo, ilk kaydırma yazmacının seri çıkış piminden (pim 9) ikinci yazıcının seri veri girişine (pim 14) geçmektedir.4. İkinci bir LED seti ekleyin.Bu durumda yeşil olanları ekledim, bu yüzden kodu okurken hangi baytın hangi LED’lere gideceği açıktır. 

    KOD (BİR ÜSTKRK KAYIT)

    Kod, veri sayfasındaki iki bilgiye dayanmaktadır: zamanlama diyagramı ve mantık tablosu.

    Mantık tablosu, temelde önemli olan her şeyin bir atışta gerçekleştiğini söyleyen şeydir. Ne zaman clockPin alçaktan yükseğe doğru gider, kaydırma yazmacı veri pimi durumunu okur. Veriler kaydıkça dahili bir hafıza kaydına kaydedilir. Ne zaman latchPin alçaktan yükseğe doğru gider gönderileceği ile veri LED’leri aydınlatma, çıkış pimleri içine vardiya kayıtları yukarıda belirtilen bellek kasadan başına taşınır.

    Adım adım talimat

    1. Adruino Uno tahtanızı PC’nize takın ve doğru tahtayı ve bağlantı noktasını seçin
    2. Seri monitörü açın ve baudunuzu 9600 baud’a ayarlayın
    3. Taslağı doğrulayın ve Adruino Uno panonuza yükleyin

    KOD (İKİ ÜSTKRK KAYIT KAYDI)

    Merak ediyorsanız, sadece ne olduğunu görmek için bu devreyi kurmuş olan ilk örnekten örnekleri denemek isteyebilirsiniz.

    Sketch 4 İkili İkili Sayıcılar

    Eskiz 1’deki ilk kod örneğiyle karşılaştırıldığında yalnızca bir ekstra kod satırı var. İkinci bir bayt gönderir. Bu, doğrudan Arduino’ya bağlı olan ilk kaydırma yazmacını, yeşil LED’leri aydınlatmak için gönderilen ikinci byte’dan geçen ilk baytı geçmeye zorlar. İkinci bayt daha sonra kırmızı LED’lerde görünecektir.

    5 Bayt Teker Teker Eskiz

    Bu kodu Sketch 1 ‘deki benzer kodla karşılaştırarak, biraz daha fazlasının değişmesi gerektiğini görürsünüz. BlinkAll () işlevi, şu anda kontrol edilecek 16 LED bulunduğunu yansıtmak için blinkAll_2Bytes () işlevine değiştirildi. Ayrıca, 1. versiyonda, latchPin’in darbeleri, lightShiftPinA ve lightShiftPinB () alt fonksiyonlarının içine yerleştirilmiştir. Burada, her bir alt işlevi arka arkaya iki kez, yeşil LED’ler için bir kez ve kırmızı olanlar için bir kez çalıştırmak zorunda kalmaları için ana döngüye geri taşınmaları gerekir.

    Çizim 6 – İkili Tanımlanmış Diziler

    Çizim 5 gibi, Çizim 6 da yeni blinkAll_2bytes () işlevinden faydalanır. Eskiz 6’nın Eskiz 3’teki büyük farkı, yalnızca “data” adı verilen tek bir değişken ve “dataArray” adlı tek bir dizinin yerine, yukarıda tanımlanmış bir dataRED, dataGREEN, dataArrayRED, dataArrayGREEN’e sahip olmanız gerektiğidir. Bu, bu çizgiyi ifade eder

    data = dataArray [j];

    olur

    dataRED = dataArrayRED [j];

    dataGREEN = dataArrayGREEN [j];

    ve

    shiftOut (dataPin, clockPin, veri);

    olur

    shiftOut (dataPin, clockPin, dataGREEN); 

    shiftOut (dataPin, clockPin, dataRED);özet

    Bir veya iki 74HC595’i Arduino kartına nasıl bağlayacağımızı öğrendik

    Kütüphane:

    • Bu proje için kütüphaneye gerek yok

    Skeçler:

    • Bu proje açıklamasının başlangıcındaki eklere bakınız. 
    • Çizim 1 ila Çizim 3. Birincisi, sadece 0 ile 255 arasında bir byte değeri veren sadece bir “merhaba dünya” kodudur. İkinci çizim bir seferde bir LED yanar. Üçüncü dizi boyunca döner.
    • Sketch 4 İkili İkili Sayıcılar, Sketch 5 Byte Birer, Sketch 6 – İki Tanımlı Diziler
  • Elektrikli Su Isıtıcısı için IoT Tabanlı Zamanlayıcı Anahtarı Yapımı

    Elektrikli Su Isıtıcısı için IoT Tabanlı Zamanlayıcı Anahtarı Yapımı

    Elektrikli su ısıtıcısı için bu zamanlayıcı anahtarı NodeMCU ve Blynk IoT bulut çözümüne dayanmaktadır . Soğuk mevsimde banyolarda sıcak su ile banyo yapmak için elektrikli su ısıtıcısı kullanılır. Yaygın bir sorun, sabah uyandığınızda, elektrikli ısıtıcının soğuk suyu yeterince ısıtması için 20 dakika beklemeniz gerektiğidir. Bu soruna olası bir çözüm, bir zamanlayıcı anahtarı kullanmaktır.

    Burada sunulan zamanlayıcı anahtarı, akıllı telefonunuzdaki Blynk uygulamasından elektrikli su ısıtıcısını başlatmak ve durdurmak için kullanılabilir. Bunu kullanarak, uyandığınızda sıcak su hazır olacaktır. Yazarın prototipi Şekil 1’de gösterilmiştir.

    1: Yazarın prototipi

    Devre ve çalışma

    Su ısıtıcı için Nesnelerin İnterneti (IoT) tabanlı zamanlayıcı anahtarının devre şeması Şekil 2’de gösterilmektedir. NodeMCU mikrodenetleyici (MCU) olarak kullanılır. Devre ayrıca NodeMCU’yu çalıştırmak için 5V voltaj regülatörü 7805’e (IC1) sahiptir. Su ısıtıcısını BC547 röle sürücü transistörü (T1) üzerinden açmak ve kapatmak için 12 voltluk bir röle (RL1) kullanılır.

    Şekil 2: Su ısıtıcı için IoT tabanlı zamanlayıcı anahtarının devre şeması

    NodeMCU, ESP8266 Wi-Fi modülünde çalışan bellenim içeren açık kaynaklı bir IoT platformudur. NodeMCU’nun pim diyagramı Şekil 3’te verilmiştir.

    3: NodeMCU pin detayları

    NodeMCU’yu IoT platformuna bağlama

    NodeMCU, Board Manager’dan tercih edilen kart olarak NodeMCU 1.0 (ESP-12E Modülü) seçilerek Arduino IDE kullanılarak ESP8266_standalone.ino ile programlanır. Arduino IDE’ye NodeMCU kartı eklemek için aşağıdaki bağlantıdaki eğiticiye bakın .

    IoT platformuna, aşağıdaki adımlar kullanılarak iOS ve Android cihazlarda Blynk uygulaması kullanılarak erişilebilir.

    1. Akıllı telefonunuza Blynk uygulamasını indirin ve yeni bir hesap oluşturun ya da mevcut Facebook kimlik bilgilerinizi kullanarak giriş yapın.
    2. Uygulamada Yeni Proje Oluştur’a gidin ve proje adını girin (örneğin, IoT_ ısıtıcı). Aygıt, örneğin, NodeMCU’yu seçin ve Oluştur’a tıklayın.
    3. Yeni bir proje oluşturduktan sonra, e-posta hesabınıza bir yetkilendirme jeton numarası gönderilir.
    4. https://github.com/blynkkk/blynk-library adresinden Blynk kütüphanesini indirin. Arduino IDE’den kütüphaneyi kurun. Eskiz> Kitaplığı Dahil Et> Kitaplıkları yönet> .zip ekle’ye gidin ve zip kitaplığına göz atın veya kitaplığı çıkardıktan sonra, bilgisayarınızdaki / dizüstü bilgisayarınızdaki Arduino IDE’nin Kitaplık klasörüne ekleyin.
    5. Blynk kitaplığını yükledikten sonra Windows klasörüne göz atın, Dosya>

    Örnekler> Blynk> Boards_wifi> ESP8266_Standalone.ino çizimi. Yetkilendirme simgenizi yapıştırın ve çizimde Kablosuz ağ SSID adınızı ve ağ şifrenizi girin.

    1. NodeMCU’yu USB kablosuyla bağlayın ve Arduino IDE’deki COM bağlantı noktasını seçin. ESP8266_Standalone.ino dosyasını açın, çizimi derleyip NodeMCU kartına yükleyin. Ardından, kartınızın Blynk ile bağlı olup olmadığını kontrol etmek için seri monitörü açın (Şek. 4).

    4: Seri monitör

    1. Blynk uygulamasında yukarıda oluşturulan projeye (IoT_heater) gidin, widget (+ işareti) ekleyin ve cep telefonunuzda zamanlayıcı widget’ını seçin.
    2. Zamanlayıcı Widget Ayarları’na gidin. Isıtıcıyı kontrol etmek için çıkış olarak kullanacağınız NodeMCU’nun GPIO’sunu (örneğin, D0, D1, D2, vb.) Bildirin. Uygulamadaki zamanlayıcının başlangıç ​​(7:00 am) ve durdurma (7:30 am) zamanlarını seçin.

    İnşaat ve test

    IoT bazlı su ısıtıcısının PCB yerleşimi Şekil 5’te ve bileşen yerleşimi Şekil 6’da gösterilmiştir. Bileşenleri devre şemasına göre PCB’ye monte edin.

    Şekil 5: IoT tabanlı su ısıtıcısının PCB’si6: PCB için bileşen yerleşimi

    PCB ve Bileşen Düzeni PDF’lerini indirin: Buraya Tıklayın

    Su ısıtıcısını, RL1’in normal bağlantı (NC) kontağı üzerinden CON1 konnektöründeki 230V AC şebekesine bağlayın. 230V AC ana şebekeyi CON2’ye bağlayın. Blynk uygulamasında Oynat’ı tıkladığınızda zamanlayıcı başlayacaktır. Zamanlayıcı, uygulamada tanımlandığı gibi önceden belirlenmiş veya ayarlanmış süreye ulaştığında otomatik olarak başlar. Röleye enerji verilir ve ısıtıcı açılır. Durma süresinden sonra rölenin enerjisi kesilir ve ısıtıcı kapatılır. Artık proje kullanıma hazırdır.

     

    https://drive.google.com/file/d/1LxQ5v66BNzRgh7LGs8k_LUDBjFUw7WFw/view?usp=sharing

  • LM35 ile Sıcaklığı Sesli Uyarılarla İzleme devresi

    LM35 ile Sıcaklığı Sesli Uyarılarla İzleme devresi

    Bu proje, sıcaklığı izlemek ve sesli uyarılar göndermek için Arduino Uno ve Processing yazılımına dayanmaktadır. İşleme, verileri görselleştirmek ve diğer işlevleri uygulamak için kullanılabilen açık kaynaklı bir IDE’dir.

    Devre ve çalışma

    Devre Arduino Uno kartı ve LM35 sıcaklık sensörü etrafında inşa edilmiştir. LM35 çıkış pinini (V0) Arduino kartının A0 pinine, Vcc pinini kartın 5V pinine ve toprak pinini ortak bağlayın. LM35’in Arduino Uno ile devre bağlantıları Şekil 1’de gösterilmektedir.

    1: LM35’in Arduino Uno ile devre bağlantıları

    Arduino, ortam sıcaklığını hesaplamak için LM35 sıcaklık sensörünün çıkış pimini izler. Ardından, bağlandığı seri bağlantı noktasındaki değeri gönderir. İşleme yazılımı bağlantı noktasından gelen verileri alır ve grafik kullanıcı arabiriminde (GUI) görüntüler. Ayrıca sıcaklığı da kontrol eder. Sıcaklık 40 ° C’nin altındaysa, yeşil LED yanar. 40 ° C’nin üzerindeyse, dizüstü bilgisayar hoparlöründe kırmızı LED yanar ve önceden kaydedilmiş bir sesli uyarı duyulur.

    Arduino’daki mikro denetleyicide (MCU) dahili 10 bit analog-dijital dönüştürücü (ADC) bulunur. Arduino, ADC’sini kullanarak A35 analog pimi aracılığıyla LM35’in çıkışını izler. Arduino’daki program (efy_temp.ino), aşağıda verildiği gibi, gerçek sıcaklığı vermek için belirli faktörleri kullanarak çarpma ve bölme gerçekleştirir.

    Sıcaklık = (val x 4.88) / 10; // değeri sıcaklığa dönüştürmek için çarpım faktörü

    Yukarıdaki ilişkiyi anlamak için, Arduino’daki ADC’nin varsayılan olarak referans olarak 5V aldığını unutmayın. Bu nedenle, adım boyutunu hesaplamak için aşağıda verilen ilişkiyi kullanın.

    Adım boyutu = Vref / 2 n
    burada n = bit sayısı

    Burada, Arduino’da 10 bitlik bir ADC var. Yani,
    Stepsize = 5/1024 = 0.0048828 = 4.88mV

    LM35’in veri sayfası, her 1 ° C artış için çıktıda 10mV’lik bir artış olduğunu söylüyor.

    Bu nedenle, sıcaklık = (val × 4.88mV) / 10mV

    GUI’yi anlama

    IDE’nin işlenmesi Kartezyen koordinatları kullanır (Şekil 2). Dikdörtgen GUI penceresinin sol üst köşesinin (0,0) koordinatına sahip olduğunu varsayar ve diğer tüm koordinatlar buna göre alınır. İstenen işlevselliği elde etmek için, seri ve minim olmak üzere iki kütüphane kullanılır.

    Şekil 2: Kartezyen koordinatlar

    Minim kitaplığı İşleme IDE ile önceden yüklenmiş olarak gelir; test adımları bölümünde açıklandığı gibi indirilmesi ve kurulması gerekir.

    GUI penceresini oluşturmak için işlem kodu (dee_efy.pde) kullanılır. Setup () içindeki kod bir kez çalışır ve GUI penceresinin boyutunu ayarlar ve temel bağımlılıkları yükler. Çizim döngüsünün içindeki kod tekrar tekrar çalışır. seri bağlantı noktasına her veri geldiğinde serialEvent () işlevi çağrılır. İşleme dizeyi okur ve data adlı bir değişkende saklar.

    Led () işlevi, sıcaklık değerine bağlı olarak kırmızı ve yeşil LED’lerle ilgilenir.

    Uygulama ayrıca Dosya> Uygulamayı Dışa Aktar’a giderek Windows, Mac veya Linux platformları için bağımsız bir uygulama olarak çalışacak şekilde dışa aktarılabilir. Dışa aktarmak istediğiniz platformu seçin ve Tamam’ı tıklayın.

    Test adımları

    1. Arduino IDE’yi web sitesindenindirin ve  bu web sitesinden İşleme yazılımı yükleyin .
    2. Arduino kartını bir USB kablosu kullanarak dizüstü bilgisayara veya bilgisayara bağlayın ve Arduino IDE yazılımını kullanarak Arduino kodunu (efy_temp.ino) açın. Araçlar altında, kartı Arduino / Genuino Uno olarak seçin ve COM bağlantı noktasını düzeltin. Ardından kodu derleyin ve Arduino kartına yükleyin.
    3. İşleme yazılımını kullanarak İşleme kaynak kodunu (dee_efy.pde) açın. Sesli uyarılar için bu yazılıma ses kitaplığını (minim) ekleyin. Bunun için Çizim> Kitaplığı İçe Aktar…> Kitaplık Ekle…> minim’e gidin. Filtre kutusunda, minim’i arayın ve Yükle’ye tıklayın ve birkaç saniye bekleyin.
    4. GUI’niz için yazı tipleri ekleyin. Bunun için Araçlar> Yazı Tipi Oluştur’a gidin, Arial-black-48’i seçin ve Tamam’ı tıklayın. Renk kodları Araçlar> Renk Seçici seçeneğinden edinilebilir.
    5. İşleme kodundaki COM12 port numarasını kendi COM port numaranızla değiştirin. Windows Aygıt Yöneticisi altındaki COM bağlantı noktasını kontrol edin. Kodu çalıştırmadan önce kaydedin. Çalınacak önceden kaydedilmiş ses dosyalarının, renkli yazı tipi dosyasının ve Arduino kodunun PC’nizdeki veri klasörünün içinde olması gerektiğini unutmayın.
    6. Kodu çalıştırın, Şekil 3’te gösterildiği gibi bir GUI sıcaklık değeriyle açılacaktır.

    3: GUI’de sıcaklık okuması

    GUI’de, sıcaklık önceden tanımlanmış sınırın (40 ° C) altında olduğunda yeşil LED yanar ve sesli uyarı ile birlikte sıcaklık önceden tanımlanmış sınırın üzerinde olduğunda kırmızı LED yanar.

    Kaynak Klasörü İndir

    Not

    Sesli uyarının sesini (tempSafe.mp3 ve tempWar.mp3) istediğiniz diğer uyarı sesleriyle değiştirebilirsiniz, ancak formatın, yani .mp3’ün aynı olduğundan emin olun.

    Uyarıyı kullanmak istediğiniz sıcaklık sınırını değiştirmek isterseniz, kaynak kodunu işlerken if (convertedData> 40) değerinden değiştirebilirsiniz.

     

    https://drive.google.com/file/d/1juPV2RD8rlnmV5rZ4jw1Pifsivg1wewH/view?usp=sharing

  • Akıllı Telefonda Dijital Pano ile IoT Özellikli Hava Kirliliği Ölçme Devresi

    Akıllı Telefonda Dijital Pano ile IoT Özellikli Hava Kirliliği Ölçme Devresi

    Burada, Blynk uygulamasını ve Arduino kartını kullanarak akıllı telefonunuzdaki hava kalitesini izlemek için IoT özellikli bir hava kirliliği ölçer sunulmaktadır . Blynk, Arduino, Raspberry Pi’yi kontrol etmek için Nesnelerin İnterneti (IoT) platformudur ve benzerlerini İnternet üzerinden . Bu projede Blynk, akıllı telefonunuzda yakın çevre için gerçek zamanlı hava kalitesi okumaları görüntüleyen dijital bir gösterge paneli sağlar.

    Blynk belirli bir kart veya kalkan için tasarlanmamıştır. Arduino veya Raspberry Pi’nin Wi-Fi, Ethernet veya ESP8266 üzerinden İnternet’e bağlı olup olmadığına bakılmaksızın sizi çevrimiçi ve IoT’ye hazır hale getirecek çipi .

    Blynk nasıl çalışır

    Blynk donanımı uzaktan kontrol edebilir. Sensör verilerini görüntüleyebilir, diğer harika şeylerin yanı sıra saklayabilir ve görselleştirebilir. Platformda aşağıda belirtildiği gibi üç ana bileşen vardır:

    Blynk uygulaması

    Çeşitli widget’lar kullanarak projeleriniz için şaşırtıcı arayüzler oluşturmanıza olanak tanır.

    Blynk sunucusu

    Akıllı telefon ve donanım arasındaki tüm iletişimden sorumludur. Blynk Cloud’u kullanabilir veya özel Blynk sunucunuzu yerel olarak çalıştırabilirsiniz. Açık kaynak kodludur ve binlerce cihazı işleyebilir. Raspberry Pi’de de başlatılabilir.

    Blynk kütüphaneleri

    Kütüphaneler tüm popüler donanım platformları için mevcuttur. Kütüphaneler, sunucu ile iletişimi sağlar ve gelen ve giden tüm komutları işler.
    Telefondaki Blynk uygulamasında bir düğmeye bastığınızda, sinyal Blynk Bulut’a gider ve donanıma gider. Ters yönde de aynı şekilde çalışır ve her şey göz açıp kapayıncaya kadar gerçekleşir. Konsept Şekil 1’de gösterilmiştir.

    1: Blynk gömülü donanım ile bağlanıyor

    IoT özellikli hava kirliliği ölçer

    Hava kirliliği ölçüm cihazında aşağıdaki donanım bileşenleri kullanılır:

    Kontrolör ve sensörler

    Arduino Uno, kontrol ve ölçüm birimi ve Blynk Cloud’a bağlantı için Arduino Uno Ethernet kalkanı olarak kullanılır. Sensörler arasında nova PM sensörü SDS011, gaz sensörü MQ135 ve sıcaklık ve nem sensörü DHT11 bulunur.

    Akıllı telefon ve dijital gösterge paneli

    Android telefon bir akıllı sayaç olarak kullanılır. Blynk uygulaması iyi tasarlanmış bir arayüz oluşturucudur. İOS ve Android’de çalışır ve LCD, basma düğmeleri, açma / kapama düğmeleri, LED göstergesi, RTC ve daha fazlası için kullanımı kolay widget’lar sağlar. Bir akıllı telefonda Blynk dijital gösterge paneli özelliklerinin kullanılması, geleneksel LCD ekran, mekanik düğmeler, LED’ler, RTC ve benzeri gerekmediği için projenin maliyetini düşürmeye yardımcı olur. Dijital gösterge paneli veya akıllı sayaç ekranı Şekil 2’de gösterilmiştir.

    Şekil 2: Android telefonda dijital gösterge tablosu

    Devre ve çalışma

    Dijital gösterge panosuna sahip IoT özellikli hava kirliliği ölçüm cihazının devre şeması Şekil 3’te gösterilmektedir. Devrenin kalbi Arduino korumalı Arduino Uno kartıdır. Kullanılan diğer bileşenler, 7805 voltaj regülatörleri (IC1 ve IC2), CON3 konnektörüne bağlı sıcaklık ve nem modülü DHT11, CON2 konnektörüne bağlı gaz sensörü MQ135, CON1 konnektörüne bağlı PM2.5 / PM10 sensörü ve birkaçıdır.

    Şekil 3: PM2.5 / 10 IoT özellikli hava kirliliği ölçüm cihazının devre şeması

    PM2.5 / PM10 sensörü (SDS011)

    Partikül madde (veya PM) olarak da adlandırılan partikül kirliliği, havada yüzen katı partiküllerin ve sıvı damlacıklarının bir karışımıdır. Bazı parçacıklar doğrudan belirli bir kaynaktan salınırken, diğerleri atmosferdeki karmaşık kimyasal reaksiyonlarda oluşur.

    CON1’e bağlı PM2.5 / PM10 sensörü, Çin Jinan Üniversitesi’nden bir spin-off olan INOVAFIT tarafından geliştirilmiştir. Havada lazer saçılması ilkesini kullanır ve 0,3 ila 10 mikron arasında değişen asılı partikül madde konsantrasyonunu tespit edebilir. Sensör tarafından toplanan veriler kararlı ve güvenilirdir. SDS011 sensörü Arduino Uno kartının UART portuna (TX ve RX) bağlanır.

    Gaz sensörü (MQ135)

    Sensörün hassas malzemesi, iletkenliği gaz konsantrasyonu ile artan kalay dioksittir. İletkenlikteki değişiklik, yanıcı gaz konsantrasyonuna karşılık gelen çıkış voltaj sinyaline dönüştürülür. MQ135, amonyak, sülfür ve benzen buharları, duman ve diğer zararlı gazlara karşı oldukça duyarlıdır. Farklı uygulamalar için uygun düşük maliyetli bir sensördür. Gaz sensörünün çıkışı, CON2 konnektörü aracılığıyla Arduino Uno kartının analog giriş pimine A3 bağlanır.

    Sıcaklık ve nem sensörü (DHT11)

    Bu kompozit sensör, sıcaklık ve nem için kalibre edilmiş dijital sinyal çıkışları içerir. CON3 konnektörüne bağlı olarak, dirençli bir nem ölçüm bileşeni ve bir NTC sıcaklık ölçüm cihazı içerir. Çıkış pimi, Arduino Uno kartının dijital pimine 5 bağlanır. Performansı için nispeten ucuz bir sensördür.

    Ek özellikler

    RL1 ve RL2 röleleriyle ek alarm göstergesi ve kontrolü sağlanmıştır. İki cihaz (ışık ve fan) CON5 ve CON6 konektörlerine bağlanabilir, ancak ihtiyacınıza göre daha fazlasını ekleyebilirsiniz. CON4 konnektörü, sırasıyla CON5 ve CON6’ya bağlı lambayı ve fanı çalıştırmak için 230V AC şebeke elektriğini bağlamak için kullanılır.

    Güç kaynağı

    7805 regülatörler (IC1 ve IC2) kullanılarak 5V’ye ayarlanan CON7 konnektörüne bir 12V pil veya besleme bağlanır. Sistem açıldığında, cihazın çalışmaya hazır olması için gaz sensörünü önceden ısıtması bir dakika alır. Tüm sensör devresi 9V veya 12V adaptör veya pil ile güçlendirilebilir. Burada, devrenin çeşitli kısımlarını sürmek için IC1 ve IC2 kullanılmıştır.

    Tüm sensör devresini (Şekil 3) hava kalitesini veya kirliliği izlemek istediğiniz yere yerleştirmeniz gereken uygun bir kutuya yerleştirin.

    Ethernet kalkanı

    Arduino Ethernet kalkanı, Arduino’yu İnternet’e kolayca bağlamanızı sağlar. Bu kalkan, Arduino’nun dünyanın herhangi bir yerinden internet bağlantısıyla veri gönderip almasını sağlar.

    Dijital gösterge paneli kurulumu

    Adım 1. Ethernet korumasını Arduino Uno’ya takın ve Board1’i bir USB kablosu kullanarak PC’ye bağlayın.

    Adım 2. Arduino sketch ethernetclient.ino’daki IPAddress IP’sindeki (IP adresiniz) IP adresini değiştirin. Bu çizim / program kodu makalenin sonundan indirilebilir.

    Kodu derleyin ve Arduino IDE’den Arduino Uno’ya yükleyin. Bu kod, Ethernet kalkanı kullanarak nasıl HTTP isteği yapacağınızı gösterir. Arduino kelimesi için bir Google araması döndürür. Bu aramanın sonuçları Arduino’nun seri penceresinden HTML olarak görüntülenebilir.

    Adım 3. ethernetserver.ino taslağını derleyin ve Arduino Uno kartına yükleyin. Çizimdeki IPAdresi IP’sinde (IP adresiniz) IP adresinizi değiştirin. Bu örnekte, basit bir Web sunucusu oluşturmak için Ethernet kalkanınızı ve Arduino kartınızı kullanın. Ethernet kütüphanesini kullanarak, cihazınız bir HTTP isteğini Ethernet kalkanı ile cevaplayabilecektir.

    Ethernet kalkanı IP adresine gittikten sonra, Arduino HTML tarayıcısı aracılığıyla yanıt verecektir ve Board1’in analog pinlerinden (A0 ila A5) giriş değerlerini kabul etmeye hazır olacaktır.

    Adım 4. Cep telefonunuzu Wi-Fi ile bağlayın. Google Play Store’dan Blynk uygulamasını indirin ve yükleyin. Ardından, yeni bir Blynk hesabı oluşturun (Şekil 4). Bu hesap, zaten bir hesabınız olması durumunda Blynk Forumları için kullanılan hesaplardan ayrıdır.

    4: Blynk’te yeni bir hesap oluşturma

    Projelerinizi kaydetmek ve bunlara dünyanın herhangi bir yerindeki birden fazla cihazdan erişebilmek için bir hesaba ihtiyaç vardır. Aynı zamanda bir güvenlik önlemidir. Daha sonra işleri basitleştireceği için gerçek bir e-posta adresi kullanmanızı öneririz.

    Adım 5. Hesabınıza başarıyla giriş yaptıktan sonra, yeni bir proje oluşturarak başlayın (Şek. 5) ve buna bir isim verin.

    5: Yeni bir proje penceresi oluşturma

    Adım 6. Kullanmak istediğiniz donanım modelini seçin. Bu durumda Arduino Uno’dur (Şekil 6).

    6: Donanımın seçilmesi

    Adım 7. Yetkilendirme (veya Yetkilendirme) belirteci, donanımı akıllı telefonunuza bağlamak için gereken benzersiz bir tanımlayıcıdır. Oluşturduğunuz her yeni projenin kendi Auth jetonu olacaktır (Şekil 7). E-posta düğmesini tıklayın, belirteç kayıt için kullandığınız e-posta adresine gönderilecektir. Pollense.ino dosyasındaki auth [] = “belirteciniz” içinde bu belirteci kullanın.

    7: Tipik yetkilendirme jetonu

    Https://github.com/blynkkk/blynk-library/releases/tag/v0.3.4 adresinden Blynk kütüphanesini (Blynk_v0.3.4.zip) indirin ve Arduino IDE’ye ekleyin. Polution.ino kodunu derleyin ve Arduino kartına yükleyin.

    Adım 8. Oluştur’a basın (Şek. 8).

    8: Oluştur düğmesine basma

    Adım 9. Proje tuvaliniz şu anda boş. Widget kutusunu açmak için tuvalin herhangi bir yerine dokunun; kullanılabilir tüm widgetlar burada bulunur. Widget ekleyin (Şek. 9).

    9: Widget Kutusu penceresi

    Ayarlara aşağıdaki widget’ları ekleyin ve ekranın Şekil 2’de gösterildiği gibi dijital bir gösterge panosu gibi görünmesini sağlayın. Buna LCD (Şekil 10), LED, açma / kapama düğmesi, butonlar ve RTC widget’larının eklenmesi dahildir.

    10: LCD widget ayarı

    Adım 10. Projeyi çalıştırın. Ayarları tamamladığınızda Oynat’a basın (Şek. 11). Bu, ekranı donanımdan etkileşim kurabileceğiniz düzenleme modundan çalma moduna geçirir. Oynatma modundayken, yeni widget’ları sürükleyemez veya ayarlayamazsınız. Durdur’a basın ve düzenleme moduna dönün. Oynatma modunda, Şekil 12’de gösterilen ekranı bulacaksınız.

    11: Oynat düğmesi12: Oynatma modu

    EFY notları: Uygun bir IoT tabanlı test için Android mobil cihazınız ve Arduino sensör kartınız için farklı Wi-Fi ağları kullanın.

    Kaynak klasörü indir

    https://drive.google.com/file/d/18a0kLJCwfYt28QnhipTiCTyLH_F7TwF7/view?usp=sharing

  • ESP8266-12E / F Modülünü Programlamak için devre şeması

    Bu makalede, ESP8266-12E / F modül programcısı yapmak için bir yöntem açıklanmakta ve aynı zamanda gerçek zamanlı uygulamalar için gereken destek devresi açıklanmaktadır.

    NodeMCU kartı, ESP8266 Wi-Fi özellikli çip ve diğer birçok destek devresinden oluşan bir geliştirme kitidir. Wi-Fi ile ilgili projelerde çalışmak için kullanışlı olan popüler bir panodur. Ancak ürün geliştirme ve test aşamaları tamamlandığında, NodeMCU kartının tamamı gerekli değildir – son ürün için sadece ESP8266 yongası gereklidir. Bu, ürünün toplam maliyetini azaltır, güç tüketimini azaltır ve daha küçük bir PCB alanı ve kod güvenliği sağlar.

    Ancak ESP8266 yongasını NodeMCU kartından ayırmak kolay değildir. Alternatif bir çözüm, ayrıca NodeMCU kartından çok daha ucuz olan ESP8266 yongasını ayrı olarak satın almaktır. Bu seçenekle, bu makalede açıklanan gibi uygun bir programlayıcı kullanarak kodu doğrudan ESP8266 yongasına yazabilirsiniz. Bundan sonra, ESP8266 yongasını programlayıcıdan çıkarabilir ve son ürününüzde kullanabilirsiniz.

    Yazar tarafından kullanılan ESP8266-12 E / F modülü programlayıcı Şekil 1’de gösterilmektedir.

    1: Yazar tarafından kullanılan ESP8266-12 E / F modülü programcısı

    ESP8266 kullanarak bir proje tasarlama ve inşa etme işlemi iki ayrı adıma ayrılabilir: donanım ve yazılım. Donanım, GPIO’lara destek devresi oluşturma etrafında dönerken, yazılım çizimin çip içine yazılması, derlenmesi ve yüklenmesi etrafında döner. Böyle bir uygulama yine iki aşamadan oluşur: geliştirme ve dağıtım.

    Geliştirme aşaması

    Geliştirme aşamasında, yazılımı yazmak için ESP8266 Board Manager ve destekleyici kütüphanelerle Arduino IDE gibi bir yazılım geliştirme kitine (SDK) veya daha yeni bir PlatformIO IDE’ye ihtiyacınız vardır.

    1. Yazılım kodu, yerleşik seri TTL-USB adaptörü (bazen USB-UART köprüsü olarak adlandırılır) kullanılarak ESP8266 yongasına yanıp söner. Yeni bir yazılımın yanıp sönmesi için, ESP8266 yongasının flaş modunda yeniden başlatılması ve bilgisayardan gelen USB sinyallerinin seri UART sinyallerine dönüştürülmesi ve Rx0 ve Tx0 pinleri (GPIO3 ve GPIO1) kullanılarak çipe aktarılması gerekir.
    2. NodeMCU kartında, destek devresi tüm bunları sorunsuz bir şekilde otomatik olarak gerçekleştirir. Bu, NodeMCU veya WemosD1 Mini gibi benzer bir kartı hobiler arasında popüler hale getirir. Sıfırlama ve Flash düğmelerinin, otomatik yüklemenin başarısız olması durumunda NodeMCU kartına da yerleştirildiğini unutmayın.

    Dağıtım / üretim aşaması

    Bu aşamada, nihai üründe sadece ESP8266 yongası gereklidir.

    Şimdi sorun ESP8266-12E / F (veya ESP-12E / F) çipinin nasıl kullanılacağını anlamak ve yine de kodu yükleyip NodeMCU veya benzeri bir kart olmadan yazılımı geliştirebilmektir. Bunun için öncelikle ESP-12E / F çipinin fiziksel boyutunu, çalışma, önyükleme ve yanıp sönme sürecini ayrıntılı olarak bilmemiz gerekir.

    ESP-12E / F modülü. Modülün dış boyutu Şekil 2’de gösterildiği gibi 16mm x 24mm x 3mm’dir. 4MB SPI flaşı ve yerleşik PCB anteni vardır. Pim aralığı 2 mm’dir.

    Şekil 2: ESP-12E modülünün pim ayrıntıları

    Projeyi oluşturmak için 2.54 mm’lik bir pim aralığına sahip genel amaçlı bir PCB kullanılıyorsa, ESP8266 yongası için bir kesme kartı kullanılabilir. Bu projede kullanılan ayırma panosu Şekil 3’te gösterilmektedir. Ancak, projeye özgü bir PCB kullanılıyorsa, ayırma panosuna gerek yoktur. ESP8266-12x kesme tahtası düşük bir maliyetle kolayca temin edilebilir.

    ESP-12E / F yongası, verilen pedlerde ayırma kartına lehimlenir ve başlık pimleri de ayırma kartına lehimlenir. Başlık pimleri 2.54 mm aralıklı. ESP-12E / F modülü herhangi bir genel amaçlı PCB’ye takılabilir.

    Ara kartında üç SMD direnci de vardır (Şekil 3). Kartın ön tarafında, düşük düşmeli 3.3V voltaj regülatörü olan HT7333A’yı sabitlemek için alan var. Alternatif olarak, devreye güç vermek için harici bir 3.3V regülatör kullanılabilir.

    3: ESP-12E / F çip için kesme kartının ön ve arka tarafları

    Manuel ESP-12E / F programlayıcı

    ESP-12x tabloda gösterildiği gibi üç farklı modda önyükleme yapabilir. İlk iki önyükleme modu ile ilgileniyoruz.

    Tablodan görülebileceği gibi, önyükleme sırasında GPIO2 ve Ch_PD / En pinleri daima yüksek, GPIO15 ise düşük tutulmalıdır. Bağımsız ESP-12E / F yongasını kullanırken, Ch_PD ve GPIO2 pinlerine 10k / 12k yukarı çekme dirençleri ve GPIO15 pinine aşağı çekme (10k / 12k) dirençleri ekleyin. Çekme ve çekme dirençlerinin kesme kartında önceden oluşturulduğunu unutmayın.

    Sıfırlama pimi ve GPIO0 normalde yüksek tutulmalı, ancak Şekil 4’teki devrede gösterildiği gibi mikro anahtarlarla toprağa bağlanmalıdır. Bu, ESP-12E / F modülünü kullanmak için gereken minimum yapılandırmadır. Bu modülün etrafında inşa edilen her projede bu beş adet 12k direnç bulunmalıdır. Bu dirençler NodeMCU kartında önceden oluşturulmuştur.

    4: Manuel ESP8266-12E / F Modül Programlayıcısının devre şeması

    Manuel yanıp sönme işlemi

    Manuel ESP-12E / F programcısı Şekil 4’te gösterilmiştir. Herhangi bir çizim / kodu ESP8266 çipine manuel olarak yanıp sönmek için, önce aşağıdaki gibi adım adım flash / programlama moduna getirin:

    1. Sıfırla (S1) ve Flaş (S2) düğmelerini basılı tutun.
    2. S2 düğmesini basılı tutarak S1’i serbest bırakın. GPIO0 düşük tutulurken bu güç açmaya eşdeğerdir.
    3. ESP8266 önyükleme yaptıktan sonra S2’yi bırakın.
    4. Yazılımı Tx ve Rx pinleri aracılığıyla yükleyin. Bilgisayarlarda artık donanım seri bağlantı noktaları bulunmadığından, USB’den UART’a dönüştürücü kullanılabilir. Bu dönüşüm NodeMCU’da dahili CH340G veya CP2102 USB-UART çipi üzerinden gerçekleşir. Kolayca bulunabilen FTDI USB-UART modülü bu programcı için kullanılır.
    5. Yanıp sönme işlemi tamamlandığında, ESP8266’yı normal modda başlatmak için S1 anahtarına basarak ESP8266’yı yeniden başlatın.

    ESP8266-12E / F Modül Programlayıcı’nın farklı önyükleme modları

    Yanıp sönen işlemi otomatikleştirme

    Yukarıdaki işlem, yeni yazılımların her yanıp sönmesinde manuel müdahale gerektirse de, NodeMCU kullanma deneyimine benzer şekilde yazılım kodunu yükleme kolaylığına ihtiyacımız var. Bu işlem, ESP8266 yongasındaki Reset ve Flash (GPIO0) pinlerini bildirmek için kullanılan USB-UART yongasının veri terminali hazır (DTR) ve gönderilmeye hazır (RTS) sinyalleri kullanılarak otomatikleştirilebilir.

    DTR ve RTS pinlerine FT232x USB-UART modülü etrafında inşa edilen popüler FTDI modülünden kolayca erişilebilir (Şekil 5’de gösterilmiştir). CH340 yongaları kullanan harici USB-UART modülleri de mevcuttur, ancak bu modüllerde DTR ve RTS pinlerine erişilemez.

    Şekil 5: FT232 USB-UART modülü

    FT232x USB-UART modülündeki RTS sinyali, Şekil 5’te gösterildiği gibi ayrı bir pim üzerinde mevcuttur. Programlayıcı ile kullanım kolaylığı için, erkek çıkış pimlerini gerekli tüm çıkışların (deliklerin) bulunduğu modüle takın. Altı pinden oluşan isteğe bağlı bir seri adaptör, dikey olarak değil, modül üzerine yatay olarak monte edilir.

    FT232 modülü ayrıca USB I / O için entegre 3.3V seviye dönüştürücüsüne sahiptir. ESP8266-12x 3.3V üzerinde çalıştığından, modül üzerindeki atlama kablosu 3.3V olarak ayarlanmalıdır, böylece sinyaller ESP8266 ile uyumludur. 3.3V, harici mantık sağlamak için de kullanılabilir. Bununla birlikte, FT232’deki maksimum akım değeri 100mA, ESP8266-12E / F ise 170mA’lık tepe akımları çekebilir. FT232 cihazının hasar görmesini önlemek için ESP8266-12E / F’ye güç sağlamak için harici bir 3.3V modülü kullanılır.

    Programcı devresi

    Otomatik programlayıcının devre şeması Şekil 6’da gösterilmiştir. ESP8266-12E modülü (MOD1), FT232 modülü (MOD2), 3.3V modülü (MOD3), iki anahtar (S1 ve S2), iki BC547 transistör etrafında inşa edilmiştir. (T1 ve T2) ve diğer birkaç bileşen.

    6: Otomatik ESP8266-12E / F Modül Programlayıcısının devre şeması

    Otomatik ESP-12E / F programlayıcı devresi yukarıda tartışılan manuel programlayıcıya benzer. RTS sinyali ESP8266’yı sıfırlamak için kullanılırken, DTR sinyali çipi flaş moduna almak için kullanılır. T1 ve T2, hem DTR hem de RTS sinyalleri düşük olduğunda ESP8266’nın sıfırlanmaması için kullanılır. Yükleme komutunun algılanması üzerine, ESP modülü otomatik olarak flaş moduna geçirilir ve sorunsuz bir şekilde yeni bir çizim yüklenebilir. Yükleme komutunun yokluğunda, ESP-12E / F normal modda başlar ve programlanmış ESP-12E / F kartı bir uygulamada test edilebilir veya kullanılabilir.

    ESP-12E / F kartını test etmek için, bu makalede basit bir LED yanıp sönen uygulama sunulmuştur. Yazılım kodu (NewBlink.ino) Arduino programlama dilinde yazılmıştır.

    Programlayıcı nasıl kullanılır

    Programlayıcı, Şekil 7’de gösterildiği gibi genel amaçlı bir PCB üzerine veya Şekil 8 ve 9’da gösterildiği gibi tasarlanmış PCB üzerine kurulabilir.

    7: Yazar tarafından kullanılan modüller ve genel amaçlı PCB8: Otomatik ESP8266-12E / F Modül Programlayıcı’nın PCB düzeni9: PCB için bileşen yerleşimi

    PCB ve Bileşen Düzeni PDF’lerini indirin: buraya tıklayın

    Kaynak Klasörü İndir

    Dişi Berg şerit konnektörleri, ESP8266 yongasını ve programlayıcı kartındaki FTDI kartını (FT232 modülü) takmak için kullanılır. Modülleri ve konektörleri PCB’ye monte edin. Modüllerin doğru yönde takıldığından emin olun.

    Şimdi FT232 modülünü bir USB kablosuyla bilgisayara bağlayın. Arduino IDE’yi açın ve kodunuzu yazın veya bilgisayarınızda kayıtlı mevcut kodu açın. Burada, LED yanıp sönen uygulamanın kodunu (NewBlink.ino) açmanız yeterlidir.

    Arduino IDE’de doğru Com portunu seçin ve kartı NodeMCU 1.0 (ESP-12E Modülü) olarak ayarlayın. Yükleme hızının 115200 olduğunu kontrol edin. Normalde NodeMCU kullanarak yaptığınız gibi derleyin ve yükleyin. ESP-12E / F kartındaki yerleşik LED (GPIO 2’de), başarılı yüklemede yanıp sönmeye başlayacaktır.

    Programlanan ESP-12E / F modülü programlayıcıdan çıkarılabilir ve projeye özgü kartınıza kaydırılabilir. Artık dağıtım için hazır olan daha ucuz ve daha küçük bir NodeMCU sürümüne sahipsiniz.

     

     

     

    https://drive.google.com/file/d/1H8TGZ39DN2mhjHOwNZcs5HUSTocxo3NO/view?usp=sharing

  • Tehlike anında bir düğmeye basarak yardım çağrısı gönderme uygulaması

    Tehlike anında bir düğmeye basarak yardım çağrısı gönderme uygulaması

    Ashwini kumar sinha

    3 Kasım 2019

    Çaresiz bir durumda nasıl kaldığını ve neden olduğu stresi hepimiz biliyoruz. Size zarar vermeye çalışan tehlikeli bir kişinin karşılaştığını düşünün ve yardım istemenin bir yolu yoktur. Burada karşılaşılan stres artan paniğe yol açacaktır.

    Endişelenme. Bugün, akıllı bir uygulama aracılığıyla telefonunuza bağlanabilecek tehlike çağrıları için akıllı giyilebilir bir cihazın prototipini yapacağız. Akıllı cihazdaki düğmeye basit bir şekilde basıldığında, geçerli konumunuzla ilgili bir yardım mesajı otomatik olarak aile üyenize veya daha sonra kurtarmaya gelebilecek güvenilir kişiye gönderilir.

    Bu cihaz özellikle kadınların dışarı çıkarken kendilerini güvende hissetmeleri için faydalıdır.

    Şimdi projeye başlayalım.

    Gerekli malzemeler

    Aşağıdaki temel elektronik bileşenleri talep edeceğiz.

    Kodlama

    Akıllı uygulamayla Bluetooth iletişimi için 9600 baud hızında SoftwareSerial işlevini başlatın. Ardından, anahtar girişinin değerini saklamak için bir tamsayı değişkeni bildirin. (Bakınız Şekil 1.)

    Şekil 1. Arduino kodu

    Daha sonra, analog pim A0’da önceden kaydedilmiş anahtar değerini kontrol etmek için bir döngü fonksiyonu oluşturun. Ayrıca , cihazdaki düğmeye her basıldığında ve koşul geçerli olduğunda akıllı uygulamaya benzersiz bir numara kodu göndermek için ‘if’ koşulu oluştururuz . (Bakınız Şekil 2.)

    Şekil 2. Arduino kodu.

    Akıllı uygulama oluşturma

    Arduino kodunu yazdıktan sonra, şimdi akıllı uygulamayı yapalım. Www.kodular.io adresine gidin , Uygulama Oluştur’u tıklayın ve hesabınızı oluşturun (zaten bir hesabınız varsa oturum açın). Android uygulamaları oluşturmak için ücretsiz ve basit. Giriş yaptıktan sonra Proje oluştur’u seçin ve bir ad verin. Ardından, ekranın sol tarafında (Palet) verilen araçlar listesinden UI ekranı için aşağıdaki araçları seçin ve ekleyin. Bunları sanal telefon ekranına sürükleyip bırakın. (Bakınız Şekil 3.)

    Araçlar

    • 3 Metin_Kutu
    • 1 Bluetooth_Client (Bağlantı 🡪 Bluetooth İstemcisi’ni seçin)
    • 1 Saat (Sensörler 🡪 Saat’i seçin)
    • 1 Mesajlaşma (Sosyal 🡪 Mesajlaşma’yı seçin)
    • 1 Phone_Call (Sosyal 🡪 Telefon Görüşmesi’ni seçin)
    • 1 Location_Sensor (Sensörler 🡪 Sensör Konumu’nu seçin)
    • 1 List_Picker (Kullanıcı Arayüzü 🡪 Liste Seçici’yi seçin)
    • 1 Dikey_Düzenleme (isteğe bağlı)

    Not: Yukarıda belirtilen araçlar yazılımda bileşenler olarak adlandırılır, bu yüzden kafanız karışmaz.

     

    Şekil 3. Uygulamanın oluşturulması

    Kullanıcı arayüzü ekranı için gerekli araçları ekledikten sonra Phone_Call’a tıklayın ve iletişim kurmak istediğiniz telefon numarasını girin. Ardından, Mesajlaşma’yı tıklayın ve aynı telefon numarasıyla birlikte istediğiniz mesajı girin. (Bakınız Şekil 4.)

    Şekil 4. Telefon numarası

    Ardından Mesafe Aralığı’nı 1 ve Zaman Aralığı’nı 1000 olarak ayarlamak için Location_Sensor’a tıklayın. Bu sayılar, kullanıcının attığı her adımda zaman ve yer değişikliği için eşik değerlerini gösterir. (Bakınız Şekil 5.)

    Şekil 5. Zaman ve Konum değerleri

    Son uygulama düzeni aşağıda gösterildiği gibidir. (Bakınız Şekil 6.)

    Şekil 6. Uygulama düzeni.

    Akıllı uygulamayı programlama

    Şimdi aynı pencerenin sağ üst köşesine gidin ve Bloklar’ı seçin. Kodlama düzenini göreceksiniz. Akıllı uygulamayı aşağıda gösterildiği gibi programlayın. (Bakınız Şekil 7.)

    İndirme Kodu

    Şekil 7. Kodüler kod blokları

    Bağ

    Arduino kartındaki bileşenleri aşağıda açıklandığı gibi bağlayın

    Arduino PIN 10 ————– HC 05 RX

    Arduino PIN 11 ————— HC 05 TX

    Arduino Pin GND ————- HC 05 GND

    Arduino Pin VCC ————- HC 05 5V

    Arduino A0 —————— Anahtar Pimi

    Şekil 8. Bağlantı şeması.

    Test yapmak

    Tüm uygun bağlantıları yaptıktan sonra, cihaza 5V pil ile güç verin ve ardından akıllı uygulamayı Bluetooth ile bağlayın. Düğmeye basıldığında, akıllı uygulama otomatik olarak mesajı konumla birlikte ayarlanan telefon numarasına gönderir.

    Şekil 10. Bağlantı için bluetooth’u gösteren uygulamaŞekil 11. Konumu göstermeŞekil 11. Uygulama gösteren konum.

     

     

    https://drive.google.com/file/d/11EYcsk0Jur3uBDkBocx8egn6zMDpkDFg/view?usp=sharing

  • Araba için Yüz Tanımalı Akıllı Kilit Yapımı

    Araba için Yüz Tanımalı Akıllı Kilit Yapımı

    Görüntü Kimlik Doğrulaması Yaparak

    Ashhwini Kumar Sinha

    Bir noktada, hepimiz, televizyon / gazete veya mahallede araba hırsızlığı haberlerine rastlamış olmalıyız. Bazılarımızla da olmuş olabilir. Yüksek teknolojili güvenlik aygıtları kurmasına rağmen, hırsızlar bir şekilde arabanıza erişmenin ve çalmanın yollarını bulmayı başarıyor. Bu nedenle, otomobiller için yüksek verimli ve kusursuz bir prototip üretmeye karar verdim. Bu güvenlik sistemini yetkisiz erişime karşı korunacağınız bankalar, kilitli dolaplar ve evler için de uygulayabilirsiniz.

    Nasıl çalışır?

    1. Bluetooth kullanarak aracınızın akıllı kilidini bağlayın.
    2. Ardından aracınızın şifresini girin.
    3. Bundan sonra, bir kamera yüzünüzü tanımak için küçük bir videonuzu çeker.
    4. Sonra parmak izinizi ister. Doğru ise, arabanıza erişebileceksiniz, aksi takdirde arabanın kontağını kapatacak ve sahibine bir uyarı mesajı gönderecektir.

    Ne inşa edeceğiz?

    3 adımlı bir araba kimlik doğrulaması akıllı kilidi yapmak için, bir yüz tanıma sistemi ve biyometrik bir şifre oluşturacağız, böylece sadece yetkili kişi araca erişebilsin.

    Malzeme listesi

    Kodlama

    Android uygulamamız ve Raspberry Pi arasındaki iletişimi sağlayacak ve böylece kilit kimlik doğrulamasını kontrol edecek bir Arduino kodu yazacağız. Bunu yapmak için, önce arabamızın ateşlemesini kontrol eden rölenin şifresini, yüz algılanan değeri (doğru için 1 ve yanlış için 0) ve pin numarasını saklayan değişkenler oluşturun . Ardından, Bluetooth iletişimi için baud hızını ayarlamak için bir kurulum işlevi yaratırız. Burada baud hızını = 9600 (varsayılan) kullandık. (Bakınız Şekil 1, Şekil 2).

    Şekil 1. Arduino koduŞekil 2. Arduino kodu ayar fonksiyonu.

    Şimdi, uygulamaya girilen şifreyi kodumuzda yazılı olanla çapraz kontrol etmek için bir döngü fonksiyonu oluşturuyoruz. Her iki şifre de eşleşirse, “kontrol” adı verilen başka bir işlev çağıracaktır. Kontrol fonksiyonu temel olarak Raspberry Pi’den yüz tanıma çıkışı isteyecektir. (Bakınız Şekil 3, 4)

    Şekil 3. Döngü işleviŞekil 4. Kontrol fonksiyonu

    Şimdi Arduino kodlamamızı yaptık. Ardından, Raspberry Pi masaüstü penceresini açın ve yüz tanıma için bir Python betiği yazın.

    Yüz tanıma için:

    Yükleme dlib , yastık , CV2 ve face_recognition senin Ahududu Pi içine Python modülleri. PyPl kütüphane dizininde verilen talimatlara göre kurulum işlemini takip edin.

    Yükleme işlemini tamamladıktan sonra Python IDE’yi açın ve yüz tanıma için Python betiğini yazmaya başlayın. Face_recognition , gpiozero , cv2 , numpy gibi gerekli tüm modülleri eklediğinizden emin olun .

    Bundan sonra, arabanızı sürmesi onaylanan tüm kişilerin resimlerini yapıştırın (senaryoyu yazdığınız yere). Resim adlarını koda yazdığınızdan emin olun. (Bakınız Şekil 5.)

    Şekil 5. Yüz tanıma

    Şimdi kodu indirin ve yüz tanıma için Raspberry Pi’de çalıştırın.

    Uygulamayı yapma

    Şimdi Kodular’ı açın (www.kodular.io adresine gidin) ve oturum açın. Uygulamanın kullanıcı arayüzünü oluşturmak için aşağıda verilen sanal bileşenleri ekleyin. (Bakınız Şekil 6.)

    • 4 Metin_Kutu
    • 1 Bluetooth_Client (Bağlantı -> Bluetooth İstemcisi’ni seçin)
    • 1 List_Picker (Kullanıcı Arayüzü-> Liste Seçici’yi seçin)
    • 1 Mesajlaşma (Sosyal Medya -> Mesajlaşma’yı seçin)
    • 1 Saat (Sensörler-> Saat’i seçin)

    Şekil 6.UI oluşturma

    Şimdi manifatura’yı tıklayın ve istediğiniz kısa mesajı içeren telefon numarasını girin. (Bakınız Şekil 7.)

    Şekil 7. Mesajlaşma ayarları.

    Uygulamayı programlama

    Programlama için Bloklar’a gidin ve kod bloklarını gösterildiği gibi birleştirin. (Bakınız Şekil 8.)

    Şekil 8. Kod blokları.

    Ve son olarak, APK’yı bilgisayarınıza aktarın ve ardından Android telefonunuza yükleyin. Son uygulama bu şekilde görünecektir. (Bakınız Şekil 9.)

    Şekil 9. Final Uygulaması

    İndirme Kodu

    Bağ

    Bileşenleri aşağıdaki gibi bağlayın:

    Arduino RX ——————- HC 05 TX

    Arduino TX ——————- HC 05 RX

    Arduino 5v ——————- HC 05 VCC

    Arduino GND —————- GND

    Arduino A0 ——————– Ahududu GPIO Yüz pimi Çıkışı

    Arduino Pin 13 ————— Röle

    Şekil 10. Devre Şeması.

    Uygulamayı test etme

    Prototipimizi test etmek için uygulamayı açın ve telefonunuzun Bluetooth özelliğini açın. Uygulama kısa mesajlara erişim istiyorsa buna izin verin. Şimdi Raspberry Pi’ye güç verin ve carface.py komut dosyasını çalıştırın . Bu komut dosyası çalıştığında, kamera yüzünüzü algılar ve yeni bir pencerede açar. Fotoğraf makinesi doğru yüzü algılarsa, Arduino’ya bir doğrulama sinyali gönderir. (Bakınız Şekil 11.)

    Şekil 11. Yüzün tanınması.

    Ardından, araç simgesine dokunarak aracı uygulamaya bağlayın.

    Şimdi Bluetooth HC 05’i seçin ve başarılı bağlantıdan sonra parmak izi simgesine dokunarak parolayı ve parmak izinizi girin. Arduino tüm işlemlerin doğru olduğunu tespit ederse, o zaman röle tetikler ve araba kontağını AÇIK konuma getirir. Yanlış şifre / parmak izi / yüz algılanırsa, araç kontağı KAPALI konuma getirilir ve uygulama, yetkisiz erişim hakkında bilgi vermek için sahibine bir uyarı mesajı gönderir. (Bakınız Şekil 12,13,14)

    Şekil 9. Final Uygulaması

    Şekil 15. Kimlik doğrulama hatası nedeniyle gönderilen mesaj

     

    https://drive.google.com/file/d/1ugPeTQ09SlPdBmiDrOkXPrCydlo02tth/view?usp=sharing

  • Otomatik olarak Yanan Lamba kontrol devresi

    Otomatik olarak Yanan Lamba kontrol devresi

    Kendi Akıllı Işığını Yapmak İstermisin

    A.Samiuddhin tarafından

    Çoğu tekstil perakende mağazasında, müşterilerin yeni kıyafetleri satın almadan önce denemeleri için deneme / değiştirme odaları vardır. Bu odalar, kullanılmasına bakılmaksızın gün boyu aydınlatılır. Bu elektrik israfına yol açar.

    Burada, sadece biri odaya girdiğinde ışığı açan devre sunulmaktadır. Bu devre aynı zamanda odanın doluluk durumunu gösterir. Diğer yerlerin yanı sıra banyolar ve umumi tuvaletler için de kullanılabilir.

    Devre ve çalışma

    Akıllı ışığın devre şeması Şekil 1’de gösterilmiştir. 5V voltaj regülatörü 7805 (IC1), AVR mikrodenetleyici (MCU) ATtiny85A (IC2), opto-kuplör PC817 (IC3), PIR sensörü, ortak katot etrafında inşa edilmiştir. iki renkli LED (BICO1), normalde açık manyetik reed anahtarı (S2), 12V tek geçişli röle (RL1), iki BC547 npn transistör (T1 ve T2) ve birkaç bileşen.

    1: Akıllı ışığın devre şeması

    IC2, giriş durumuna bağlı olarak röle ile bağlanan ışığı açan / kapatan devrenin beyni. Odada bir kişinin varlığı PIR sensörü tarafından algılanırken, kapı durumu kamış anahtarı tarafından algılanır. Sensör tarafından herhangi bir hareket algılanırsa, çıkışı artar. Aksi takdirde, çıktı düşük kalır.

    Reed anahtarı kontakları kapı açıkken açık kalır. Kapı kapalı olduğunda kontaklar kapanır. PIR sensörü, reed anahtarı ve rölenin durumları tabloda verilmiştir. Her eylem için giriş ve karşılık gelen çıkış durumları verir.

    Oda boşsa ve kapı kapalıysa, LED yeşil ışık yayar. Güç tasarrufu için röle kapanır. Birisi kapıyı açarsa, kişi odaya girene kadar LED dönüşümlü olarak kırmızı ve yeşil renkler yayar.

    Röle yaklaşık on saniye boyunca açılır ve sonra kapanır. Röle ile bağlanan ampul (Yük1) bu süre boyunca yanar. Bir kişi kapı açıldıktan sonra on saniye içinde odaya girerse, röle etkinleştirilir ve kapı kapatılana kadar LED turuncu renk yayar. Daha sonra LED, odanın dolu ve kapının kapalı olduğunu gösteren kırmızı renk yayar.

    MCU, opto-kuplör IC3 kullanılarak röle güç kaynağından izole edilir. Röle opto-kuplör aracılığıyla açılır / kapanır. Bu, MCU’yu röle için 12V beslemedeki herhangi bir bozulmadan korur. Serbest dönen diyot D1, RL1 rölesi kapatıldığında röle bobini tarafından üretilen indüklenmiş yüksek voltajı bastırır. Devredeki Load1 ana ışık, Load2 ise isteğe bağlı bekleme ışığıdır.

    Yazılım programı

    Kaynak kodu (trial_room.ino) Arduino IDE kullanılarak geliştirilmiştir. Varsayılan olarak, Arduino IDE ATtiny85A’yı desteklemez ve bu nedenle Arduino IDE’ye ATtiny kütüphanesi eklememiz gerekir.

    ATtiny desteği ekleme

    Arduino IDE’ye ATtiny desteği eklemek için aşağıdaki adımları izleyin.

    1. Dosya → Tercihler’i açın ve Ek Kartlar Yöneticisi URL’lerine https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.jsongirin .
    2. Araçlar → Pano → Pano Yöneticisi’ni açın. Listeyi aşağı kaydırın ve Davis A. Mellis tarafından ATtiny’yi bulun. Buna tıklayın ve yükleyin. Şimdi ATtiny, Boards menüsünde listelenecektir.
    3. Araçlar → Pano altında ATtiny25 / 45 / 85’i seçin. Araçlar → İşlemci altında ATtiny85’i seçin. Şimdi, Araçlar → Saat altında 8MHz (dahili) seçin.

    ISP olarak Arduino

    Arduino Uno’nun ISS programcısı olarak çalışmasını sağlamak için Arduino Uno’yu PC / dizüstü bilgisayara bağlayın ve Arduino IDE’yi açın. Anakartınız olarak Arduino / Genuino Uno’yu seçtiğinizden emin olun. Arduino ISS örnek çizimini açın ve Arduino ISS çizimini Arduino Uno’ya yükleyin. Arduino Uno artık bir ISS programcısı.

    Programlama ATtiny85A

    Varsayılan olarak, ATtiny85A 1MHz’de çalışır. 8MHz’de çalışmasını sağlamak için Araçlar → Bootloader’ı seçin. Arduino Uno kartının ISP olarak programlandığından ve ISt pinleri üzerinden ATtiny85A ile bağlandığından emin olun. Şimdi, Arduino Uno kartını kullanarak kaynak kodu (trial_room.ino) ATtiny85A’ya yükleyin.

    İnşaat ve test

    Akıllı ışığın gerçek boyutlu PCB düzeni Şekil 2’de ve bileşen düzeni Şekil 3’te gösterilmektedir. Devreyi PCB’ye monte ettikten sonra uygun bir kutuya yerleştirin.

    Şekil 2: Akıllı ışığın gerçek boyutlu PCB düzeni3: PCB için bileşen yerleşimi

    Kaynak kodunu indirmek için:  buraya tıklayın

    Kapıya küçük bir mıknatıs çubuğu veya disk sabitlenir ve kapı çerçevesine kamış anahtar S2 sabitlenir. Manyetik anahtarı iki kablo kullanarak PCB’ye bağlayın. Manyetik anahtar ve mıknatıs birbirine bakmalıdır, böylece kapı kapalı olduğunda S2 mıknatıs tarafından etkinleştirilir.

    Load1, akıllı ışık için kullanılan ampul iken Load2, yedek ampuldür. Bekleme durumunda düşük güçlü ampulün S3 açılana ve röleye enerji verilmeden sürekli yanmasını sağlayabilirsiniz. (RL1 üzerindeki röle, Load1’in açık olduğu anlamına gelir.)

    unknown akilli_isik_pir_sensor.pdf

  • ESP8266 ESP-12E modülü ve Thonny IDE’yi kullanma Nasıldır

    Proje adı: ESP8266 ESP-12E modülü ve Thonny IDE’yi kullanma Nasıldır
    Etiketler: ESP8266 ESP-12E modülü, ESP, ESP8266, WI FI modülü, ESP-12E, LoLin NODEMCU V3, NODEMCU, mikropython, Thonny IDE
    Ekler: yok
    Bu projede, bu parçalar gerekli ( Değerli ziyaretçiler Sen parçaların linklere proje satın tıklayarak desteklemek ve onları satın ya da diri bu web sitesini tutmamıza bağış yapabilirsiniz teşekkür ederiz.. ):
    1. ESP8266 mikro USB kablosu ile ESP-12E modülü 1 adet

    2. Thonny IDE (buradan indirebilir ve hakkında daha fazla bilgi edinebilirsiniz )
    Genel
    Thonny IDE’nin ESP8266 ESP-12E modülüyle nasıl kurulacağını ve kullanılacağını öğreneceğiz.
    Thonny IDE’yi Anlama
    Thonny yeni başlayanlar için Python IDE’dir. ESP32 ve ESP8266 kartlarınızı MicroPython ile programlamanızı sağlar ve Windows, Mac OS X ve Linux ile uyumludur. Raspberry Pi için Raspbian OS ile varsayılan olarak yüklü olarak gelir. Ayrıca, kurulumu kolaydır, bu nedenle kurulum işleminde sorun yaşamamanız gerekir.
    Özellikleri:
    • Başlamak kolay. Thonny yerleşik Python 3.7 ile birlikte gelir, bu yüzden sadece bir basit yükleyici gereklidir ve programlamayı öğrenmeye hazırsınız. (Gerekirse ayrı bir Python yüklemesi de kullanabilirsiniz.) İlk kullanıcı arabirimi, yeni başlayanların dikkatini dağıtabilecek tüm özelliklerden arındırılmıştır.
    • Sorunsuz değişkenler. Merhaba dünyalarla işiniz bittiğinde, Görünüm -> Değişkenler’i seçin ve programlarınızın ve kabuk komutlarınızın Python değişkenlerini nasıl etkilediğini görün.
    • Basit hata ayıklayıcı. Sadece F5 yerine Ctrl + F5 tuşlarına basın ve programlarınızı adım adım çalıştırabilirsiniz, kesme noktası gerekmez. Büyük bir adım için F6’ya ve küçük bir adım için F7’ye basın. Adımlar sadece kod satırlarını değil program yapısını takip eder.
    • İfade değerlendirmesinde adım adım. Küçük adımlar kullanırsanız, Python’un ifadelerinizi nasıl değerlendirdiğini bile görebilirsiniz. Bu açık mavi kutuyu Python’un alt ifadeleri parça parça değerleriyle değiştirdiği bir kağıt parçası olarak düşünebilirsiniz.
    • İşlev çağrılarının sadık temsili. Bir işlev çağrısına geçilmesi, ayrı yerel değişkenler tablosu ve kod işaretçisiyle yeni bir pencere açar. İşlev çağrılarının nasıl çalıştığını iyi anlamak, özyinelemeyi anlamak için özellikle önemlidir.
    • Sözdizimi hatalarını vurgular. Kapatılmamış alıntılar ve parantezler en yeni başlayanların sözdizimi hatalarıdır. Thonny’nin editörü bunları fark etmeyi kolaylaştırır.
    • Kapsamları açıklar. Değişken oluşumlarını vurgulamak size aynı adın her zaman aynı değişken anlamına gelmediğini ve yazım hatalarının tespit edilmesine yardımcı olduğunu hatırlatır. Yerel değişkenler görsel olarak küresellerden ayrılır.
    • Referansları açıklama modu. Değişkenler başlangıçta basitleştirilmiş modele (ad -> değer) göre sunulur, ancak daha gerçekçi bir modele (ad -> adres / kimlik -> değer) geçebilirsiniz.
    • Kod tamamlama. Öğrenciler, kod tamamlama yardımı ile API’leri keşfedebilirler.
    • Başlangıç dostu sistem kabuğu. Ek paketler yüklemek veya komut satırında Python’u kullanmayı öğrenmek için Araçlar -> Sistem kabuğunu aç’ı seçin. PATH ve diğer Python tercümanlarıyla olan çatışmalar Thonny tarafından halledilir.
    • Basit ve temiz pip GUI. 3. taraf paketlerin daha da kolay kurulumu için Araçlar -> Paketleri yönet’i seçin.
    Anlamak ESP8266 ESP-12E WI FI modülü (LoLin NODEMCU V3)
    Bununla ilgili daha fazla bilgiyi buradan edinebilirsiniz .
    Sinyaller ve eş ait nnections ESP8266 ESP-12E WI FI modülü (LoLin NODEMCU V3)

    TX – iletim pimi. GPIO pimi
    RX – alma pimi. GPIO pimi
    3V3 ( veya 3V veya 3.3V ) – güç kaynağı pimi (3-3.6V).
    GND (veya G) – topraklama pimi.
    RST – pimi sıfırlayın. Normal çalışma için yüksekte (3,3V) tutun. Çipi sıfırlamak için 0V’ye takın.
    TR – Çip etkinleştirme. Normal çalışma için yüksekte (3,3V) tutun.
    Vin – Harici güç kaynağı 5VDC.
    D0-D8 – GPIO (Genel Amaçlı Giriş Çıkışı) pinleri
    D5-D8 – SPI arayüzü
    D1-D2 – I²C / TWI Arayüzü
    SC (veya CMD ) – (Chip Select) – master’ın belirli cihazları etkinleştirmek ve devre dışı bırakmak için kullanabileceği pin. GPIO pimi
    SO (veya SDO ) – Master In Slave Out (MISO) – SPI iletişimi. Master’a veri göndermek için Slave hattı. GPIO pimi
    SK (veya CLK ) – SCK (Seri Saat) – SPI iletişimi. Master tarafından üretilen veri iletimini senkronize eden saat darbeleri. GPIO pimi
    S1 (veya SD1 ) – Ana Çıkış / Slave Girişi (MOSI). SPI iletişimi. Çevre birimlere veri göndermek için Ana hat. GPIO pimi
    S2 (veya SD2 ) – GPIO pin
    S3 (veya SD3 ) – GPIO pin
    VU (veya VUSB ) – harici güç 5VDC.
    A0 – ADC çıkışı.
    RSV – ayrılmış
    Adım Adım talimat
    Bilgisayarımızda Windows 7 64 bit işletim sistemi sürümünü kullanıyoruz.
    1. Hazırlıklar
    1. UPyCraft IDE’yi PC’nize yükleyin ;
    2. ESP8266 ESP-12E modülünü PC’nize takın ve sürücülerin yüklenmesini bekleyin (veya gerekli olabilecek herhangi bir şeyi manuel olarak kurun).
    3. ESP8266 ESP-12E modülü – MicroPython ürün yazılımı yükleniyor .
    2. Thonny IDE’nin kurulması.
    1. Git thonny.org web sitesi ile OS için uygun kurulum için dosyayı indirmek. Windows işletim sistemimiz var, bu nedenle Windows için thonny-3.1.2.exe dosyasını indirdik .
    2.
    3. Dosyayı açmak için thonny-3.1.2.exe dosyasına çift tıklayın . Tıklayın Çalıştır butonuna.
    4.
    5. Tıklayın Sonraki düğmesi.
    6.
    7. Sözleşmeyi kabul ediyorum’u seçin ve İleri düğmesine tıklayın.
    8.
    9. Tıklayın Sonraki düğmesi.
    10.
    11. Tıklayın Sonraki düğmesi.
    12.
    13. Tıklayın Yükle düğmesini.
    14.
    15. Kurulum işlemi başlayacaktır.
    16.
    17. Tıklayın Finish butonuna.
    18.
    19. Yüklemeyi tamamladıktan sonra Thonny IDE’yi açın.
    20.
    3. Kurulumu test etme
    1. ESP8266 ESP-12E modülünüzde MicroPython ürün yazılımı olmalıdır.
    2. ESP8266 ESP-12E modülünü PC’nize takın ve sürücülerin yüklenmesini bekleyin (veya gerekli olabilecek herhangi bir şeyi manuel olarak kurun).
    3. Git Araçlar -> Seçenekler seçeneğini Tercüman sekmesini.
    4.
    5.
    6. Genel bir cihazda MicroPython’u seçin .
    7. Cihazınızın seri bağlantı noktasını seçin. Ayrıca , yalnızca bir kerede bilgisayarınıza bağlı bir kartınız varsa, Otomatik olarak algılamaya çalış seçeneğini de belirleyebilirsiniz. Aksi takdirde, kullandığınız anakart için özel bağlantı noktasını seçin.
    8.
    9. Tıklayın Tamam düğmesini.
    10. Thonny IDE artık panonuza bağlı olmalı ve Shell’de istemi görmelisiniz.
    11.
    12. Kabuk’a help () komutunu yazın ve yanıt verip vermediğine bakın.
    13.
    14. Eğer cevap aldıysanız, o zaman her şey iyi çalışıyor. Şimdi test etmek için birkaç komut daha gönderebilirsiniz.
    15. ESP8266 ESP-12E modülü yerleşik LED’ini yakmak için aşağıdaki komutları gönderin: makineden içe aktarma Pini
    16. Pin (2, Pin.OUT). Değer (0)
    17.
    18. Yerleşik LED’i kapatmak için şu komutu gönderin: Pin (2, Pin.OUT). Değer (1)
    19. Tebrikler. Yaptın.
    4. Thonny IDE’yi kullanma
    1. Thonny IDE’yi açtığınızda iki bölüm görebilirsiniz: Editör ve Terminal / Kabuk . Editör Kodunuzu ve düzenle sizin .py dosyaları yazma nerede bölümdür. Birden fazla dosya açabilirsiniz ve Editör her dosya için yeni bir sekme açar. In Terminali / Shell bölümünde yeni dosya yüklemek için gerek kalmadan ESP8266 ESP-12E modülü tarafından derhal yürütülecek komutları yazabilirsiniz. Terminal ayrıca bir yürütme programının durumu hakkında bilgi sağlar, yükleme ile ilgili hataları, sözdizimi hatalarını gösterir, iletileri yazdırır, vb.

    2. Thonny IDE’nizi diğer yararlı sekmeleri gösterecek şekilde özelleştirebilirsiniz. Görünüm’e gidin ve daha fazla bilgi sağlayan birkaç sekme seçebilirsiniz.
    3.
    4. Bir komut dosyası yapalım ve çalıştıralım. ESP8266 ESP-12E modülünüzdeki yerleşik LED’i yanıp sönecektir.
    5. Thonny IDE’yi ilk kez açtığınızda, Editör bölümünde adsız bir dosya gösterilir. Bu dosyayı main.py olarak kaydedin – kaydet simgesine tıklayın ve main.py dosyasına adını verin . Şimdi main.py sekmesine sahip olacaksınız .
    6.
    7. Main.py dosyasına aşağıdaki kodu yazın.
    8.
    9. Kaydet – kaydet simgesine tıklayın .
    10. Git Cihaz ve seçmek yükle ana komut dosyası olarak geçerli komut .
    11.
    12. Terminal / Shell bölümünde aşağıdakileri göstermelidir. Kodu ana komut dosyası olarak yüklemek, bilgisayarınıza farklı bir adla kaydetmiş olsanız bile , geçerli dosyayı main.py adıyla ESP8266 ESP-12E modülüne kaydeder. Aynı şey boot.py dosyası için de geçerlidir .
    13.
    14. Komut dosyasını yükledikten sonra ESP8266 ESP-12E modülünüzdeki yerleşik RST (RESET) düğmesine basın. ESP8266 ESP-12e modülü yeniden başlatıldığında, önce çalıştırdığında boot.py sonradan dosya ve main.py .
    15. ESP8266 ESP-12E modülü yerleşik LED’i yanıp sönüyor olmalıdır. Tebrikler.
    16. ESP8266 ESP-12E modülüne kaydedilen tüm dosyaları listelemek için Terminal / Shell’e komutu yazın: % lsdevice
    17.
    18. Dosya içeriğini görmek istiyorsanız, % cat / ve ardından dosya yolunu kullanın, örneğin: % cat /main.py
    19.
    20. Eğer görmek istiyorsan boot.py ve main.py , komut gidin Cihaz , seçmek göster aygıtın ana senaryoyu ya Göster cihazın önyükleme komut .
    21.
    22. Dosyayı özel bir ada sahip komut dosyasıyla yüklemek istiyorsanız. , Dosya olun buna kaydet (biz vardı örneğin best.py ), gidin Cihaz basıp şimdiki adıyla yükle akım komut dosyası .
    23.
    24. Dosya, best.py adıyla ESP8266 ESP-12E modülüne kaydedilir .
    25.
    26. ESP8266 ESP-12E modülünüzdeki tüm dosyaları tamamen kaldırmak / silmek istiyorsanız, MicroPython ürün yazılımı ile yeniden flaşlamanız gerekir. Kodu kaldırmak / silmek için ESP8266 ESP-12E modülüne boş bir komut dosyası da yükleyebilirsiniz.
    Sorun giderme
    Normalde ESP8266 ESP-12E modülünüzü yerleşik RST düğmesiyle yeniden başlatmak , sorununuzu giderir veya Thonny IDE Durdur / Yeniden Başlat arka uç düğmesine basar ve istediğiniz eylemi tekrarlar.
    İşinize yaramazsa aşağıdaki çözümleri kontrol edin:
    1. Bir hata alıyorsanız : = RESTART = COM4’e bağlanılamıyor Hata: ‘COM4’ bağlantı noktası açılamadı: FileNotFoundError (2, ‘Sistem belirtilen dosyayı bulamıyor.’, Yok, 2) Yapılandırmayı kontrol edin, Çalıştır’ı seçin. -> Durdur / Yeniden Başlat veya tekrar denemek için Ctrl + F2 tuşlarına basın. (Bazı durumlarda tekrar denemeden önce beklemek yardımcı olur.) Veya = RESTART = REPL’e bağlanılamadı. Cihazınızın uygun bellenime sahip olduğundan ve önyükleyici modunda olmadığından emin olun! Bağlantı kesiliyor o r = RESTART = Cihazla bağlantı kesildi (EOF ) . ESP8266 ESP-12E modülünüzü ayırın ve bağlayın. Ardından, Araçlar -> Seçenekler … -> Tercüman -> Bağlantı Noktası öğelerinde doğru seri bağlantı noktasını seçtiğinizden emin olun . Durdur / Yeniden başlat arka ucuna tıklayınSeri iletişim kurmak için düğmesine basın. Artık yeni bir komut dosyası yükleyebilmeniz veya yeni kodu yeniden çalıştırabilmeniz gerekir. Bu hatalar, seri bağlantı noktanızın başka bir programda (seri terminal veya Arduino IDE gibi) kullanıldığı anlamına da gelebilir. ESP8266 ESP-12E modülünüzle seri iletişim kuruyor olabilecek tüm programları kapattığınızı bir kez daha kontrol edin. ESP8266 ESP-12E modülünüzü çıkarıp tekrar takın. Thonny IDE’yi yeniden başlatın.
    2. Thonny IDE yanıt vermezse veya bir İç Hata penceresi verirse . Bu olduğunda, pencereyi kapatın, çalışmaya devam edecektir. Kilitlenmeye devam ederse, Thonny IDE yazılımını yeniden başlatın.
    3. Arka uç Durdur / Yeniden Başlat düğmesine tıkladığınızda Thonny IDE kilitleniyor . Eğer tıkladığınızda Durdur / Yeniden arka uç düğmesinin birkaç saniye beklemek gerekiyor. ESP8266 ESP-12E modülünün yeniden başlatılması ve Thonny IDE ile seri iletişim kurulması için zamana ihtiyacı vardır. Bu düğmeyi birden çok kez tıklatırsanız veya bu düğmeyi çok hızlı bir şekilde tıklatırsanız, ESP8266 ESP-12E modülünün düzgün bir şekilde yeniden başlaması için yeterli zamanınız olmayacaktır ve büyük olasılıkla Thonny IDE’nin çökmesi muhtemeldir.
    4. ESP8266 ESP-12E modülünüzü yeniden başlatma, yeni bir komut dosyası çalıştırma veya seri bağlantı noktasını açma sorunu – Tarayıcı dedektörü tetiklendi veya ESP8266 ESP-12E modülü ESP önyükleme bilgilerini yeniden başlatıp yazdırmaya devam ederse. Tarayıcı dedektörü tetiklendihata mesajı veya sürekli yeniden başlatma, bir tür donanım sorunu olduğu anlamına gelir. Genellikle aşağıdaki sorunlardan biriyle ilgilidir: düşük kaliteli USB kablosu; USB kablosu çok uzun; bazı kusurlu tahta (kötü lehim bağlantıları); kötü bilgisayar USB bağlantı noktası; veya bilgisayarın USB bağlantı noktası tarafından yeterli güç sağlanmıyor. Farklı daha kısa bir USB veri kablosu deneyin, farklı bir bilgisayar USB bağlantı noktası deneyin veya harici güç kaynağı olan bir USB hub kullanın. Sürekli sorunlarınız veya hata mesajlarınız devam ederse, ESP8266 ESP-12E modülünüzü MicroPython ürün yazılımının en son sürümüyle tekrar yanıp sönmenizi öneririz.
    5. Thonny IDE’deki ESP8266 ESP-12E modülü ile seri iletişim kurmaya çalıştığınızda, ancak bağlanamıyor. Tahtanızda bir komut dosyası çalıştırırken, bazen o komut dosyasını çalıştırmak ve görevleri gerçekleştirmekle meşgul olur. Bu nedenle, seri iletişimi kurmak için mevcut yakalamak için arka uç Durdur / Yeniden Başlat düğmesine tıklayarak bağlantıyı başlatmayı denemeniz veya ESP8266 ESP-12E modülünü yeniden başlatmanız gerekir. Lütfen arka ucu Durdur / Yeniden Başlat’ı tıklamayındüğmesine çok hızlı bir şekilde basın. Bu düğmeye bastıktan sonra, sabırlı olmanız ve komutun çalışması için birkaç saniye beklemeniz gerekir. Wi-Fi, derin uyku kullanan bir komut dosyası çalıştırıyorsanız veya birden fazla görev yapıyorsa, iletişim kurmak için 3 veya 4 kez denemenizi öneririz. Eğer yapamıyorsanız ESP8266 ESP-12E modülünü MicroPython ürün yazılımı ile tekrar flaş yapmanızı öneririz.
    6. Hata ayıklama araçları gri renktedir. Thonny IDE hata ayıklama araçları MicroPython için mevcut değildir. Hata ayıklama araçları yalnızca Python Tercüman için kullanılabilir, bu nedenle grileştirilmesi beklenen davranıştır.
    özet
    Thonny IDE’nin ESP8266 ESP-12E modülüyle nasıl kurulacağını ve kullanılacağını öğrendik.
    Kütüphaneler

    unknown arduino_esp8266.pdf————–indir

    • Yok
    Senaryo
    • Yok

  • DS1307 RTC , SD veya mikro SD kart , DHT 11 21 22 Kullanımı

    Proje adı: DS1307 RTC modülü, SD veya mikro SD kart modülü, DHT 11 21 22 modülü

    unknown DHT.pdf    indirrr

    Etiketler: Arduino Uno, DS1307 RTC Modülü, AT24C32 Gerçek Zaman Saati, RTC, DS1307 Gerçek Zaman Saati (RTC) modülü, I2C , DHT 11 21 22 modülü, sıcaklık, nem, sıcaklık ve nem sensörü, SD veya mikro SD kart modülü

    Ekler: eskiz1 , kütüphane3 , kütüphane4 , kütüphane5

    Bu projede, bu parçalar gerekli ( Değerli ziyaretçiler Sen parçaların linklere proje satın tıklayarak desteklemek ve onları satın ya da diri bu web sitesini tutmamıza bağış yapabilirsiniz teşekkür ederiz.. ):

    1. Arduino Uno R3 (Arduino’nun diğer sürümünü de kullanabilirsiniz)

    2. DS1307 Gerçek Zamanlı Saat (RTC) modülü 1 adet

    3.Arduino IDE (siz indirebilirsiniz burada )

    4. Bağlantı kabloları MM, FM

    5. Lityum İyon pil LIR2032 3.6 VDC veya CR12203VDC veya CR2032 3VDC (pil tutucu ve modüle bağlıdır) 1 adet

    6. DHT11 21 22 Nem ve sıcaklık modülü 1 adet

    7. Direnç 1 adet (10 KOhm)

    8. SD kart veya Mikro SD kart modülü 1 adet

    veya

    9. SD kart adaptörü ile Micro SD kart 1 adet

    Genel

    DS1307 Gerçek Zamanlı Saat (RTC) modülünü, SD veya mikro SD kart modülünü ve DHT 11/21/22 modülünü Arduino kartına nasıl bağlayacağımızı ve kullanacağımızı öğreneceğiz.

    DHT11’i sıcaklık ve nemi ölçmek için kullanacağız; tarih ve saati almak için gerçek zaman saati (RTC) modülü; SD karttaki verileri kaydetmek için SD kart modülünü kullanın.

    SD kart modülünü anlama

    Bununla ilgili daha fazla bilgiyi buradan edinebilirsiniz .

    DHT modülünü anlama

    Burada onlar hakkında daha fazla bilgi edinebilirsiniz .

    DS1307 Gerçek Zamanlı Saat (RTC) modülünü anlama

    Burada onlar hakkında daha fazla bilgi edinebilirsiniz.

    DHT modülünün sinyalleri ve bağlantıları

    Karşılaşabileceğiniz DHT11’in iki farklı sürümü vardır. Bir tipte dört pim, diğer tipte üç pim vardır ve küçük bir PCB’ye monte edilir. PCB monteli versiyon güzel çünkü sinyal hattı için yüzeye monte 10K Ohm çekme direnci içerir. Her iki sürüm için de pin çıkışları:

    SD kart modülünün sinyalleri ve bağlantıları

    Not: Kullandığınız modüle bağlı olarak, pimler farklı bir sırada olabilir.

    VCC (5V) – 5V pin Arduino Uno’ya bağlayın. Sadece VCC pin ve hiçbir 3V3 pin VCC’yi Arduino Board’un 3.3V pinine bağlayın

    3V3 (veya 3.3V) – 3.3V pin Arduino Uno’ya bağlayın

    CS (veya SS veya D3) (Chip Select veya Slave Select) – master’ın belirli cihazları etkinleştirmek ve devre dışı bırakmak için kullanabileceği her cihazdaki pin

    MOSI (veya DI veya SI veya CMD) (Master Out Slave In) – Çevre birimlere veri göndermek için Master hattı

    CLK (veya SCK) (Seri Saat) – Master tarafından üretilen veri iletimini senkronize eden saat darbeleri

    MISO (veya DO veya SO) (Master In Slave Out) – Master’a veri göndermek için Slave hattı

    GND (veya G) – öğütülmüş

    CD – Bu, Kart Algılama pinidir. Bir kart takıldığında toprağa kısalır. Bir çekme direnci (10K ya da öylesine) bağlamalı ve bir kartın ne zaman takıldığını tespit etmek istiyorsanız bunu başka bir pime bağlamalısınız.

    DS1307 Gerçek Zamanlı Saat (RTC) modülünün sinyalleri ve bağlantıları

    GND – topraklama pimi.

    VCC – 5V veya 3.3V güç kaynağı pimi.

    SDA – I2C arayüz veri pimi.

    SCL – I2C arayüzü saat pimi.

    kablolama

    SD veya mikro SD kart modülü SPI iletişimini kullanır. Farklı Arduino kartlarında farklı SPI pinleri bulunur. Başka bir Arduino kartı kullanıyorsanız, Arduino SPI belgelerine bakın .

    DS1307 Gerçek Zamanlı Saat (RTC) modülü I2C iletişimini kullanır. Bu, Arduino ile sadece 2 pin kullanarak iletişim kurduğu anlamına gelir. Arduino Uno – Seri Veri Hattı (SDA) (Arduino Uno SDA veya Analog pim A4) ve Seri Saat Hattı (SCL) (Arduino Uno SCL veya Analog pim A5) için.

    Uno yerine başka Arduino kartı kullanıyorsanız, SCL ve SDA pinlerinin neler olduğunu kontrol edin.

    Nano: SDA (A4); SCL (A5)
    MEGA: SDA (20); SCL (21)
    Leonardo: SDA (20); SCL (21)
    Aşağıdaki resimde Arduino Uno ile gerekli bağlantılar gösterilmektedir.

    Adım Adım talimat

    Çoğu SD kart kutudan çıkar çıkmaz çalışır, ancak bir bilgisayarda veya kamerada kullanılmış bir kartınız olabilir ve SD kitaplığı tarafından okunamaz. Kartın biçimlendirilmesi, Arduino’nun okuyabileceği ve yazabileceği bir dosya sistemi oluşturur. SD kartların ömrünü kısalttığı için sık sık biçimlendirmek istenmez. Kartınızı biçimlendirmek için bir SD okuyucu ve bilgisayara ihtiyacınız olacaktır. Kütüphane FAT16 ve FAT32 dosya sistemlerini destekler, ancak mümkünse FAT16 kullanın. Ek bilgilere buradan bakın .
    SD kartı FAT16 veya FAT32 olarak biçimlendirin . SD kartı bilgisayarınıza takın. Bilgisayarım’a gidin ve SD karta sağ tıklayın. Biçim Seç …
    Yeni bir pencere açılır. FAT32’yi seçin , biçimlendirme işlemini başlatmak için Başlat’a basın ve ekrandaki talimatları izleyin.
    Biçimlendirilmiş SD kartı SD kart modülüne takın.

    S