• Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    1. Home
    2. Pavel
    P
    • Profile
    • Following 1
    • Followers 0
    • Topics 1
    • Posts 4
    • Best 0
    • Controversial 0
    • Groups 0

    Pavel

    @Pavel

    0
    Reputation
    351
    Profile views
    4
    Posts
    0
    Followers
    1
    Following
    Joined Last Online

    Pavel Unfollow Follow

    Latest posts made by Pavel

    • RE: Digital Input

      Chtěl bych monitorovat pomocí digitálních vstupů stav jednoho zařízení.Výstupem zařízení jsou bezpotenciálové kontakty relé.Zkouším použít callback z pigpio (v evoku callback není).Funguje dobře, ale pokud chci místo vypsání aktuálního stavu na displej zavolat nějakou funkci (třeba odeslat email, nebo uložit do google sheets), začnou se mi vypisovat postupně stavy všech vstupů od 1 do 12. Vypadá to takhle:

      import pigpio, time, datetime, gspread

      #Google account
      email = 'xxz@gmail.com'
      password = 'xyz'
      spreadsheet = 'Log_Unipi'

      pi1 = pigpio.pi()
      time_stamp = time.time()

      emzprava = [
      "stav cilso 1",
      "stav cilso 2",
      "stav cilso 3",
      "stav cilso 4",
      "stav cilso 5",
      "stav cilso 6",
      "stav cilso 7",
      "stav cilso 8",
      "stav cilso 9",
      "stav cilso 10",
      "stav cilso 11",
      "stav cilso 12"]
      stav = ["zacatek udalosti v:", "konec udalosti v:"]
      idnrimp = [4,17,27,23,22,24,11,7,8,9,25,10]

      def debfc(gpio, level, tick):
      global time_stamp, i, time_now
      time_now = time.time()
      if (time_now - time_stamp) >= 0.5:
      i = datetime.datetime.now()
      i = '{:%Y-%m-%d %H:%M:%S}'.format(i)
      idf(gpio)
      msg(gpio, level)
      co = emzprava[idxnr]
      st = stav[level]
      logUpi(co, st, i)
      time_stamp = time_now

      def idf(gpio):
      global idxnr
      idxnr = idnrimp.index(gpio)

      def msg(gpio, level):
      print(emzprava[idxnr]),(","),(stav[level]),( i)

      def logUpi(co, st, i):
      gc = gspread.login(email,password)
      worksheet = gc.open(spreadsheet).sheet1
      values = [co,st,i]
      worksheet.append_row(values)

      cb1hi = pi1.callback(4, pigpio.RISING_EDGE, debfc)
      cb1lo = pi1.callback(4, pigpio.FALLING_EDGE, debfc)
      cb2hi = pi1.callback(17, pigpio.RISING_EDGE, debfc)
      cb2lo = pi1.callback(17, pigpio.FALLING_EDGE, debfc)
      .
      .
      .

      no není to můj denní chléb, ale přesto nevím proč to nefunguje.
      Poradí někdo ?

      posted in General Discussion
      P
      Pavel
    • Digital Input

      Chtěl bych monitorovat pomocí digitálních vstupů stav jednoho zařízení.Výstupem zařízení jsou bezpotenciálové kontakty relé.Zkouším použít callback z pigpio (v evoku callback není).Funguje dobře, ale pokud chci místo vypsání aktuálního stavu na displej zavolat nějakou funkci (třeba odeslat email, nebo uložit do google sheets), začnou se mi vypisovat postupně stavy všech vstupů od 1 do 12. Vypadá to takhle:

      import pigpio, time, datetime, gspread

      #Google account
      email = 'xxz@gmail.com'
      password = 'xyz'
      spreadsheet = 'Log_Unipi'

      pi1 = pigpio.pi()
      time_stamp = time.time()

      emzprava = [
      "stav cilso 1",
      "stav cilso 2",
      "stav cilso 3",
      "stav cilso 4",
      "stav cilso 5",
      "stav cilso 6",
      "stav cilso 7",
      "stav cilso 8",
      "stav cilso 9",
      "stav cilso 10",
      "stav cilso 11",
      "stav cilso 12"]
      stav = ["zacatek udalosti v:", "konec udalosti v:"]
      idnrimp = [4,17,27,23,22,24,11,7,8,9,25,10]

      def debfc(gpio, level, tick):
      global time_stamp, i, time_now
      time_now = time.time()
      if (time_now - time_stamp) >= 0.5:
      i = datetime.datetime.now()
      i = '{:%Y-%m-%d %H:%M:%S}'.format(i)
      idf(gpio)
      msg(gpio, level)
      co = emzprava[idxnr]
      st = stav[level]
      logUpi(co, st, i)
      time_stamp = time_now

      def idf(gpio):
      global idxnr
      idxnr = idnrimp.index(gpio)

      def msg(gpio, level):
      print(emzprava[idxnr]),(","),(stav[level]),( i)

      def logUpi(co, st, i):
      gc = gspread.login(email,password)
      worksheet = gc.open(spreadsheet).sheet1
      values = [co,st,i]
      worksheet.append_row(values)

      cb1hi = pi1.callback(4, pigpio.RISING_EDGE, debfc)
      cb1lo = pi1.callback(4, pigpio.FALLING_EDGE, debfc)
      cb2hi = pi1.callback(17, pigpio.RISING_EDGE, debfc)
      cb2lo = pi1.callback(17, pigpio.FALLING_EDGE, debfc)
      .
      .
      .

      no není to můj denní chléb, ale přesto nevím proč to nefunguje.
      Poradí někdo ?

      posted in General Discussion
      P
      Pavel