B4R Library IR send and receive

Discussion in 'B4R Libraries' started by Erel, Jul 28, 2016.

  1. Erel

    Erel Administrator Staff Member Licensed User

    rIRremote (Arduino) is based on IRremote open source project: https://github.com/z3t0/Arduino-IRremote
    rIRremoteESP8266 (ESP8266) is based on IRremoteESP8266 open source project: https://github.com/markszabo/IRremoteESP8266

    These libraries allow receiving IR signals with a IR receiver module and transmitting signals with an IR led.

    The two libraries are mostly identical.

    Receiving signals:
    Code:
    Sub Process_Globals
       
    Public Serial1 As Serial
       
    Private ir As IrReceive
    End Sub

    Private Sub AppStart
       Serial1.Initialize(
    115200)
       
    Log("AppStart")
       ir.Initialize(
    6"ir_Decoded"'receiver is connected to pin 6, GND and 5v (or 3.3v on ESP8266)
       ir.Enable
    End Sub


    Private Sub ir_Decoded (Result As IrResult)
       
    Log("result: ", Result.DecodeType, ", ", Result.Value)
    End Sub
    Sending signals:
    Code:
    Sub Process_Globals
       
    Public Serial1 As Serial
       
    Private irsend As IrSend
       
    Private timer1 As Timer
    End Sub

    Private Sub AppStart
       Serial1.Initialize(
    115200)
       
    Log("AppStart")
       irsend.Enable(
    38'frequency = 38khz
       timer1.Initialize("timer1_Tick"500)
       timer1.Enabled = 
    True
    End Sub

    Sub Timer1_Tick
       
    Dim m As UInt = Bit.And(Millis, 0xfff'get 12 bits
       Log("sending: ", m)
       irsend.SendRC5(m, 
    12)
    End Sub
    On ESP8266 the Enable method includes another parameter for the pin number.
    On Arduino the pin is set in the library:
    Arduino Mega 9 and 3 on other Arduino models.

    The transmitting led should be connected with a 100 ohm resistor.

    I'm not sure why, but in my tests the transmitting led range was very short (a few centimeters).
     

    Attached Files:

    Last edited: Jul 28, 2016
    Peter Simpson, derez, Beja and 2 others like this.
  2. Filippo

    Filippo Expert Licensed User

    Incredibly, yesterday you spoke of it and today the library is already finished. o_O
     
  3. woniol

    woniol Active Member Licensed User

    Hi,
    what kind of IRReceiver should be used with this lib.
    Was it tested with ESP8266 ?
    Is the pin number in Initialize simply 6 or pin.D6, when receiver output is connected to physical pin 6?
    Code:
    ir.Initialize(6"ir_Decoded"'receiver is connected to pin 6, GND and 5v (or 3.3v on ESP8266)
     
    Last edited: Sep 15, 2016
  4. Erel

    Erel Administrator Staff Member Licensed User

    It should work with any ir sensor.

    rIRremoteESP8266 was tested with ESP8266 board.
     
    Hypnos likes this.
  5. derez

    derez Expert Licensed User

    I don't understand. I have successfully decoded a remote signal - NEC (1) with value 551489775.
    Now I want to send it by the ESP instead of the remote. How do I tell the application what to send ? I use sendNEC but what is m built of ?

    I have another remote (the AC control !) which gives an unknown result and the values are inconsistent, so it needs a raw data to be logged and then sent. How can I do that ?

    Try to point the top of the led to the appliance.
     
    Last edited: Sep 15, 2016
  6. woniol

    woniol Active Member Licensed User

    Can you show the schematics you used to connect the IRReceiver to ESP?
     
  7. derez

    derez Expert Licensed User

    Very simple. I use a tsop1736 as the IR sensor.
    upload_2016-9-15_13-56-11.png

    The central pin (+) goes to 3.3v of the ESP, the pin close to it is GND (-) and goes to G on the ESP, the signal pin (>) goes to any pin, I chose pin 6 and it is initialised like this: ir.Initialize(d1.D6, "ir_Decoded")
     
  8. Erel

    Erel Administrator Staff Member Licensed User

    @derez please start a new thread for these questions.
     
  9. derez

    derez Expert Licensed User

    :)Did it
     
  10. GanjaKyp

    GanjaKyp Member

    Can this library work with YS-IRTM? https://forum.arduino.cc/index.php?topic=359707.msg2861077#msg2861077

    http://data:image/jpeg;base64,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[​IMG]
     
  11. Khairy Abdelhamid

    Khairy Abdelhamid Member Licensed User

    Hi,
    I run the receiver, it seem work well.
    The receiver log these data with applying certain remote:
    Result: 3, 542988455
    Result: 3, 4294967295
    Result: 3, 542994575
    Result: 3, 543014975
    Result: 3, 542982335
    Result: 3, 4294967295

    How can i send these data again via transmitter code ?? ( the "4294967295" is repeater code )
    also, for return data of "Result.DecodeType" (3 in this example ) , where the table remote name related to number returned ??

    Best regards
     
  12. Erel

    Erel Administrator Staff Member Licensed User

    You can see the constant values in rIRremote.h. 3 is NEC.

    You can send the data with SendNEC.
     
  13. Khairy Abdelhamid

    Khairy Abdelhamid Member Licensed User

    Many Thanks Mr. Erel.
    I run the code for receiver to get the codes for different remote control.

    The receiver return the following:

    'Remote of Satellite Receiver
    'Result: 3, 542988455
    'Result: 3, 542994575
    'Result: 3, 543014975
    'Result: 3, 542982335
    'Result: 3, 4294967295

    'Remote of TVBox
    'result: 3, 867715255
    'result: 3, 867698935
    'result: 3, 4294967295

    I send the codes like :
    m = 867715255 'm = 867698935
    irsend.SendNEC (m, 32)

    The transmitter work wit with TVBox,
    while not work with any code with TV (i.e. make m = 542988455, or m = 542994575 )

    I have questions:
    - it is normal of both remotes are NEC and one of them work and other not work ?
    - how can the code of the second remote work ?
    - need program for Un-known remote.

    best regards
     
  14. Erel

    Erel Administrator Staff Member Licensed User

    It is possible that there is more than once version of NEC and that not all of them are supported. I've wrapped the library, however I'm not deeply familiar with its implementation.
     
  15. GanjaKyp

    GanjaKyp Member

    Can anybody help to test it? It has Tx and Rx pins, how to read and write with this pins?
     
  16. Hypnos

    Hypnos Active Member Licensed User

    Hi All,

    I use this IR Transmitter (show on the photo), what arduino pin I should connect for the DAT?
    Thanks!

    IMG_7916.JPG
     
  17. Hypnos

    Hypnos Active Member Licensed User

    I found out the answer, the DAT need to connect to PIN3
     
  18. santook

    santook Member

    GanjaKyp
    Your module is a microcontroller module, it provides infrared decoding ability, and use the serial communication module, you should consult the manufacturer to determine the serial communication protocol, and communication is performed using Serial, it connects 0 and 1 pin Arduino (RXD, TXD), and they need to cross connect.
    Using the library provided on this page allows you to directly drive infrared emitting and receiving diodes, so that the cost is lower, but also simpler.
     
  19. Beja

    Beja Expert Licensed User

    Hi guys,
    Any completed sch example for the above rich information?

    Thanks in advance
     
  20. Hypnos

    Hypnos Active Member Licensed User

    Hi,

    Anyone tried to use this library send to JVC TV? I use the following command but the TV never response. Thanks!

    irsend.SendJVC(49384,16,False)
     
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice