-
Fototrend
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
RAiN91
őstag
Köszi a válaszokat. Az ellenállás sajnos nem vált be, ugyan úgy érintésre érzékel. 1M Ohm-al próbáltam, az volt itthon. Kondit még megpróbálom.
-
RAiN91
őstag
És a másik megoldás, hogy ne impulzusra működjön a riasztás, hanem egy hosszab jelre? Pl. ha 5 másodpercig folyamatosan érzékel, akkor induljon a program. Ezt nem tudom, meg lehet-e írni egyszerűen?
Most ezt úgy adtam meg a programban, hogy ha érzékel egy impulzust, akkor 5 másodperc múlva megint nézze, és ha akkor is igaz a feltétel, akkor induljon a riasztás. Ez ugye két impulzusból áll, mert csak ennyire "értek" hozzá, és ha pont 5 másodperc múlva megint valami zavar van, akkor téves lesz a riasztás. Bár azért olyan sűrűn nem szokott tévesen zargatni, csak napi 2-3x.
-
RAiN91
őstag
Nem tudom mitől annyi, elég hülye vagyok sajnos az egészhez. A programban ezt adtam meg, gondolom ez definiálja, hogy annyi legyen:
digitalWrite(D7,HIGH);
Az a gond, ha a kapcsolót se kötöm rá, és még a vezetéket is leveszem D7-ről, még úgyis magától beriaszt. Így gondolom hiába raknám oda az ellenállást? MicroUSB 5V-ról működik, kb. 10 féle töltő van itthon különféle kábelekkel, az egyik kínai 1A-es és egy ezer éves 0.55A-essel viszonylag stabilabban működik, talán ettől is függhet?
-
RAiN91
őstag
Sziasztok
NodeMCU-t használok, egy SIM800L modullal, riasztóként. Egy nyomógomb működteti, ha a nyomógomb kinyílik (mert az ajtó nyomja meg, értelemszerűen ha kinyitom az ajtót, akkor a nyomógomb alap állapotba kerül), akkor felhívja a telefonom.A programban úgy van, ha D7 pin lehúz, akkor induljon a riasztás. D7 alap állapotban 3.3V, és GND-vel húzom le a kapcsolón keresztül. A probléma, hogy néha magától is beriaszt tévesen, mert annyira érzékeny a D7, ha hozzá nyúlok, akkor is már érzékel. Próbáltam úgy is, hogy alapból 0V állapota, és 3.3V-ra kapcsol, de ugyan ez a probléma akkor is.
Ellenállásokat nem használok, lehet ez a gond? Eléggé kínai az egész nekem, net alapján raktam össze innen-onnan, így nagyon nem is akarok bele menni, ha egyszerűen nem lehet megoldani, vagy programozástechnikailag vagy hardverileg.Esetleg ami eszembe jutott az az, ha pl. 5 másodpercen keresztül egyfolytában lehúzza D7-et, akkor riasszon csak, ne pedig impulzusra. Ezt hogyan tudnám megoldani a programban?
-
RAiN91
őstag
Sziasztok
Megtudtam, hogy SIM800L modulnál az AT+CLIR=1 (vagy 2, nem tudom) kóddal tudom beállítani, hogy látszódjon a hívó szám.
Hova kellene ezt beillesztenem? Itt a programom:
#include <SoftwareSerial.h>
SoftwareSerial sim(D1, D2);
void setup() {
sim.begin(115200);
pinMode(D4, OUTPUT);
pinMode(D7, INPUT);
digitalWrite(D4,LOW);
delay(18000); /// ÉLESÍTÉS IDŐ
digitalWrite(D4,HIGH);
}
void loop() {
if (1 == digitalRead(D7)){
digitalWrite(D4,LOW);
delay(6000);
sim.write("ATD+3670...;\r\n");
sim.write("ATD+3670...;\r\n");
delay(30000); /// ÚJRA ÉLESÍTÉS
digitalWrite(D4,HIGH);
}
} -
RAiN91
őstag
Egy kérdésem lenne!
Ha hívás érkezik a SIM800L felől, akkor privát számot ír ki. Hogyan lehetne láthatóvá tenni?
#include <SoftwareSerial.h>
SoftwareSerial sim(D1, D2);
void setup() {
sim.begin(115200);
pinMode(D4, OUTPUT);
pinMode(D7, INPUT);
digitalWrite(D4,LOW);
delay(6000); /// ÉLESÍTÉS IDŐ
digitalWrite(D4,HIGH);
}
void loop() {
if (1 == digitalRead(D7)){
digitalWrite(D4,LOW);
sim.write("ATD+36xxx;\r\n");
delay(25000); /// ÚJRA ÉLESÍTÉS
digitalWrite(D4,HIGH);
}
} -
RAiN91
őstag
válasz
Janos250 #9366 üzenetére
Sajna nagyon kezdő vagyok, így sokat nem mond amit írtál. Előtte egy NodeMCU-t használtam, de GSM modul nélkül, egy telefon nyomógombjait nyomkodtam GPIO-n keresztül. Most a telefont váltanám le erre a GSM modul-ra.
Mit jelent, hogy "gyalog" küldöd a dolgokat? Csak annyit szeretnék, hogy ha egy adott feltétel igaz, akkor hívja az adott számot.
-
RAiN91
őstag
Használ valaki SIM800L-t, vagy hasonló modult?
D1 Mini-vel szeretnék egy adott számra hívást indítani. Kezdésnek ezt a videót követem, de sajnos nem jó.
[link]Direktben kap 5V-ot a modul (tudom, hogy nem szabadna, de sok helyen azt írják, így működik). A LED lassan villog, tehát működik SIM-el a modul.
#include <SoftwareSerial.h>
SoftwareSerial sim(D1, D2);
void setup() {
Serial.begin(115200);
Serial.println("System Started...");
sim.begin(115200);
sim.println("AT");
}
void loop() {
if (sim.available())
Serial.write(sim.read());
if (Serial.available())
sim.write(Serial.read());
} -
RAiN91
őstag
Sziasztok
Vettem egy SIM 800L modult. Olyan kérdésem lenne, hogy ezeknél a GSM moduloknál a SIM-ről előtte el kell távolítani a PIN kódot?
-
RAiN91
őstag
Sziasztok. Sikeres lett a garázs riasztó, ha akció van, felhív telefonon, egy regi Siemens telefon gombjait nyomkodja a NodeMCU optocsatolókkal.
Megtetszett másnak is, így csinálok még, ehhez két kérdés.
Nodemcu helyett érdemes D1 Mini-t használni? Ha jól tudom, ugyan úgy kell programozni, de. legalább kisebb az egész, bár azt nem tudom, butább-e? Árban hasonló.
Telefont váltanám ki valami GSM modullal, tudtok ajánlani valamit? SIM 800L-et neztem, ami 3-4$, mást nem találtam ami hasonló áron van.
Köszi.
-
RAiN91
őstag
válasz
Janos250 #8877 üzenetére
Ezeknek utána nézek. Arra én is gondoltam, hogy már bootnál érzékel. Ezért lehúztam a csatlakozóját a mozgásérzékelőnek, de így is indul a program.
De már javul a helyzet. A kék LED bootnál mindig LOW (világító) állapotba kerül. Ha a program azt látja, hogy világít, akkor 10 másodperc késleltetés, majd kikapcsolja a LED-et. Else esetben pedig fut a fő program. De még tesztelem.
-
RAiN91
őstag
Annyira jutottam, hogy nem úgy működik, ahogy gondoltam. Ha pl. 3,3V--ra érintem az adott GPIO-t, akkor az úgy is marad, elengedés után is. Ha vissza akarom kapcsolni, akkor GND-re kell kötnöm.
Ez nem gond, nyomógombbal meg tudom oldani, de akadt még egy probléma:Bootolás után a GPIO be / kimenetek HIGH állapotba kerülnek, és egyből indítja is a programomat. Olvasgattam, hogy állítólag a GPIO 4 és 5 nem kerül HIGH-ra, de nálam igen, mindegyiken végigpróbálgattam már. (mozgásérzékelő van ide kötve, ha bootolok, egyből érzékel is és riaszt).
-
RAiN91
őstag
válasz
Tankblock #8871 üzenetére
Szia
Nem indul újra, a program teljesen jól működik, ha csak a GPIO15 aktív. De az a cél, hogy csak akkor működhessen az egész program, ha GPIO14-en (vagy akármelyiken, már próbáltam többet is) egy kapcsoló be van a kapcsolva.
De a programnyelvet nem nagyon ismerem, csak VBA-s logikával próbáltam felépíteni, de szerintem nem így működik a HA függvény a HA függvényen belül.
-
RAiN91
őstag
Kérdezek egyszerűbbet:
void setup()
{
pinMode(13, INPUT);
pinMode(5, INPUT);
void loop()
}
{
if (1 == digitalRead(5)) {
if (1 == digitalRead(13)) {
.....PROGRAM....
}
}
}Ha függvényen belül szeretnék még egy HA-t, de ebben a formában nem jó. (13-as bemenet-re akkor is elindítja a programot, ha 5-ös nem igaz).
-
RAiN91
őstag
Sziasztok
Egy egyszerű és függvényt szeretnék, de nem akar működni a gyakorlatban.
void setup()
{
pinMode(13, INPUT);
pinMode(LED_BUILTIN, OUTPUT);
pinMode(2, OUTPUT); /// D4
pinMode(14, INPUT); /// D5 kapcsoló
pinMode(12, OUTPUT); /// D6 telo hív
pinMode(15, OUTPUT); /// D8 telo lerak
}
void loop()
{
if (1 == digitalRead(13) && 0 == digitalRead(14)) {
......
}.
}ha GPIO 14-et GND-re kötöm, és ha GPIO13 igaz, akkor nyomja a programot. De GPIO14-et olyan, mintha nem is figyelné, csak a 13-at (az egy mozgásérzékelő). Próbáltam HIGH-ra is állítani, tehát nem GND-re kötöm, hanem 3,3V-ra.
Egyébként NodeMCU a hardver.
-
RAiN91
őstag
válasz
Tankblock #8651 üzenetére
Köszönöm, közbe már megértettem. A PIR kb. 3-4 másodpercig adja a jelet, ez zavart meg.
A következő kérdésem. Minél olcsóbban hogy tudom megoldani, hogy egy Nokia 3210 gombjait vezérelhessem? Csak egy rövidzár kell, de sajnos direktbe gondolom nem lehet megoldani, mert csak 2 állapot van? Vagy GND vagy 3,3V a kimeneten, a feszültség nem tenne jót. Vagy rosszul gondolom, hogy 2 állapot van?
-
RAiN91
őstag
Sziasztok
NodeMCU-t programozok, egy PIR szenzor van rákötve. Annyit szeretnék, hogy ha mozgást érzékel, akkor világítson a másik LED, pl. 8 másodpercig. Itt a program, amit össze sikerült hozni:
void setup()
{
pinMode(13, INPUT);
pinMode(2, OUTPUT);
pinMode(LED_BUILTIN, OUTPUT);
}
void loop()
{
if (1 == digitalRead(13)) {
digitalWrite(2,HIGH);
digitalWrite(LED_BUILTIN,LOW);
delay(8000);
digitalWrite(2,LOW);
digitalWrite(LED_BUILTIN,HIGH);
}
}A probléma az, hogy ha a 8 másodpercen belül mozgást jelez, akkor újra indul a késleltetés. Én azt szeretném, hogy fix 8 sec legyen, ez alatt ne is figyelje a bemenetet.
Hogyan lehetne megoldani, valami sorrend vezérlés? (később az a cél, hogy bizonyos sorrendben adjon jelet bizonyos kimenetekre, de szépen lassan, most elég ennyi)
Köszönöm!
Új hozzászólás Aktív témák
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Tesla topik
- Kerékpárosok, bringások ide!
- Lexus, Toyota topik
- Napelem
- Vezetékes FÜLhallgatók
- Házimozi belépő szinten
- Kávé kezdőknek - amatőr koffeinisták anonim klubja
- Mibe tegyem a megtakarításaimat?
- AMD vs. INTEL vs. NVIDIA
- További aktív témák...
- Csere-Beszámítás! HP Omen Gamer laptop! I7 7700HQ / GTX 1050Ti / 32GB DDR4 / 250SSD+1TB HDD
- ThinkPad X13 Gen4 13.3" FHD+ IPS i5-1335U 16GB 256GB NVMe ujjlolv gar
- Slot1 Processzor
- HP ProBook 430 G8, 13,3" FHD IPS, I5-1135GU CPU, 16GB DDR4, 256GB SSD, WIN 11, 27% áfás számla, 1 év
- HP ProBook 430 G6, 13,3" FHD IPS, I5-8265U CPU, 8GB DDR4, 256GB SSD, WIN 11, 27% áfás számla, 1 év g
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest