Keresés

Részletes keresés

Gergö86 Creative Commons License 2018.10.08 0 0 3450

Szia!

Köszönöm a részletes ismertetőt.

Igazából ez az eredeti "program" amit összeollóztam,  ebbe kellene beleoperálni ugye azt a 30 mp-et.

Kezdhettem volna akkor ezzel is az elején.... :)

Ha van kedved olvasgatni, (illetve jókat röhögni) :)

 

#include <GPRS_Shield_Arduino.h>
#include <SoftwareSerial.h>
#include <Wire.h>

#define PIN_TX    14  //sim
#define PIN_RX    15  //sim
#define BAUDRATE  9600
#define PHONE_NUMBER  "0670123456"

#define MESSAGE11 "mozgas a lakasban"
#define MESSAGE12 "mozgas a garazsban"



GPRS gprsTest(PIN_TX,PIN_RX,BAUDRATE);//RX,TX,PWR,BaudRate
#define riaszto 6         //váltó /  az rfid zöld ledje
#include <RCSwitch.h>      //rf 433mhz
#include <EasyTransfer.h>  //TX
EasyTransfer ET;           //TX
struct DATA_STRUCTURE{     //TX
int int_data;};            //TX
DATA_STRUCTURE myData;     //TX
 
  //wiegand:

#define MAX_BITS 100                 // max number of bits
#define WEIGAND_WAIT_TIME  3000      // time to wait for another weigand pulse.  

  //felvételek
 
boolean riasztoState=true;          // riaszto Státus aktív
boolean teraszajtostatus=false;  // teraszajtó Státus
boolean bejaratiajtostatus;         // bejárati ajtó Státus
boolean nappaliablak1status;     // nappali kis ablak Státus
boolean nappaliablak2status;     // nappali dupla ablak Státus
boolean haloablakstatus;            // háló dupla ablak Státus
boolean kisszobaablakstatus;    // kisszoba ablak Státus
// boolean villanyorastatus;        // villanyóra szekrény Státus

int bejaratiajtonyitas;         // bejárati ajtó nyitás
int bejaratiajtocsukas;         // bejárati ajtó csukás
int teraszajtonyitas;           // terasz ajtó nyitás
int teraszajtocsukas;           // terasz ajtó csukás
int nappaliablak1nyitas;        // nappali kis ablak nyitás
int nappaliablak1csukas;        // nappali kis ablak csukás
int nappaliablak2nyitas;        // nappali nagy ablak nyitás
int nappaliablak2csukas;        // nappali nagy ablak csukás
int haloablaknyitas;            // háló dupla ablak nyitás
int haloablakcsukas;            // háló dupla ablak csukás
int kisszobaablaknyitas;        // kisszoba ablak nyitás
int kisszobaablakcsukas;        // kisszoba ablak csukás
int villanyoranyitas;           // villanyora nyitás
// int villanyoracsukas;           // villanyora csukás


int aramsensor   = 4;             // áramszünet reléről érkező jel
int amplifier    = 9;             // amplifier relay


RCSwitch mySwitch = RCSwitch();   // rf 433mhz

  //wiegand:

unsigned char databits[MAX_BITS];    // stores all of the data bits
unsigned char bitCount;              // number of bits currently captured
unsigned char flagDone;              // goes low when data is currently being captured
unsigned int weigand_counter;        // countdown until we assume there are no more bits

unsigned long facilityCode=0;        // decoded facility code
unsigned long cardCode=0;            // decoded card code

  // interrupt that happens when INTO goes low (0 bit)
void ISR_INT0()
{
  //Serial.print("0");   // uncomment this line to display raw binary
  bitCount++;
  flagDone = 0;
  weigand_counter = WEIGAND_WAIT_TIME;  

}

  // interrupt that happens when INT1 goes low (1 bit)
void ISR_INT1()
{
  //Serial.print("1");   // uncomment this line to display raw binary
  databits[bitCount] = 1;
  bitCount++;
  flagDone = 0;
  weigand_counter = WEIGAND_WAIT_TIME;  
}

