This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
ultimatestarterkit [2019/05/02 09:13] tamas [26. Projekt, Ultrahangos érzékelő] |
ultimatestarterkit [2019/05/02 10:58] (current) tamas [30. Projekt, Talaj nedvesség érzékelő] |
||
---|---|---|---|
Line 2790: | Line 2790: | ||
=====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 <wiringPi.h> | ||
+ | #include <pcf8591.h> | ||
+ | #include <stdio.h> | ||
+ | |||
+ | #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 <wiringPi.h> | ||
+ | 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 2803: | 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 <wiringPi.h> | ||
+ | #include <pcf8591.h> | ||
+ | #include <stdio.h> | ||
+ | |||
+ | #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 |}} | ||
---- | ---- | ||