User Tools

Site Tools


ultimatestarterkit

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
ultimatestarterkit [2019/04/26 08:50]
tamas [21. Projekt, LM35 Hőmérséklet érzékelő]
ultimatestarterkit [2019/05/02 10:58] (current)
tamas [30. Projekt, Talaj nedvesség érzékelő]
Line 2251: Line 2251:
 A képre kattintva nagyobb méretben is megtekinthető. A képre kattintva nagyobb méretben is megtekinthető.
  
-{{ :​rpistarterkit:​p22_01.png |}}+{{ :​rpistarterkit:​p21_01.png |}}
  
 **Programozás** **Programozás**
Line 2261: Line 2261:
    * **sudo nano homero.c**    * **sudo nano homero.c**
  
-{{ :​rpistarterkit:​p22_02.png |}}+{{ :​rpistarterkit:​p21_02.png |}}
  
 Ezután írjuk bele a következő kódot. Ezután írjuk bele a következő kódot.
Line 2298: Line 2298:
 </​html>​ </​html>​
  
-{{ :​rpistarterkit:​p22_03.png |}}+{{ :​rpistarterkit:​p21_03.png |}}
  
 Mentsük el, majd tegyük futtathatóvá a fájlt a GCC paranccsal. Mentsük el, majd tegyük futtathatóvá a fájlt a GCC paranccsal.
Line 2304: Line 2304:
    * **sudo gcc homero.c -o homero -lwiringPi**    * **sudo gcc homero.c -o homero -lwiringPi**
  
-{{ :​rpistarterkit:​p22_04.png |}}+{{ :​rpistarterkit:​p21_04.png |}}
  
 Végül futtassuk a programot, ha mindent jól kötöttünk,​ akkor a képernyőn megjelenik a mért hőmérséklet. Végül futtassuk a programot, ha mindent jól kötöttünk,​ akkor a képernyőn megjelenik a mért hőmérséklet.
Line 2310: Line 2310:
    * **sudo ./homero**    * **sudo ./homero**
  