void setup()
{

  ET.begin(details(myData), &Serial);      //TX küldő
  Serial.begin(9600);
  myData.int_data = 151; ET.sendData ();   //rendszer ujraindult
  Serial.println("Ujraindult");               // kiírja
  while(!gprsTest.init()) { //gprs init
      delay(1000);
      Serial.print("init errorrn");
  }
  Serial.println("gprs init success");
 
 

 


  pinMode(aramsensor, INPUT);                 // áramszünet relé
  pinMode(amplifier, OUTPUT);                 // amplifier relékimenet
  pinMode(riaszto, OUTPUT);                   // váltó
  pinMode(13, OUTPUT);                        // LED(nincs funkciója)
  pinMode(11, INPUT);                         // wiegand DATA0 (INT0)
  pinMode(12, INPUT);                         // wiegand DATA1 (INT4)


  digitalWrite(aramsensor, LOW);              // áramszünet relé
  digitalWrite(amplifier, HIGH);              // amplifier relé kimenet
 
  digitalWrite(riaszto, LOW);                 // váltó
 
 
  mySwitch.enableReceive(1);          //pin2 = int1     // 433Mhz Receiver on inerrupt 0 => that is pin #2

  // binds the ISR functions to the falling edge of INTO and INT4
  attachInterrupt(0, ISR_INT0, FALLING);   // pin3 = int0 rfid
  attachInterrupt(4, ISR_INT1, FALLING);   // pin7 = int4 rfid


  weigand_counter = WEIGAND_WAIT_TIME;
}

       void loop()  {


int garazssensorValue       = analogRead(A0);  //mozgáserzékelök
int eloszobasensorValue    = analogRead(A1);
int konyhasensorValue       = analogRead(A2);
int kisszobasensorValue     = analogRead(A3);
int nappalisensorValue       = analogRead(A4);
int haloszobasensorValue  = analogRead(A5);
         
  //rf433mhz olvasás
 
  if (mySwitch.available()) {
  int value = mySwitch.getReceivedValue();
  if (value == 0) {
      Serial.print("Unknown encoding");
    }
    else {
      Serial.print("Received ");
      Serial.print( mySwitch.getReceivedValue() );
      Serial.print(" / ");
      Serial.print( mySwitch.getReceivedBitlength() );
      Serial.print("bit ");
      Serial.print("Protocol: ");
      Serial.println( mySwitch.getReceivedProtocol() );
    }
    
    
  // RF nyitásérzékelők:
    
    bejaratiajtonyitas=mySwitch.getReceivedValue  ()== 10353326;     //bejárati nyitásérzékelő
    bejaratiajtocsukas=mySwitch.getReceivedValue  ()== 16544578;     //bejárati csukásérzékelő
    teraszajtonyitas=mySwitch.getReceivedValue    ()== 16665578;     //terasz nyitásérzékelő
    teraszajtocsukas=mySwitch.getReceivedValue    ()== 166644578;    //terasz csukásérzékelő
    nappaliablak1nyitas=mySwitch.getReceivedValue ()== 2074542;      // nappali kis ablak nyitás
    nappaliablak1csukas=mySwitch.getReceivedValue ()== 2084435;      // nappali kis ablak csukás
    nappaliablak2nyitas=mySwitch.getReceivedValue ()== 2078742;      // nappali nagy ablak nyitás
    nappaliablak2csukas=mySwitch.getReceivedValue ()== 2074535;      // nappali nagy ablak csukás
    haloablaknyitas=mySwitch.getReceivedValue     ()== 1071022;      // háló dupla ablak nyitás
    haloablakcsukas=mySwitch.getReceivedValue     ()== 1071015;      // háló dupla ablak csukás
    kisszobaablaknyitas=mySwitch.getReceivedValue ()== 16599978;     // kisszoba ablak nyitás
    kisszobaablakcsukas=mySwitch.getReceivedValue ()== 16588878;     // kisszoba ablak csukás
    villanyoranyitas=mySwitch.getReceivedValue    ()== 16777578;     // villanyora nyitás
 // villanyoracsukas=mySwitch.getReceivedValue    ()== 1657778;      // villanyora csukás
    
   
    if (bejaratiajtonyitas==true) bejaratiajtostatus = true;
    if (bejaratiajtocsukas==true) bejaratiajtostatus = false;
    
    if (teraszajtonyitas==true) teraszajtostatus = true;
    if (teraszajtocsukas==true) teraszajtostatus = false;
    
    if (nappaliablak1nyitas==true) nappaliablak1status = true;
    if (nappaliablak1csukas==true) nappaliablak1status = false;
    
    if (nappaliablak2nyitas==true) nappaliablak2status = true;
    if (nappaliablak2csukas==true) nappaliablak2status = false;
    
    if (haloablaknyitas==true) haloablakstatus = true;
    if (haloablakcsukas==true) haloablakstatus = false;
   
    if (kisszobaablaknyitas==true) kisszobaablakstatus = true;
    if (kisszobaablakcsukas==true) kisszobaablakstatus = false;
    
    mySwitch.resetAvailable();
  }
         

  int mozgasgarazs    =(garazssensorValue<400 || garazssensorValue>900)      // mozgásérzékelők érzékelése
  int mozgaseloszoba  =(eloszobasensorValue<400 || eloszobasensorValue>900)    
  int mozgaskonyha    =(konyhasensorValue<400 || konyhassensorValue>900)     
  int mozgaskisszoba  =(kisszobasensorValue<400 || kisszobasensorValue>900)     
  int mozgasnappali   =(nappalissensorValue<400 || nappalisensorValue>900)      
  int mozgashaloszoba =(haloszobasensorValue<400 || haloszobasensorValue>900)     





  //wiegand:

 // This waits to make sure that there have been no more data pulses before processing data
  if (!flagDone) {
    if (--weigand_counter == 0)
      flagDone = 1;    
  }
 // if we have bits and we the weigand counter went out
  if (bitCount > 0 && flagDone) {
    unsigned char i;
  Serial.print("Read ");
    Serial.print(bitCount);
    Serial.print(" bits. ");
 // we will decode the bits differently depending on how many bits we have
 // see www.pagemac.com/azure/data_formats.php for mor info
    if (bitCount == 35)
    {
      // 35 bit HID Corporate 1000 format
      // facility code = bits 2 to 14
      for (i=2; i<14; i++)
      {
        facilityCode <<=1;
        facilityCode |= databits[i];
      }
 // card code = bits 15 to 34
      for (i=14; i<34; i++)
      {
        cardCode <<=1;
        cardCode |= databits[i];
      }
      Serial.print("FC = ");
      Serial.print(facilityCode);
      Serial.print(", CC = ");
      Serial.println(cardCode);
    }
    else if (bitCount == 26)
    {
      // standard 26 bit format
      // facility code = bits 2 to 9
      for (i=1; i<9; i++)
      {
        facilityCode <<=1;
        facilityCode |= databits[i];
      }
 // card code = bits 10 to 23
      for (i=9; i<25; i++)
      {
        cardCode <<=1;
        cardCode |= databits[i];
      }
 //kártyaszámok kiíratása
      Serial.print("FC = ");
      Serial.print(facilityCode);
      Serial.print(", CC = ");
      Serial.println(cardCode);  
    }
    else {
      // you can add other formats if you want!
      Serial.println("Unable to decode.");
    }
    
 
    //kártya:
    
  if (cardCode==54685)
  {
    {

    digitalWrite(riaszto, !digitalRead(riaszto));   // ki/be kapcsolja a riasztót és ki/be kapcsolja az rfid zöld ledjét
   riasztoState = digitalRead(riaszto);             // read pin status
    Serial.println(riasztoState);                  
  }
 
   if (cardCode==54685 && riasztoState == 0)     

  {
     
    digitalWrite(amplifier, LOW);                  //bekapcsolja az amplifiert
    Serial.print("gergo riaszto kikapcsolva ");
    myData.int_data = 152; ET.sendData ();          //lejátsza:riasztó kikapcsolva

   digitalWrite(amplifier, HIGH);                //kikapcsolja az amplifiert

   
  }
 
  }
 
  //cleanup and get ready for the next card
  //törli a kártyaszámokat
    bitCount = 0;
    facilityCode = 0;
    cardCode = 0;
    for (i=0; i<MAX_BITS; i++)
    {
      databits[i] = 0;
    }
  }


 // ha riaszt:

     if (riasztoState==true && (mozgasgarazs|| mozgaseloszoba || mozgaskonyha || mozgaskisszoba || mozgasnappali || mozgashaloszoba || teraszajtonyitas || bejaratiajtonyitas  || nappaliablak1nyitas || haloablaknyitas || kisszobaablaknyitas ) )  //ha mozgás,vagy bejaratiajtonyitas,vagy teraszajtó nyitás
      {
      gprsTest.callUp(PHONE_NUMBER);              // hív   
      Serial.print("riasztas "); 

   
   }

}

Előzmény: Prof (3449)
Prof Creative Commons License 2018.10.08 0 0 3449

Szia,

Még annyit, hogy ha valami tele van hibával, akkor az csak úgy tűnik, mintha működne, és potenciálisan benne van az esélye annak, hogy előbb-utóbb olyasmibe futsz bele, amit nem vársz. És az elég gáz, hogy pl. nem tudsz a lakásba bemenni vagy nem tudod lelőni a riasztót vagy...

Előzmény: Gergö86 (3444)
Prof Creative Commons License 2018.10.08 0 0 3448

Szia,

Végtelenül leegyszerűsítve az állapotgép: vannak feltételek, amelyek lehetnek simán binárisak (igaz/hamis), vagy lehetnek analógok (adott érték alatt vagy felett, de ebből is bináris eredmény lesz). Az események a feltételek változásait jelentik. Egy állapotgépnek annyi konkrét állapota van, ahány kombináció előfordulhat a feltételekben.
A legegyszerűbb állapotgép a villanykapcsoló--villanykörte kombináció. Ha a villanykapcsoló "BE" állapotban van, akkor a lámpa világít, ha "KI" állapotban van, akkor nem világít. Az állapotváltozás a kapcsoló átbillentése egyik állapotból a másikba.
Beágyazott fejlesztésnél az állapotok változását vizsgáljuk, és a régi feltételcsomagból az új feltételcsomagba történő átmenet pillanatában egy szándékolt új állapotot hozunk létre. Ha a villanykapcsoló mikrokontrolleres vezérlést kapna, akkor azt vizsgálnánk, hogy mikor kerül át egyik állapotból a másikba a kapcsoló, és ennek megfelelően kapcsolnánk ki és be azt a bemenetet, amelyen a relémodul van.

A kódodban deklarálva és definiálva van már az elején néhány állapot:

boolean alarm=true;  // kezdéskor aktív
boolean ido=false;   
boolean idolejart=false;

