Hirdetés
-
Képeken az egyik kameráját elvesztő Sony Xperia 10 VI
ma Részletes anyag került fel az internetre a Sony idei középkategóriás telefonjáról, három helyett két hátlapi kamera várható.
-
Spyra: akkus, nagynyomású, automata vízipuska
lo Type-C port, egy töltéssel 2200 lövés, több, mint 2 kg-os súly, automata víz felszívás... Start the epic! :)
-
A franciáknak elege van abból, hogy minden gyerek mobilozik
it Vissza akarják szorítani a gyerekek és tinédzserek közösségi média- és okostelefon-használatát.
-
PROHARDVER!
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
-
nagyúr
válasz cog777 #20250 üzenetére
Ahonnan mindent is: a sarki hobbielektronika boltból.
Nagy lapokban adják, méretre kell vágni. Van több féle, van, ahol minden forrasztási hely külön van, meg olyan is, ahol hosszú vezetősávok vannak, amit meg kell szakítani, meg olyan is, ahol hármasával vannak összekötve. Mindegyikből tartok, mikor melyik a praktikusabb, azt használom.[ Szerkesztve ]
-
nagyúr
-
Tankblock
aktív tag
válasz Wolfram #20253 üzenetére
Fogsz egy réz vezetéket, és hozzáforrasztod a tüskék közé, majd pákával vagy/ és Hőlégfúvóval beletolsz annyi hőt h megolvadjon mind majd a gravitáció / csipesz segítségével kiszeded.
Másik megoldás h oldalcsípővel levágod, majd ónszippantóval+páka segítségével egyesével kiszedegeted a lábakat....
Release the Beast....
-
őstag
-
cog777
senior tag
Keresgeltem, de nem talaltam topikot a kerdesemre, remelem maradhat. Szoval, elhataroztam hogy ujraszervezem a hazi homeros projektemet, jelen pillanatban van egy ESP32 amely szerverkent funkcional megjeleniti egy LCD-n a kulonbozo ESP8266-ok altal kuldott adatokat, homerseklet, paratartalom.
Ezt a felallast szeretnem kivaltani egy okosabb rendszerrel. Elsosorban kellene riasztas vagy emal-ra, vagy telefonra ha a benti homerseklet eler egy kuszoberteket.
Amit most kigondoltam hogy az RPi lesz a szerver, es pythonnal kuldhetek email. Viszont vannak okosabb IoT rendszerek de ezeket nem ismerem. Van valami otletetek hogyan tudnam megoldani?
Talaltam IoT dashboard-okat de azok kb 10 dollartol kezdodnek havonta, nemelyiknek mobilos app-ja is van.
IFTTT-t nem ismerem, lehet hogy ez segit? pl email notification?
https://anthscomputercave.com/tutorials/ifttt/using_ifttt_web_request_email.htmlTovabba egy IoT dashboardot is keresek, aminek van mobilos app-ja, regebben volt ingyenes par eszkozig, de most nem talalok. Korabban csinaltam magam, bereltem egy szervert es domain nevet, grafana-t futtattam, de erre mar nincs idom, valami kulcsrakeszebb kellene.
Talan ti is hasznaltok ilyen IoT riaszto/dashboard szeruseget. Elore is koszi a tanacsokat.
[ Szerkesztve ]
HP ZBook Workstation A3000 - Linux Mint; Raspberry Pi4 - Raspbian
-
cog777
senior tag
Nagyszeru, megnezem, koszi.
Tovabba ezt talaltam: https://blynk.io/ ingyenes 2 eszkozig, 7 dollar/ho 10 eszkoz.
Tovabba van mobil app-ja is, gondolom ertesitesekkel.HP ZBook Workstation A3000 - Linux Mint; Raspberry Pi4 - Raspbian
-
ViZion
félisten
válasz cog777 #20266 üzenetére
thingspeak esetleg, meg van más is, ami mqtt-ből adatokat tud megjeleníteni. Mail küldés is van, android app van. Értesítést, ilyesmit sohasem engedélyezem, de gondolom bekapcsolható, ezeket nem tudom sajnos.
Hold on, trying to give a fuck... Nope, not Happening • Powered by Fedora Linux • "Az élet olyan sz@r, szerencsére a felén már túl vagyok" Al Bundy
-
-
cog777
senior tag
válasz ReFleXx #20271 üzenetére
Van otthoni rpi-m, mit javasolsz mit csinaljak vele?
Egy szervert akarok csinalni rajta ami fogadja szenzorok adatait. Dashboard jo lenne, de nemcsak LAN-on hanem a telefonomrol is elerek.telegram + discord mennyi lehetoseg, ezekrol lemaradtam.
HP ZBook Workstation A3000 - Linux Mint; Raspberry Pi4 - Raspbian
-
olli
tag
Mit kellene változtatni a kódban a state helyes funkcióhoz?
```cpp
#include <SPI.h>
#include <LoRa.h>
unsigned int state;
//LoRa32u4 ports
#define SS 8
#define RST 4
#define DI0 7
#define BAND 433E6
void setup() {
Serial.begin(115200);
pinMode(13, OUTPUT); // fehér led sets the pin as output for relay
digitalWrite(13,HIGH);
//while (!Serial); //if just the the basic function, must connect to a computer
delay(1000);
SPI.begin();
LoRa.setPins(SS,RST,DI0);
Serial.println("LoRa Receiver");
if (!LoRa.begin(433E6)) {
Serial.println("Starting LoRa failed!");
while (1);
}
Serial.println("LoRa Initial OK!");
}
/*----( LOOP: RUNS CONSTANTLY )----*/
void loop() {
digitalWrite(13,LOW);
// try to parse packet
int packetSize = LoRa.parsePacket();
if (packetSize) {
// received a packet
Serial.print("Received packet :");
// read packet
while (LoRa.available()) {
Serial.print((char)LoRa.read());
}
// print RSSI of packet
Serial.print("' with RSSI ");
Serial.println(LoRa.packetRssi());
if (state == 0) //Melegvíz gázkazánból..
{
Serial.println("GAZ_KAZAN - TIMER ON");
digitalWrite(13,LOW); //Időzítés be..
delay(500);
}
if (state == 1); //Melegvíz boilerből..
{
Serial.println("BOILER");
digitalWrite(13,HIGH); //Időzítő ki..
delay(3000);
}
}
}
//Serial print
// Received packet :1 HELLO 34.25 17.00 7056' with RSSI -79
//GAZ_KAZAN - TIMER ON
//BOILER
```By cool !
-
-
lanszelot
addikt
Hello,
Valamit megint nem jól csinálok, de nem tudom mi az
digispark , rotary encoder, piros LED, kékLED, 220R 2db
digispark gnd : RotEnc gnd
digispark 5V : RotEnc+
digispark pin2 : RotEnc CLK
digispark pin3 : RotEnc DT
digispark gnd : R1
digispark gnd : R2
pirosLED rövid láb : R1
kékLED rövid láb : R2
pirosLED hosszú láb : digispark pin0
kékLED hosszú láb : digispark pin1kód:
/*LED input*/
#define redLed 0
#define blueLed 1
/*rotary encoder input*/
#define inputCLK 2
#define inputDT 3
int currentStateCLK;
int previousStateCLK;
int keses = 1000;
void setup() {
/*rotary encoder pins input*/
pinMode (inputCLK, INPUT);
pinMode (inputDT, INPUT);
/*LED pin output*/
pinMode (redLed, OUTPUT);
pinMode (blueLed, OUTPUT);
/*read initial state of inputCLK*/
previousStateCLK = digitalRead(inputCLK);
}
void loop() {
/*read current state of inputCLK*/
currentStateCLK = digitalRead(inputCLK);
if (currentStateCLK != previousStateCLK) {
if(digitalRead(inputDT)!= currentStateCLK){
keses = keses+200;
}else{
if(keses > 200){
keses = keses-200;
}
}
}
/*red led on off*/
digitalWrite(redLed, HIGH);
delay(keses);
digitalWrite(redLed, LOW);
delay(keses);
/*blue led on off*/
digitalWrite(blueLed, HIGH);
delay(keses);
digitalWrite(blueLed, LOW);
delay(keses);
}Amit szeretnék: amikor forgatom a RotEnc -t akkor gyorsabban, lassabban villogjon a led
Led villog
RotEnc hiába forgatom -
nagyúr
válasz lanszelot #20282 üzenetére
Ugye nem felejtetted el, hogy a 3-as pin egyben az USB egyik data vonala is? USB portba dugva nem fog működni, powerbank-ba dugva talán.
Szerk.: csak most néztem végig a programot, ez ebben a formában semmiképp nem fog működni, mert több másodperc delay van minden egyes beolvasás közt, miközben egy rotary encoder forgatása másodpercenként több tucat impulzust is generál. Vagy interrupt kell a beolvasáshoz, vagy minden delay-t likvidálni kell.
Egy tipp: ha lábat szeretnél spórolni, egy lábra két LED-et is rá tudsz kötni, egymáshoz képest fordítva (pin-GND és pin-+5V közé), így az egyik magas, a másik alacsony állapotnál világít, kikapcsolni pedig a port input-ra állításával lehetséges.
[ Szerkesztve ]
-
őstag
válasz lanszelot #20283 üzenetére
Nem tudom milyen enkódered van, de kénytelen leszel vagy interruptot használni, vagy ütemezőt, ahogy Aryes is írta.
Ha az a tipik pozícióba billenős kattogós enkódered van, akkor hiába forgatod, mert annak a clock lába mindig ugyanaz a stabil állapotban.
Mivel a kódod csak két villogás között mintavételez, ezért mindig csak az az állapot számít, ami a kék led kialvása + keses utáni DE a piros felvillanása előtti időben, azaz pár mikroszekundumban áll fenn. Tehát neked akkor kellene a CLK egy pillanatra más legyen. De ezt nagyon nehéz elkapni, leginkább lehetetlen, ezért a kódod folyamat azt látja, hogy a CLK változatlan, így nem tesz semmit a keses értékével.Interrupttal azt tudod csinálni, hogy a uC figyeli az inputot, és amint az változik, végrehajt egy kódot (esetedben a loop
/*read current state of inputCLK*/)
Ennek köszönhetően a kód nem marad le a váltásokról, mert az interrupt szépen kierőszakolja a futást minden váltáskor.
Ütemezéssel pedig maradhat így a kódod, csak a delay-eket törlöd, és helyettesíted if() feltételekkel. Esetedben 4 ütemre van szükség: redOn, redOff, blueOn, blueOff. A kód elején meghatározod, hogy a piros először mondjuk a futás első másodpercében kell felvillanjon (redOn = 1000). Akkor kialudnia redOff = redOn+keses; időben kell. A blueOn ideje redOff+keses. blueOff = blueOn+keses. Ezután csak kitalálod if használatával, hogy a futásidő millis() éppen melyik ütemen belül van, és annak az ütemnek a feladatát hajtja végre. Mikor az utolsó ütemből is kilépsz, újra kell számolni az ütemek új időpontját. Így a loop nagyon gyorsan ismétlődik, és van esély, hogy nem marad le a futásod az enkóder mozgásáról. Igen, arra is van esély, hogy lemarad, főleg attól függően, hogy mennyire bonyolult marad egy-egy ütem.
[ Szerkesztve ]
Mások számára a kondi fáradós, nekem farad-os...
-
nagyúr
válasz lanszelot #20287 üzenetére
A kolléga nagyon szépen leírta helyettem a problémát és a megoldást is
A 3 és 4 lábat csak abban az esetben használhatod, ha nem tervezel semmilyen usb jellegű felhasználást (pl keyboard emuláció stb) és azok a lábak csak akkor fognak rendesen működni, ha a cucc nem adatportba van dugva, mivel a számítógép folyamatosan kommunikál azokon. Ezen kívül a 3as porton van egy 1,5k felhúzó ellenállás, amit nem tudsz kikapcsolni, ez általában nem zavar, mert amúgyis szokás felhúzni olvasáskor, de engem már tréfált meg, hogy nem vettem figyelembe:
Azért írtam, hogy használd csak az első 3 lábat (0-2):
- a 0-ra kösd a két LED-et,
- a 2 legyen a CLK, mert arra van külső interrupt,
- a DT meg legyen az 1. -
lanszelot
addikt
Először is nagyon szépen köszönöm a segítséget mindenkinek.
Azért nem.valaszoltam még, mert nekem még sok időbe telik programozni.
Utána kell olvasgatnom, megértem, próbálgatom .
Mind a 2 megoldást szeretném megcsinálni, csak az interupt -ot nem értem, és keresgetek hátha találok valami kódot, és nem nyers leírást. A kódból könnyebben megértem.A millis() -t már csináltam, ezért a nehezebbel kezdtem.
Még sehol se tartok, csak próbálom megérteni.
Mindenképpen jelzem, hogy sikerült e. -
nagyúr
-
lanszelot
addikt
Oh, azt hittem az attachInterrupt más
pin-ek:
digispark gnd : RotEnc gnd
digispark 5V : RotEnc+
digispark pin2 : RotEnc CLK
digispark pin1 : RotEnc DT
digispark 5V : R1
digispark gnd : R2
pirosLED rövid láb : R1
kékLED rövid láb : R2
pirosLED hosszú láb : digispark pin0
kékLED hosszú láb : digispark pin0már úgy ahogy működik, de egy irányba állítja csak a sebességet:
/*LED input*/
#define led 0
/*rotary encoder input*/
#define inputCLK 2
#define inputDT 1
int currentStateCLK;
int previousStateCLK;
int keses = 1000;
uint32_t lastms= 0;
void teker(){
if (millis() - lastms > 1000)
{
lastms = millis();
if(digitalRead(inputDT) == currentStateCLK){
keses = keses+100;
}else{
if(keses > 100){
keses = keses-100;
}
}
}
}
void setup() {
/*inicializálja a Rotary Encoder CLK pin-t inputnak , default HIGH !!! */
pinMode(inputCLK, INPUT_PULLUP);
/*rotary encoder pins input*/
pinMode (inputDT, INPUT);
/*LED pin output*/
pinMode (led, OUTPUT);
/*read initial state of inputCLK*/
previousStateCLK = digitalRead(inputCLK);
/* meghívjuk az fv.-t ha LOW-ra húzod a pin-t */
attachInterrupt(0, teker, CHANGE);
}
void loop() {
/*read current state of inputCLK*/
currentStateCLK = digitalRead(inputCLK);
/*red led on off*/
digitalWrite(led, HIGH);
delay(keses);
digitalWrite(led, LOW);
delay(keses);
/*update */
previousStateCLK = currentStateCLK;
} -
őstag
válasz lanszelot #20292 üzenetére
void teker(){
currentStateCLK = digitalRead(inputCLK);
if(digitalRead(inputDT) == currentStateCLK){
keses = keses+100;
}else{
if(keses > 100){
keses = keses-100;
}
}
previousStateCLK = currentStateCLK;
}
Ne korlátozd időben az interruptot, mert azzal lépéseket hagyhatsz ki.A currentState és a previousState pedig az interrupton belül legyen kezelve, mert az interrupt bárhol történhet a futás során. Akár a loopban lévő értékadás előtt vagy után is, ami következetlenné teszi a viselkedését.
Mások számára a kondi fáradós, nekem farad-os...
-
nagyúr
válasz lanszelot #20292 üzenetére
Ha külön-külön is szeretnéd működtetni a két LED-et, akkor a digispark pin0-ra az egyik LED rövid, a másik LED hosszú lábát kell kötni! Amelyik rövid lába van a pin0-n, annak a hosszú lábát az R1-re kösd (+5V), ez a pin0 alacsony szintjére kapcsol be, a másiknál pedig fordítva, a hosszú lábát a pin0-ra és a rövidet az R2-re (GND), ez magas szintnél fog világítani. Hogy egyik se világítson, a pin0-t INPUT-ra kell állítani.
-
lanszelot
addikt
válasz razorbenke92 #20293 üzenetére
Azért korlátoltam be mert 1 pozíciót mozdítok és rengetegnek érzékeli. Így 1 mozdítás 1 érzékelés.
Be raktam a fő "if" végére, de nem működik úgy sem.
A belső "if" feltétele nem jó.
Nem egyenlő, egyenlő, kissebb, nagyobb: ezek nem jók.
Borzasztó ritkán egyenlő és azért.Ha kiveszem az idő korlátot akkor nagyon sokat ugrik 1 tekerésre.
Ekkor ha kb 20-at tekerek, akkor abból 1szer ellenkező iránynak érzékeli. Mindegy merre tekerem. -
nagyúr
válasz razorbenke92 #20293 üzenetére
Az időbeli korlátozás pedig kell, mert az encodernél is felléphet pergés, ha mechanikus. Az 1000 ms helyett olyan 30-50ms közé kellene állítani.
Új hozzászólás Aktív témák
- EDIFIER R1700BTS hangfal pár makulátlan, új állapotban, 2 év hivatalos garanciával, alkalmi áron
- LG OLED55B23LA 2 Év GYÁRI GARANCIA
- Apple iPhone XR 128GB, Kártyafüggetlen, 1 Év Garanciával
- Gamer PC , i7 12700KF , RTX 3080 Ti , 64GB DDR5 , 960GB NVME , 1TB HDD
- Intel PC , i5 8500 , 1660 6GB , 32GB DDR4 , 512GB NVME , 500GB HDD
- D-Link DIR-842 kétsávos, Gigabites router - Foxpost az árban!
- H96 MAX RK3318 TV okosító - 2/16 GB - Új!
- MacBook Pro 13" 2016, i5 2.0GHz, 8GB Ram, 256GB SSD - rossz saját képernyővel, occón!
- Logitech G502 X vezetékes gaming egér, fehér, akár 25600 DPI
- Garett GRC Maxx okosóra, fekete, Android és iOs kompatibilis
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Ozeki Kft.
Város: Debrecen