-{{ :​rpistarterkit:​p22_05.png |}}+{{ :​rpistarterkit:​p21_05.png |}}
  
 ---- ----
  
 =====22. Projekt, PCF8591 Potméter===== =====22. Projekt, PCF8591 Potméter=====
 +
 +**Bevezetés**
 +
 +A Raspberry Pi alapvetően nem rendelkezik AD / DA (A : Analóg, D : Digitális) átalakító funkcióval,​ ezért ha analóg jelet akarunk érzékelni csatlakoztatni kell hozzá a Keyestudio RPI GPIO-PCF8591 kártyát. Ezután be kell kapcsolni az I2C interfészt,​ hogy tudjuk használni az analóg csatlakozót.
 +
 +**Eszközszükséglet**
 +
 +   * 1 db Potenciométer
 +   * Keyestudio RPI GPIO-PCF8591 kártya
 +
 +**Eszközök csatlakoztatása**
 +
 +A képre kattintva nagyobb méretben is megtekinthető.
 +
 +{{ :​rpistarterkit:​p22_01.png |}}
 +
 +**Programozás**
 +
 +Először kapcsoljuk be az I2C modult, ha még nem lenne bekapcsolva. Ennek részletes leírását a 20-as projektben találja.
 +
 +Ha bekapcsoltuk,​ akkor hozzunk létre egy új fájlt **potmeter.c** néven.
 +
 +  * **sudo nano potmeter.c**
 +
 +{{ :​rpistarterkit:​p22_02.png |}}
 +
 +Írjuk a fájlba a következő kódot.
 +
 +<​html>​
 +<pre>
 +
 +#include &​lt;​wiringPi.h&​gt;​
 +#include &​lt;​pcf8591.h&​gt;​
 +#include &​lt;​stdio.h&​gt;​
 +
 +#define Address 0x48         //​pcf8591 Address
 +#define BASE 64
 +#define A0 BASE+0 ​          //​input address of A0
 +#define A1 BASE+1 ​          //​input address of A1
 +#define A2 BASE+2 ​          //​input address of A2
 +#define A3 BASE+3 ​          //​input address of A3
 +int main(void)
 +{
 +    unsigned char value;
 + wiringPiSetup();​
 + pcf8591Setup(BASE,​Address); ​       //configure pcf8591
 +
 + while(1)
 + {
 +               ​value=analogRead(A0); ​    // read the value of A0 port         
 +               ​printf("​A0:​%d\n",​value); ​ // print the value of A0 on the terminal
 +               ​delay(100);​
 + }
 +}
 +
 +</​pre>​
 +</​html>​
 +
 +{{ :​rpistarterkit:​p22_03.png |}}
 +
 +Mentsük el, majd tegyük futtathatóvá a Raspberry számára a GCC paranccsal.
 +
 +  * **sudo gcc potmeter.c -o potmeter -lwiringPi**
 +
 +{{ :​rpistarterkit:​p22_04.png |}}
 +
 +Végül futtassuk a programot, ha jól csináltuk a potmétert tekergetve különböző értékeket kapunk majd.
 +
 +  * **sudo ./​potmeter**
 +
 +{{ :​rpistarterkit:​p22_05.png |}}
  
 ---- ----
  
 =====23. Projekt, PIR Mozgásérzékelő szenzor===== =====23. Projekt, PIR Mozgásérzékelő szenzor=====
 +
 +**Bevezetés**
 +
 +Ebben a projektben egy PIR mozgásérzékelőt fogunk használni, annak érdekében,​ hogy megállapítsuk van-e valaki a helységben vagy sem. Ha mozgást észlel kiírja "​Somebody is in this area!" ha nemNo one!".
 +
 +**Eszközszükséglet**
 +
 +   * 1 db PIR mozgásérzékelő
 +   * 1 db Piros LED
 +   * 1 db Ellenállás
 +   * Keyestudio RPI GPIO-PCF8591 kártya
 +
 +**Eszközök csatlakoztatása**
 +
 +A képre kattintva megtekinthető nagyobb méretben is.
 +
 +{{ :​rpistarterkit:​p23_01.png |}}
 +
 +**Programozás**
 +
 +Először hozzunk létre egy új fájlt **mozgaserzekelo.c** néven.
 +
 +   * **sudo nano mozgaserzekelo.c**
 +
 +{{ :​rpistarterkit:​p23_02.png |}}
 +
 +Ebbe a fájlba írjuk bele a következő kódot.
 +
 +<​html>​
 +<pre>
 +
 +#include &​lt;​wiringPi.h&​gt;​
 +#include &​lt;​stdio.h&​gt;​
 +
 +int main()
 +{
 +  wiringPiSetup();​
 +  char val;
 +  {
 +    pinMode(1,​INPUT);​
 +    pinMode(2,​OUTPUT);​
 +  }
 +  ​
 +  while(1)
 +  { 
 +   ​val=digitalRead(1);​
 +   ​if(val==1)
 +  {
 +   ​printf("​Somebody is in this area!\n"​);​
 +   ​digitalWrite(2,​HIGH);​
 +   ​delay(100);​
 +  }
 +
 +   else
 +  {
 +   ​printf("​No one!\n"​);​
 +   ​digitalWrite(2,​LOW);​
 +   ​delay(100);​
 +  }
 +  }
 +}
 +
 +</​pre>​
 +</​html>​
 +
 +{{ :​rpistarterkit:​p23_03.png |}}
 +
 +Mentsük el, majd tegyük futtathatóvá a GCC paranccsal.
 +
 +   * **sudo gcc mozgaserzekelo.c -o mozgaserzekelo -lwiringPi**
 +
 +{{ :​rpistarterkit:​p23_04.png |}}
 +
 +Végül futtassuk a fájlt, a megszokott módon.
 +
 +   * **sudo ./​mozgaserzekelo**
 +
 +{{ :​rpistarterkit:​p23_05.png |}}
 +
  
 ---- ----
  
 =====24. Projekt, MQ-2 Analóg Gáz érzékelő===== =====24. Projekt, MQ-2 Analóg Gáz érzékelő=====
 +
 +**Bevezetés**
 +
 +Ebben a projektben egy analóg ház szenzort fogunk tesztelni. Megmérjük,​ hogy tartalmaz-e nagy mennyiségben a levegő, propán, hidrogén, vagy egyéb gázokat.
 +
 +**Eszközszükséglet**
 +
 +   * 1 db Analóg gáz érzékelő
 +   * Keyestudio RPI GPIO-PCF8591 kártya
 +
 +**Eszközök csatlakoztatása**
 +
 +A képre kattintva nagyobb méretben is megtekinthető.
 +
 +{{ :​rpistarterkit:​p24_01.png |}}
 +
 +**Programozás**
 +
 +Először is be kell kapcsolni az I2C modult, amennyiben még nincs bekapcsolva,​ vagy nem tudja hogyan kellene, menjen vissza a 20. Projekthez és ott megtalálja a bekapcsoláshoz szükséges lépéseket.
 +
 +Bekapcsolás után hozzunk létre egy új fájlt **gazerzekelo.c** néven.
 +
 +   * **sudo nano gazerzekelo.c**
 +
 +{{ :​rpistarterkit:​p24_02.png |}}
 +
 +Ezután írjuk bele a következő kódot.
 +
 +<​html>​
 +<pre>
 +
 +#include &​lt;​wiringPi.h&​gt;​
 +#include &​lt;​pcf8591.h&​gt;​
 +#include &​lt;​stdio.h&​gt;​
 +
 +#define Address 0x48
 +#define BASE 64
 +#define A0 BASE+0
 +#define A1 BASE+1
 +#define A2 BASE+2
 +#define A3 BASE+3
 +
 +int main(void)
 +{
 +      unsigned char value;
 + wiringPiSetup();​
 +      pinMode(1,​OUTPUT);​
 + pcf8591Setup(BASE,​Address);​
 +        ​
 + while(1)
 + {
 +        value=analogRead(A0); ​             ​
 +        printf("​A0:​%d\n",​value);​
 +        delay(100);
 + }
 +     }
 +
 +
 +</​pre>​
 +</​html>​
 +
 +{{ :​rpistarterkit:​p24_03.png |}}
 +
 +Mentsük el, majd tegyük futtathatóvá a fájlt a Raspberry számára a GCC paranccsal.
 +
 +   * **sudo gcc gazerzekelo.c -o gazerzekelo -lwiringPi**
 +
 +{{ :​rpistarterkit:​p24_04.png |}}
 +
 +Végül futtassuk a fájlt és nézzük meg a végeredményt.
 +
 +   * **sudo ./​gazerzekelo**
 +
 +{{ :​rpistarterkit:​p24_05.png |}}
 +
  
 ---- ----
  
 =====25. Projekt, ADXL345 Gyorsulás mérő ===== =====25. Projekt, ADXL345 Gyorsulás mérő =====
 +
 +**Bevezetés**
 +
 +Ebben a projektben, egy három tengelyes gyorsulás mérőt csatlakoztatunk a Raspberryhez,​ amivel képesek vagyunk mérni a legkisebb elmozdulást is.
 +
 +**Eszközszükséglet**
 +
 +  * 1 db ADXL345 gyorsulás mérő
 +  * Keyestudio RPI GPIO-PCF8591 kártya
 +
 +**Eszközök csatlakoztatása**
 +
 +A képre kattintva megtekinthető nagyobb méretben is.
 +
 +{{ :​rpistarterkit:​p25_01.png |}}
 +
 +**Programozás**
 +
 +Először is be kell kapcsolnunk az I2C modult, amennyiben még nincs bekapcsolva,​ vagy nem tudja hogyan kell, menjen vissza a 20. Projekthez ahol részletesen elmagyarázzuk,​ hogy is kell csinálni.
 +
 +Ezután hozzunk létre egy új fájlt **gyorsulas.c** néven.
 +
 +  * **sudo nano gyorsulas.c**
 +
 +{{ :​rpistarterkit:​p25_02.png |}}
 +
 +Ezután írjuk a következő kódot a fájlba.
 +
 +<​html>​
 +<pre>
 +#include &​lt;​wiringPiI2C.h&​gt;​
 +#include &​lt;​stdio.h&​gt;​
 +#include &​lt;​stdlib.h&​gt;​
 +#include &​lt;​errno.h&​gt;​
 +
 +#​define ​ DevAddr ​ 0x53  //device address
 +
 +struct acc_dat{
 + int x;
 + int y;
 + int z;
 +};
 +
 +void adxl345_init(int fd)
 +{
 + wiringPiI2CWriteReg8(fd,​ 0x31, 0x0b);
 + wiringPiI2CWriteReg8(fd,​ 0x2d, 0x08);
 +//​ wiringPiI2CWriteReg8(fd,​ 0x2e, 0x00);
 + wiringPiI2CWriteReg8(fd,​ 0x1e, 0x00);
 + wiringPiI2CWriteReg8(fd,​ 0x1f, 0x00);
 + wiringPiI2CWriteReg8(fd,​ 0x20, 0x00);
 +
 + wiringPiI2CWriteReg8(fd,​ 0x21, 0x00);
 + wiringPiI2CWriteReg8(fd,​ 0x22, 0x00);
 + wiringPiI2CWriteReg8(fd,​ 0x23, 0x00);
 +
 + wiringPiI2CWriteReg8(fd,​ 0x24, 0x01);
 + wiringPiI2CWriteReg8(fd,​ 0x25, 0x0f);
 + wiringPiI2CWriteReg8(fd,​ 0x26, 0x2b);
 + wiringPiI2CWriteReg8(fd,​ 0x27, 0x00);
 +
 + wiringPiI2CWriteReg8(fd,​ 0x28, 0x09);
 + wiringPiI2CWriteReg8(fd,​ 0x29, 0xff);
 + wiringPiI2CWriteReg8(fd,​ 0x2a, 0x80);
 + wiringPiI2CWriteReg8(fd,​ 0x2c, 0x0a);
 + wiringPiI2CWriteReg8(fd,​ 0x2f, 0x00);
 + wiringPiI2CWriteReg8(fd,​ 0x38, 0x9f);
 +}
 +
 +struct acc_dat adxl345_read_xyz(int fd)
 +{
 + char x0, y0, z0, x1, y1, z1;
 + struct acc_dat acc_xyz;
 +
 + x0 = 0xff - wiringPiI2CReadReg8(fd,​ 0x32);
 + x1 = 0xff - wiringPiI2CReadReg8(fd,​ 0x33);
 + y0 = 0xff - wiringPiI2CReadReg8(fd,​ 0x34);
 + y1 = 0xff - wiringPiI2CReadReg8(fd,​ 0x35);
 + z0 = 0xff - wiringPiI2CReadReg8(fd,​ 0x36);
 + z1 = 0xff - wiringPiI2CReadReg8(fd,​ 0x37);
 +
 + acc_xyz.x = (int)(x1 << 8) + (int)x0;
 + acc_xyz.y = (int)(y1 << 8) + (int)y0;
 + acc_xyz.z = (int)(z1 << 8) + (int)z0;
 +
 + return acc_xyz;
 +}
 +
 +int main(void)
 +{
 + int fd;
 + struct acc_dat acc_xyz;
 +
 + fd = wiringPiI2CSetup(DevAddr);​
 +
 + if(-1 == fd){
 + perror("​I2C device setup error"​);​
 + }
 +
 + adxl345_init(fd);​
 +
 + while(1){
 + acc_xyz = adxl345_read_xyz(fd);​
 + printf("​x:​ %05d  y: %05d  z: %05d\n",​ acc_xyz.x, acc_xyz.y, acc_xyz.z);
 +
 + }
 +
 + return 0;
 +}
 +</​pre>​
 +</​html>​
 +
 +{{ :​rpistarterkit:​p25_03.png |}}
 +
 +Mentsük el, majd tegyük futtathatóvá a fájlt a GCC parancs segítségével.
 +
 +  * **sudo gcc gyorsulas.c -o gyorsulas -lwiringPi**
 +
 +{{ :​rpistarterkit:​p25_04.png |}}
 +
 +Végül futtassuk a programot, ha mindent jól csináltunk,​ akkor ha mozgatjuk az eszközt akkor megkapjuk az elmozdulás mértékét.
 +
 +  * **sudo ./​gyorsulas**
 +
 +{{ :​rpistarterkit:​p25_05.png |}}
  
 ---- ----
  
 =====26. Projekt, Ultrahangos érzékelő ===== =====26. Projekt, Ultrahangos érzékelő =====
 +
 +**Bevezetés**
 +
 +Ebben a projektben egy ultrahangos érzékelővel fogjuk mérni, hogy az adott tárgy milyen messze van tőlünk adott távolságon belül.
 +
 +**Eszközszükséglet**
 +
 +  * 1 db Ultrahangos érzékelő
 +  * Keyestudio RPI GPIO-PCF8591 kártya
 +
 +**Eszközök csatlakoztatása**
 +
 +A képre kattintva megtekinthető nagyobb méretben is.
 +
 +{{ :​rpistarterkit:​p26_01.png |}}
 +
 +**Programozás**
 +
 +Hozzunk létre egy új fájlt **ultrahang.c** néven.
 +
 +  * **sudo nano ultrahang.c**
 +
 +{{ :​rpistarterkit:​p26_02.png |}}
 +
 +Ezután írjuk bele a következő C nyelvű kódot.
 +
 +<​html>​
 +<pre>
 +
 +#include &​lt;​wiringPi.h&​gt;​
 +#include &​lt;​stdio.h&​gt;​
 +#include &​lt;​sys/​time.h&​gt;​
 +
 +#define Trig    5
 +#define Echo   4
 +void ultraInit(void)
 +{
 + pinMode(Echo,​ INPUT);
 + pinMode(Trig,​ OUTPUT);
 +}
 +
 +float disMeasure(void)
 +{
 + struct timeval tv1;
 + struct timeval tv2;
 + long start, stop;
 + float dis;
 +
 + digitalWrite(Trig,​ LOW);
 + delayMicroseconds(2);​
 +
 + digitalWrite(Trig,​ HIGH);
 + delayMicroseconds(10); ​    
 +    digitalWrite(Trig,​ LOW);
 +
 + while(!(digitalRead(Echo) == 1));
 + gettimeofday(&​tv1,​ NULL); ​          
 +
 + while(!(digitalRead(Echo) == 0));
 + gettimeofday(&​tv2,​ NULL); ​          
 +
 + start = tv1.tv_sec * 1000000 + tv1.tv_usec; ​  
 + stop  = tv2.tv_sec * 1000000 + tv2.tv_usec;​
 +
 + dis = (float)(stop - start) / 1000000 * 34000 / 2;  ​
 +
 + return dis;
 +}
 +
 +int main(void)
 +{
 + float dis;
 +
 + if(wiringPiSetup() == -1){ //when initialize wiring failed,​print messageto screen
 + printf("​setup wiringPi failed !");
 + return 1; 
 + }
 +
 + ultraInit();​
 +
 + while(1){
 + dis = disMeasure();​
 + printf("​distance = %0.2f cm\n",​dis);​
 + delay(500);​
 + }
 +
 + return 0;
 +}
 +
 +</​pre>​
 +</​html>​
 +
 +{{ :​rpistarterkit:​p26_03.png |}}
 +
 +Mentsük el, majd tegyük futtathatóvá a GCC parancs segítségével.
 +
 +  * **sudo gcc ultrahang.c -o ultrahang -lwiringPi**
 +
 +{{ :​rpistarterkit:​p26_04.png |}}
 +
 +Futtassuk a fájlt, ha mindent jól csináltunk akkor közel pontosan megkapjuk, hogy az adott tárgy milyen távolságra van a szenzortól.
 +
 +  * **sudo ./​ultrahang**
 +
 +{{ :​rpistarterkit:​p26_05.png |}}
  
 ---- ----
  
 =====27. Projekt, Joystick modul ===== =====27. Projekt, Joystick modul =====
 +
 +**Bevezetés**
 +
 +A joystick modul 2 potenciométerből áll, amit megfeleltetünk X és Y tengelynek. Z tengelynek egy gombot használunk. A joystick jeleit analóg módon tudjuk érzékelni ezért szükségünk van a Keyestudio RPI GPIO... kártyájára,​ mivel a Raspberry önmagában nem rendelkezik ilyen ki/​bemenettel.
 +
 +**Eszközszükséglet**
 +
 +  * 1 db Joystick modul
 +  * Keyestudio RPI GPIO-PCF8591 kártya
 +
 +**Eszközök csatlakoztatása**
 +
 +A képre kattintva megtekinthető nagyobb méretben is.
 +
 +{{ :​rpistarterkit:​p27_01.png |}}
 +
 +**Programozás**
 +
 +Mivel analóg modult használunk,​ először be kell kapcsolni az I2C modult. Amennyiben még nem tette meg vagy nem tudja hogy kell, menjen vissza a 20. Projekthez, ahol minden részletesen el van magyarázva.
 +
 +Ezután hozzunk létre egy új fájlt **joystick.c** néven.
 +
 +  * **sudo nano joystick.c**
 +
 +{{ :​rpistarterkit:​p27_02.png |}}
 +
 +Majd írjuk bele a következő kódot.
 +
 +<​html>​
 +<pre>
 +
 +#include &​lt;​wiringPi.h&​gt;​
 +#include &​lt;​pcf8591.h&​gt;​
 +#include &​lt;​stdio.h&​gt;​
 +
 +#define Address 0x48
 +#define BASE 64
 +#define A0 BASE+0
 +#define A1 BASE+1
 +#define A2 BASE+2
 +#define A3 BASE+3
 +char dat;
 +
 +int main(void)
 +{
 +        unsigned char value;
 + wiringPiSetup();​
 +        pinMode(1,​INPUT);​
 + pcf8591Setup(BASE,​Address);​
 + while(1)
 + {
 +               ​value=analogRead(A0); ​             ​
 +               ​printf("​X:​%d ​   ",​value);​
 +               ​value=analogRead(A1); ​             ​
 +               ​printf("​Y:​%d ​   ",​value);​
 +               ​dat=digitalRead(1);​
 +               ​if(dat==HIGH)
 +                  printf("​DO:​%d\n",​dat);​
 +               ​if(dat==LOW)
 +                  printf("​DO:​%d\n",​dat);​
 +               ​delay(100);​
 +
 +               // analogWrite(BASE,​value++);​
 +               // printf("​AOUT:​%d\n",​value++);​
 +               // delay(50);
 + }
 +}
 +
 +</​pre>​
 +</​html>​
 +
 +{{ :​rpistarterkit:​p27_03.png |}}
 +
 +Mentsük el, majd tegyük futtathatóvá a GCC parancs segítségével.
 +
 +  * **sudo gcc joystick.c -o joystick -lwiringPi**
 +
 +{{ :​rpistarterkit:​p27_04.png |}}
 +
 +Majd végül futtassuk a programot, ha mindent jól csináltunk,​ megkapjuk X,Y és Z értéket ahol Z gombként van jelen.
 +
 +  * **sudo ./​joystick**
 +
 +{{ :​rpistarterkit:​p27_05.png |}}
  
 ---- ----
  
 =====28. Projekt, 5V Relay ===== =====28. Projekt, 5V Relay =====
 +
 +**Bevezetés**
 +
 +Ebben a projektben, egy egyszerű 5V-os relét fogunk tesztelni. A relé attól függően kapcsol hogy magas vagy alacsony jelet kap. Ezzel a módszerrel fogunk egy LED-et villogtatni a következőkben.
 +
 +**Eszközszökséglet**
 +
 +  * 1 db Relay modul
 +  * 1 db Piros LED
 +  * 1 db Ellenállás
 +  * Keyestudio PRI GPIO-PCF8591 kártya
 +
 +**Eszközök csatlakoztatása**
 +
 +A képre kattintva megtekinthető ​ nagyobb méretben is.
 +
 +{{ :​rpistarterkit:​p28_01.png |}}
 +
 +**Programozás**
 +
 +Első lépésként,​ hozzunk létre egy új fájlt **relay.c** néven.
 +
 +  * **sudo nano relay.c**
 +
 +{{ :​rpistarterkit:​p28_02.png |}}
 +
 +Ezután írjuk bele a következő kódot.
 +
 +<​html>​
 +<pre>
 +
 +#include &​lt;​wiringPi.h&​gt;​
 +int main()
 +{
 +  wiringPiSetup();​
 +
 +  {
 +        pinMode(1,​OUTPUT);​
 +  }
 +  ​
 +  while(1)
 +  { 
 +        digitalWrite(1,​HIGH);​
 +        delay(500);
 +        digitalWrite(1,​LOW);​
 +        delay(500);​   ​
 +  }
 +
 +}
 +
 +</​pre>​
 +</​html>​
 +
 +{{ :​rpistarterkit:​p28_03.png |}}
 +
 +Mentsük el, majd tegyük futtathatóvá a GCC paranccsal.
 +
 +  * **sudo gcc relay.c -o relay -lwiringPi**
 +
 +{{ :​rpistarterkit:​p28_04.png |}}
 +
 +Végül futtassuk, ha mindent jól csináltunk,​ egy kattogó hang keretében a LED fel és le fog kapcsolni. A kattogó hang ahogy a relay kapcsolja a benne lévő mechanikus kapcsolót.
 +
 +  * **sudo ./relay**
 +
 +{{ :​rpistarterkit:​p28_05.png |}}
  
 ---- ----
  
 =====29. Projekt, DHT11 Hőmérséklet és Páratartalom érzékelő ===== =====29. Projekt, DHT11 Hőmérséklet és Páratartalom érzékelő =====
 +
 +**Bevezetés**
 +
 +
  
 ---- ----
Line 2348: Line 2957:
 =====30. Projekt, Talaj nedvesség érzékelő ===== =====30. Projekt, Talaj nedvesség érzékelő =====
  
 +**Bevezetés**
 +
 +Ebben a projektbe, a talaj nedvesség tartalmának vizsgálására alkalmas eszközt fogunk tesztelni.
 +
 +**Eszközszükséglet**
 +
 +  * 1 db Talaj nedvesség érzékelő
 +  * Keyestudio RPI GPIO-PCF8591 kártya
 +
 +**Eszközök csatlakoztatása**
 +
 +A képre kattintva nagyobb méretben is megtekinthető.
 +
 +{{ :​rpistarterkit:​p30_01.png |}}
 +
 +**Programozás**
 +
 +Első lépésként kapcsoljuk be az I2C modult, amennyiben még nincs bekapcsolva,​ vagy nem tudja, hogyan kell, menjen vissza a 20. Projekthez ahol részletesen elmagyarázzuk,​ a bekapcsolás menetét.
 +
 +Bekapcsolás után, hozzunk létre egy úgy fájlt **talajnedvesseg.c** néven.
 +
 + * **sudo nano talajnedvesseg.c**
 +
 +{{ :​rpistarterkit:​p30_02.png |}}
 +
 +Majd írjuk bele a következő kódot.
 +
 +<​html>​
 +<pre>
 +
 +#include &​lt;​wiringPi.h&​gt;​
 +#include &​lt;​pcf8591.h&​gt;​
 +#include &​lt;​stdio.h&​gt;​
 +
 +#define Address 0x48
 +#define BASE 64
 +#define A0 BASE+0
 +#define A1 BASE+1
 +#define A2 BASE+2
 +#define A3 BASE+3
 +
 +int main(void)
 +{
 +    unsigned char value;
 + wiringPiSetup();​
 + pcf8591Setup(BASE,​Address);​
 +
 + while(1)
 + {
 +               ​value=analogRead(A0); ​             ​
 +               ​printf("​S:​%d\n",​value);​
 +               ​delay(50);​
 + }
 +}
 +
 +</​pre>​
 +</​html>​
 +
 +{{ :​rpistarterkit:​p30_03.png |}}
 +
 +Mentsük el, majd tegyük futtathatóvá GCC paranccsal.
 +
 +  * **sudo gcc talajnedvesseg.c -o talajnedvesseg -lwiringPi**
 +
 +{{ :​rpistarterkit:​p30_04.png |}}
 +
 +Végül futtassuk és nézzük meg milyen értéket ad a talaj nedvességére.
 +
 +  * **sudo ./​talajnedvesseg**
 +
 +{{ :​rpistarterkit:​p30_05.png |}}
 ---- ----
  
ultimatestarterkit.1556261402.txt.gz · Last modified: 2019/04/26 08:50 by tamas