Ez már eleve több, mint ami a legtöbb kezdő kódjában alapból megtalálható. A villanykapcsolós részt most nem írom le teljes egészében, az 5 perc ELEKTRONIKA facebook oldalán van erről egy elég hosszú jegyzet kódrészletekkel, példákkal egyetemben.
A te esetedben az van, hogy:
-- van egy esemény, az ajtó nyitása (ez egy feltétel változását jelenti),
-- az ajtó nyitása indukál egy állapotot, amikor a rendszer a riasztásig 30 másodpercig vár,
-- ebből az állapotból két további állapot elérése lehetséges:
1. ha beírod 30 mp-en belül a kódot, akkor kikapcsol az élesítés,
2. ha nem írod be a kódot vagy rossz kódot ütsz be vagy későn ütöd be, akkor riasztani kezd.
A 30 mp-es várakozási idő alatt tehát alapvetően két dolgot kell figyelned: beütötted-e a jó kódot vagy lejárt-e a 30 mp.
Az elsőt hagyjuk most, nem erre vonatkozott a kérdés. A második, az idő lejáratához kettő dolog kell: valami, amivel időt mérünk és valami, amivel megakasztjuk a program futását úgy, hogy közben ezt-azt tudunk csinálni. Az elsőre a megoldás a millis() függvény, ami eredményül a reset óta eltet időt adja vissza unsigned long formátumú változóban, milliszekundumokban. A másik a while() ciklus, ami addig fut, amíg a while utáni zárójelben lévő feltétel igaz.
A kódot nem fogom neked megírni, de a funkcionális kódvázlat így kellene kinézzen:
1. kezdeti állapot: ajtó zárva, riasztó éles, állapotfigyelés: nyílik-e az ajtó.
1--2. trigger: kinyílt az ajtó, indul a számláló.
2. állapot: ajtó nyitva, riasztó éles, állapotfigyelés: beírtad-e a jó kódot vagy lejárt-e az idő.
2--3. trigger: beírtad a jó kódot, kikapcsol a riasztó. [erre nem térünk ki]
2--4. trigger: lejárt az idő: bekapcsol a sziréna.
4. állapot: szól a sziréna (hogy meddig, az már részletkérdés, nyilván ez is egy állapot lesz).
Minden vizsgálandó dologhoz tartozik egy feltétel (egy-egy boolean), és minden triggervizsgálathoz kell egy-egy while utasítás.

A delay() függvény egy while, de semmi mást nem csinál, mint hogy azt figyeli, hogy lejárt-e az idő, nem tudod meghatározni, hogy közben mit csináljon. Ha a delay() helyett a while()-ba ágyazod bele azt a vizsgálatot, hogy lejárt-e az idő és hogy sikerült-e a jó kódot beírnod, akkor pont azt éred el, ami a célod (és remélhetőleg megérted az állapotgépek működését).
A BlinkWithoutDelay pontosan ezt demonstrálja, csak ott egyetlen feltétel van (letelt-e az idő), és egyetlen állapotot vált (világít-e a led).

Előzmény: Gergö86 (3444)
Prof Creative Commons License 2018.10.08 0 0 3447

Hali,

Attól, hogy elébe löksz egy készre gyártott megoldást és ebből úgy-ahogy összetálok valamit, ami vagy működik, vagy nem működik, nem leszünk előrébb.

Előzmény: tibi-d (3445)
Gergö86 Creative Commons License 2018.10.07 0 0 3446

Szia!

Köszi a segítséget, elég kínai, de utánanézek. :)

Előzmény: tibi-d (3445)
tibi-d Creative Commons License 2018.10.07 0 0 3445

Szia!

A rengeteg lehetőség közül az egyik:

Készítesz egy timerinterruptot (TimerOne library), ami a beállított időközönként megszakítás generál. Ebben a rutinban egy számlálót növelsz a megfelelő feltételek teljesülése esetén. Ha a számláló elérte a beállított értéket, akkor a kimenetet(ket) vezérelheted ahogy szeretnéd. Közben a program fut tovább a köztes időben.

 

Előzmény: Gergö86 (3444)
Gergö86 Creative Commons License 2018.10.07 0 0 3444

Szia köszi Azt már néztem de nem tudom értelmezni sajnos kb 0 előképzettséggel sikerült összeraktam egy működő rendszert tudom hogy tele van hibával de működik  :)

 

Ahogy írtam Nem ez a valós program azért írtam le ezt mert arra lenne szükségem hogy valaki megírja hogy mit írjak a delay helyébe hogy ne álljon le addig

Előzmény: Prof (3443)
Prof Creative Commons License 2018.10.07 0 0 3443

Szia,
Van gáz ebben a kódban rendesen...

A kérdésedre a választ a BlinkWithoutDelay nevű mintaprogramban találod.
Szólj, ha nem megy!

Előzmény: Gergö86 (3442)
Gergö86 Creative Commons License 2018.10.07 0 0 3442

Sziasztok!

 

Lakásriasztó tervezésben szeretnék egy kis segítséget kérni.

Leegyszerűsítve, ott akadtam el, (már persze az elején) :) hogy amikor hazamegyek, kinyitom a bej.ajtót, szükségem lenne 30mp-re,amíg a kártyám hozzáérintem az RFID-hez. Persze ez delay-el nem megy,mert addig áll a progi.

a saját kódom, kicsit bonyolult,mert GSM,RF,RFID,MP3, minden van benne, amúgy működik,,csak  ez a delay a gond.

Itt egy egyszerűbb kód, segítene valaki átírni?

Köszönöm!

 

 

boolean alarm=true;  // kezdéskor aktív
boolean ido=false;  
boolean idolejart=false;


int sensor         = 3;      // bejárati ajtó érzékelő
int nyomogomb = 4;   // legyen most ez egy sima monentary button amivel aktiválom/deaktiválom
int szirena         = 5;     // ez hozza müködébe a szirénát

 void setup()
{             
  pinMode(sensor,      INPUT);       
  pinMode(nyomogomb,   INPUT);              
  pinMode(szirena,     OUTPUT);              
 
 digitalWrite(sensor,   HIGH);
 digitalWrite(nyomogomb, HIGH);
 digitalWrite(szirena,  HIGH);
}

 void loop()  {

int ajtonyitas=digitalRead(sensor);
int gombnyomas=digitalRead(nyomogomb);

if (ido==true)
{
  delay(30000); //30 mp, amíg deaktiválom ( na ez ani nemjo, ide kéne vmi más...)
  idolejart==true;
}




if (alarm==true && (ajtonyitas ==LOW) )  //ha nyilik az ajtó
 {
 ido==true;
 }
 
if (ido==true && (gombnyomas==LOW) )     //ha megnyomom a gombot
 {
 alarm=false;                            //deaktiválja
 }

if (alarm==true && (idolejart==true) )
{
 digitalWrite(szirena, LOW);               //bekapcsolja a szirénát
 }

 }

 


 

Prof Creative Commons License 2018.10.07 0 0 3441

Szia,

Jó lenne, ha ez ilyen egyszerű lenne.

Ha pénzt ad érte, az már eleve kereskedelmi forgalomba hozásnak minősül, ennek megfelelően minden ehhez kapcsolódó kötelezettsének meg kell felelned. Ez alól ki lehet bújni ilyen-olyan megoldásokkal, de mindegyikre egyöntetűen jellemző, hogy gyakorlatilag minden létező közvetlen és közvetett kárért te felelsz, ha galiba történik.

Nyilván valószerűtlen, hogy fog. De ha történik, akkor számolni kell a következményekkel.

 

Előzmény: Alpári Gnác (3440)
Alpári Gnác Creative Commons License 2018.10.05 0 0 3440

Helló!

 

Köszönöm a további információkat!

Magam is arra jutottam, hogy ehhez a készülékhez nem lesz CE-minősítés és kész.

Ha valakinek így is megfelel, az megveszi, akinek nem felel meg, az nem veszi meg.

 

Egy magánlabor minden további nélkül rendelt a napokban pár darabot, pedig ők pontosan ugyanúgy és ugyanarra használják, mint az állami kórház laborja használta volna. Nekik csak az volt fontos, hogy jól használható és olcsó legyen. Máshol nyilván vannak ezeknél erősebb prioritások is...

 

Mivel ez nem sorozatgyártásban készül, hanem nálam a konyha asztalon, a gyártás legfontosabb eszközei a lombfűrész és a tűreszelő, hát vicces lenne erre gyártástechnológiát írni:)

 

A másik téma esetében én is rátaláltam, az abszolút encoderre, de amikor megláttam az árát, rögtön rájöttem, hogy ilyenem se lesz:)

 

Itt azért nem valami rettentő precíz mozgatásra és reprodukcióra van szükség, lényegében ha egy kommersz léptető- vagy szervo motor felbontását tudja, az már bőven elég.

 

A mechanikai rész is persze problémás, de azt nem is vállalnám, azt majd megcsinálja más, ha eljutunk odáig.

 

Köszi.

Előzmény: Prof (3439)
Prof Creative Commons License 2018.10.02 0 0 3439

Szia,

Nem tudom, hogy konkrét választ kaptál-e erre a két felvetett kérdésre, nem olvastam végig a folyamot. Amit el tudok mondani a témában.

 

CE minősítéshez sorozatgyártási eljárással készített mintadarab kell, több. Irreleváns az egyszerűsége, a felhasználási körülmények és az eszköz jellege determinálja, hogy milyen vizsgálati protokollon megy át. Sok ezek közül az eszköz megsemmisülésével jár, tehát a beadott x darab mintadarab közül nem fogsz visszakapni mindent. Épen legalábbis nem. A vizsgálat ára is a protokolloktól függ, alapból százezres nagyságrend, de simán el tud menni sok milliós nagyságrendig.

De.

Nem a vizsgálat lesz a drága, hanem a termék sorozatgyártásra való előkészítése, a megfelelő gyártó megtalálása, a gyártói (és tervezői) minősítések megszerzése, majd az x számú sorozatgyártott (!) próbadarab elkészítése. Ha x = 10, akkor az. Darabonként mondjuk 300 000 forint. Amit később összetörnek, felgyújtanak, árammal szétcsapnak, megfagyasztanak, szétráznak, eláztatnak stb. (Nem egymás után, külön-külön.)

 

A robot tekintetében ez kb. az ipar 4.5 (még nem feltétlen 5.0). Az összes nagy cég fejleszt ilyet. Amire szükséged van/lesz azt abszolút enkódernek hívják. Attól függően, hogy milyen pontosságú mozgást akarsz megvalósítani, különböző felbontású és precizitású enkóderek léteznek, úgy optikai, mint elektromechanikus megoldással (előbbi felbontása azért jóval rosszabb, mint az optikaié). Az már egy egészen komoly mérnöki feladat, hogy ezt hogy oldod meg mechanikusan, kuplungolod a motort, nem adsz rá tartófeszültséget, vagy mint az ipar 5.0 robotok teszik, a nyomatékérzékelők adatai alapján dekódolod a mozgást. És akkor ez még mindig csak a mozgás rögzítése, ott van mögötte a műszaki specifikáció második hulláma, nevezetesen az, hogy milyen abszolút precizitással és milyen ismétlődő precizitással kell visszaadniuk a mozgást.

 

Szép feladat, de igen költséges és igen időigényes hobbi keretek között.

Előzmény: Alpári Gnác (3416)
Vargham Creative Commons License 2018.08.23 0 1 3438

A szabályozás szerint az lesz orvostechnikai eszköz, amit a gyártója annak szán. Az eredeti kérdező szánhatja nem orvostechnikai eszköznek is a specializált számológépét. A kérdés, hogy ebben az esetben el tudja-e adni.

 

Egy példa: Gyárthatsz szike alakú tárgyat.

1. Ha nincs minősítésed az alapanyagról, akkor maximum dísztárgy lehet.

2. Ha van beszállítói igazolásod, hogy nem mérgező az alapnyagod, akkor eladhatod konyhakésnek.

3. Ha van beszállítói alapanyag minősítésed ÉS minősítteted a terméket, hogy megfelel az orvostechnikai készülékekre vonatkozó szabványoknak (sterilizálhatóság, hőmérséklet tűrés, stb), akkor eladhatod orvosi szikének.

Látszik, hogy mindhárom esetben ugyanaz a termék, egyedül a gyártói szándék más.

 

De ez egy szikénél azért egyértelmű. Nem hiszem, hogy bármelyik kórház is vállalná a rizikót, hogy Aliexpressen rendeljen szikét...

A specializált számológép azért jó kérdés, mert miért ne lehetne általános célú segédeszköz, mint a példaként említett számítógép, amit történetesen az egészségügyben használnak.

Jelen esetben a probléma azzal lesz, hogy míg egy általános célú számítógépet, számológépet, mobiltelefont, akármit folyamatosan gyárt a gyártója ÁLTALÁNOS felhasználásra, és mellesleg veszik egészségügyi felhasználásra IS, addig az itt tárgyalt számológép kifejezetten egy adott feladatra, megbízásból készül. Ez innentől pedig inkább jogi téma, mint műszaki. Az eredeti kérdező pedig adja ki trainspotter néven a készüléket, és a leírásban legyen benne, hogy vasúti kocsik HOBBICÉLÚ számolásának segítségét szolgálja. :-)

Előzmény: balage8888 (3437)
balage8888 Creative Commons License 2018.08.22 0 0 3437

Az értelmezésed alapján a papír, a toll, számológép IS megfelel a definíciónak.

 

Egy általános célú nyomógombos számláló (márpedig a tervezett eszköz BÁRMINEK a számlálására alkalmas) "diagnosztikai" szempontból semmiben sem különbözik egy számológéptől.

 

Előzmény: Vargham (3434)
Alpári Gnác Creative Commons License 2018.08.22 0 0 3436

Ez már nézőpont kérdése.

 

Ha akarom, akkor in vitro a mikroszkóp, mert abban történik maga a vizsgálat.

Azt meg te is tudod, hogy lehet úgy pergésmentesíteni, hogy ne számoljon tévesen, nem is számol.

Ezeket a vizsgálatokat amúgy szakorvosok végzik, észre veszik, ha duplán sípol, vagy valami baj van.

 

De végül is mindegy, én nem nagyon tudok tenni semmit, amúgy pont ma hívott fel a negyedik közbeszerzési pályázó, hogy ajánlatot kérjen és ez ugyanaz a közbeszerzés.

 

Nem egy drága dolog ez, ha kell nekik, akkor majd megveszik közbeszerzésen kívül, ha nem kell, akkor meg így jártam.

Előzmény: Vargham (3434)
Vargham Creative Commons License 2018.08.22 0 0 3435

"A korhazban hasznalt szamitogep SEM orvostechnikai eszkoz"

Az nem. De a rajta futó diagnosztikai szoftver, a kórelőzmény adatbázis kezelője, stb már az.

Előzmény: balage8888 (3432)
Vargham Creative Commons License 2018.08.22 0 1 3434

Tudja a fene... Hiszen diagnózis felállításához használják.

"Az in vitro diagnosztikai orvostechnikai eszközök (továbbiakban IVD orvostechnikai eszközök) definíciója az in vitro diagnosztikai orvostechnikai eszközökről szóló 8/2003. (III.13.) ESzCsM rendelet 2. § (1) bekezdés a) pontjában került meghatározásra a következők szerint: „minden olyan orvostechnikai eszköz, amely mint reagens, reagens származék, kalibráló, kontrollanyag, reagens készlet, készülék, berendezés, gép vagy rendszer, önmagában vagy más eszközzel együttesen alkalmazva, a gyártó meghatározása szerint emberi szervezetből származó minták – ideértve a vér- vagy szövetadományozást is – in vitro vizsgálatára szolgál kizárólag vagy elsősorban azzal a céllal, hogy információt nyújtson"

Én úgy látom, hogy eszerint a definíció szerint benme van.

 

Mi van, ha az egyik sejttípust számoló nyomógomb pergésmentesítése nem jó, és néha 2-4 darabot is hozzáad egy nyomásra? Ilyenkor ki felelős a téves diagnózisért?

 

Ha a mintát elemző ember papírt, tollat, számológépet vagy egyéb általános célú eszközt használ, akkor az övé a felelősség. De ha te adsz neki egy eszközt, amiben ő megbízik, és vakon használja, akkor szerintem közös lesz a felelősség.

Előzmény: balage8888 (3433)
balage8888 Creative Commons License 2018.08.22 0 1 3433

Itt eleg egyertelmuen le van irva, hogy mi az orvostechnikai eszkiz:

 

https://fogalomtar.aeek.hu/index.php/Orvostechnikai_anyagok_%C3%A9s_eszk%C3%B6z%C3%B6k

 

es

 

https://net.jogtar.hu/jogszabaly?docid=A0900004.EUM&celpara=

 

 

Ezek alapjan egy "szamologep" NEM orvostechnikai eszkoz (mint ahogy az eddig alkalmazott toll, ceruza, papir sem az)

 

 

Előzmény: Vargham (3431)
balage8888 Creative Commons License 2018.08.22 0 0 3432

A korhazban hasznalt szamitogep SEM orvostechnikai eszkoz (mint ahogy meg egy csomo minden, pl. egy zsebszamologep sem...)

Előzmény: Vargham (3429)
Vargham Creative Commons License 2018.08.22 0 0 3431

"Én ilyen esetekben, vagy elemről, vagy CE jellel ellátott külső adapterről működtetem a masinákat."

Szerintem ez orvostechnikai eszköz esetén kevés.

Előzmény: tibi-d (3430)
tibi-d Creative Commons License 2018.08.22 0 1 3430

Szia!

Úgy tudom, hogy ha a szerkezet törpefeszültségről működik, akkor nem kell bevizsgáltatni a készüléket. Én ilyen esetekben, vagy elemről, vagy CE jellel ellátott külső adapterről működtetem a masinákat. Az anyagi ellenértéket, meg úgy is el lehet bartelezni, hogy kiszámolod mennyit ér meg neked a kütyük előállítása. Keresel egy olyan terméket, amit úgy is meg szeretnél venni. Ezt megveteted a közbeszerzési eljárás keretében. A készüléket egyszerűen "elcseréled" az általad gyártott eszközökre. Az sem gond, ha leltárba kell venni, legfeljebb a leltár idejére visszaviszed bemutatni.

Előzmény: Alpári Gnác (3428)
Vargham Creative Commons License 2018.08.22 0 0 3429

Diagnózis felállításához használják -> orvostechnikai eszköz. Abból viszont valószínűleg a legalacsonyabb kategória.

Előzmény: Alpári Gnác (3428)
Alpári Gnác Creative Commons License 2018.08.22 0 0 3428

Hogyne.

 

Ez egy sajtszámláló kvalitatív vérkép meghatározásához.

 

Ez a gyakorlatban általában úgy történik, hogy beteszi az illető a kenetet a mikroszkóp alá és ide-oda tekergeti a tárgylemezt egy meghatározott útvonal szerint és számolja a sejteket, mert megismeri őket.

Amit felismert, ahhoz húz egy papírra egy strigulát, aztán megy tovább.

Pontosan 100 db sejtet kell megszámolnia és 10-féle ilyen sejt van, a végén amelyik sejtnél ahány strigula van, annyi százalék az adott sejt előfordulása és ez maga a lelet.

 

Ha ki kell néznie közben a mikroszkópból, akkor esetleg nem tudja, hol tartott és egy sejtet kétszer is megszámol, ami nem jó.

Meg azt is tudnia kell, mikor éri el a 100-at.

Persze aki profi, annak ez hellyel-közzel megy, de azért nem mondható barátságos eljárásnak.

 

Van erre automata pár millióért, az megcsinálja ember nélkül, de erre senkinek sincs pénze, legfeljebb a gyógyszergyáraknak.

 

És van egy angol gyártó, aki csinál erre egy a miénkhez hasonló készüléket, csak sokkal kevesebbet tud és az ára 300 GBP körül van.

 

Hát ennek alternatívájaként raktuk mi össze a miénket, működik is évek óta minden hiba nélkül vagy 10-12 darab belőle.

Ez egy kis asztali dobozka, amin ott vannak ergonomikusan elhelyezve a gombok és ezeket tudják nyomkodni, egy 4x20-as LCD-n látszik az összes sejt és az eredmény, 100 db-nál sípol, meg még 1-2 fícsör, roppant bonyolult szerkezet, nyilván nem kell mondanom:)

 

Azt hiszem egyébként, hogy ez egy adminisztratív probléma.

Nem tudom, mire írták ki a közbeszerzést, illetve mire kapják a pénzt, mert lehet, hogy csak orvostechnikai eszközt vehetnek belőle és akkor hiába magyarázok én bármit, ezt nem vehetik meg CE nélkül.

 

Márpedig ehhez olyan nem lesz.

Előzmény: Vargham (3427)
Vargham Creative Commons License 2018.08.22 0 0 3427

Esetleg leírod ide, hogy pontosan mi ez az eszköz? Hátha tudunk segíteni.

Előzmény: Alpári Gnác (3426)
Alpári Gnác Creative Commons License 2018.08.22 0 0 3426

Sajnos nem én döntöm el.

Beszéltem a hölggyel, aki összeállította az eszközök listáját és ő írta ezt elő.

 

Aztán ő is bizonytalan volt, hogy ezt most akkor kivegye-e és ezzel esetleg azt kockáztatja, hogy a többi eszköz beszerzését is elbukják valami ellenőrzés esetén.

 

Na mindegy, meglátjuk, mi lesz.

Előzmény: Vargham (3425)
Vargham Creative Commons License 2018.08.22 0 0 3425

"Arra azért kíváncsi lennék, hogy az a golyóstoll, amivel a kütyünk hiányában jelenleg a strigulákat huzigálják egy darab papírra, vajon rendelkezik-e EÜ-szintű CE minősítéssel:)"

Az nem orvosi eszköz, tehát nem kell rá. Ha a te eszközöd sem orvosi eszköz, akkor a törvény szerint arra sem kell. Lehet, hogy elég a saját nyilatkozat a megfelelőségről, mint X kategóriájú elektronikus eszköz. De ezt neked kell tudnod, neked kell eldöntened, hogy a te eszközöd micsoda, mi is az az X.

Előzmény: Alpári Gnác (3424)
Alpári Gnác Creative Commons License 2018.08.21 0 0 3424

A kínai piacterekről rendelt modulokkal nem fogsz tudni CE minősítést szerezni, mert hiányozni fog mellőlük a kötelező, beszállítói tanúsítvány.

 

Ahhoz nem is akarok, az egy teljesen más, hobbi projekt egyelőre.

 

A másik dologgal kapcsolatban köszönöm az észrevételeket, én is nagyjából erre jutottam és arra, hogy ehhez bizony nem lesz CE minősítés. Vagy kell valakinek enélkül, vagy nem.

 

Amúgy az az érdekes, hogy ez lényegében egy asztali számológépnek felel meg.

Beteggel nem érintkezik, de még csak mintával sem, semmilyen informatikai rendszerrel nincs kapcsolatban.

 

Arra azért kíváncsi lennék, hogy az a golyóstoll, amivel a kütyünk hiányában jelenleg a strigulákat huzigálják egy darab papírra, vajon rendelkezik-e EÜ-szintű CE minősítéssel:)

Előzmény: Vargham (3423)
Vargham Creative Commons License 2018.08.21 0 0 3423

"Rendeltem egy ilyet"

A kínai piacterekről rendelt modulokkal nem fogsz tudni CE minősítést szerezni, mert hiányozni fog mellőlük a kötelező, beszállítói tanúsítvány. Lehet kínai beszállítód, de előre le kell velük levelezni, hogy milyen tanúsítványokkal rendelkeznek. Lehetőleg küldjék el előre. Azt is számold bele, hogy így te leszel az adott komonens importőre, és ennek van VÁM + ÁFA terhe is. Kell tudnod kérni a kínai partnertől számlát az itthoni adóelszámoláshoz, stb.

Előzmény: Alpári Gnác (3416)
Vargham Creative Commons License 2018.08.21 0 0 3422

"Hát ja, ezt sajnos orvosi laborban használják."

Attól még egyáltalán nem biztos, hogy orvosi eszköz. És ha nem az, akkor nem kell CE.

 

Ha viszont kell, akkor szükséged lesz egy tanúsított minőségbiztosítási rendszerre, pl ISO 9001. Ezután a ISO 14971:2007 Medical devices -- Application of risk management to medical devices szabvány alapján meghatározod azt, hogy az eszközöd milyen problémákat tud okozni, és ezeknek milyen az előfordulási valószínűsége. Ebből kijön, hogy milyen osztályba kell sorolni. Egy beültethető elektronikára sokkal szigorúbb szabályok vonatkoznak, mint például egy nyomógombos reflex idő mérőre. Mindent folyamatot dokumentálsz. Felhasználói igények felmérése, tervek, tervek változása!, klinikai tesztek eredménye, stb.

Amennyiben szoftvert is tartalmaz a készülék, úgy alkalmazni kell a fejlesztése során a IEC 62304:2006 Medical device software -- Software life cycle processes szabványt. Ez hasonló, mint az előbbi, tehát be kell azonosítani a szoftver modulokat és almodulokat, melyik milyen kárt tud okozni, és te ezt hogyan tudod detektálni, illetve megelőzni. Szoftver esetében viszont nincs előfordulási valószínűség, minden hibát 100% valószínűséggel kell számításba venni! El kell különíteni a más gyártótól származó modulokat (SOUP), és kezelni kell az álatluk okozható veszélyhelyzeteket. Szintén dokumentálni kell minden folyamatot, a tervezéstől, a validáláson át a unit és system tesztig, a sikeres és sikertelen eseteket is, valamint a design változásait is. Itt is vannak osztályok, minél szigorúbb osztályba esik, annál többet kell dokumentálni.

Orvosi eszköz esetén nem lehetséges gyártói nyilatkozattal CE papírt kiadni, mindenképpen szükség van független labormérésre is. Ebben van EMI mérés, ESD teszt +-15 kV érintéssel, 80-6000 MHz közötti besugárzás 10 V/m horizontálisan és vertikálisan (kórházban, fixen telepített eszköznél 3 V/m). Ha 1,5 méternél hosszabb a tápvezeték akkor megint plusz szabályok, és ha 220 Voltról működik, akkor megint. A 220 Voltos működés esetén érdemes beszerezni tanúsítvánnyal egy 220 Volt 5 Volt tápegységet, és akkor le van ról a gond. Ez drágább lesz, mint a sima, de olcsóbb, mintha te magad akarnád minősíttetni.

Előzmény: Alpári Gnác (3421)
Alpári Gnác Creative Commons License 2018.08.20 0 0 3421

Hát ja, ezt sajnos orvosi laborban használják.

 

Az elmozdulásmérős infot is köszönöm.

Az a baj, hogy ahogy nézem az ecoderes motorok nem drágábbak, hanem iszonyú drágák.

Mindegy, ez a szenzor fillérekbe kerül, majd megnézem, mit csinál, ha nem jó, legfeljebb kidobom.

Előzmény: Vargham (3420)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!