#171
HTML-код
- Опубликовано: 24 ноя 2017
- Everybody talks about Bluetooth and Wi-Fi. But one heavily used technology is often forgotten: Infrared. Today we will remember this technology and bring it into the today's world of microcontrollers like ESP32 and ESP8266 and to technologies like MQTT and node-red. And as usual, we will dig a little into the basics.
Today
- We will use infrared rays to detect objects
- And find a way to make the detector immune against interference from daylight
- We will use standard photodiodes as well as IR receivers to detect IR signals and see the difference
- Then we will use IR instead of LoRa or Wi-Fi to transport information over the air
- We will enable an Arduino UNO to receive, learn, and send IR codes
- We will port the IR library to the ESP32 and implement MQTT
- Finally, we will build a device which can control our home appliances like TVs or Lights
- This device should be able to receive signals from an IR remote controller and transfer them via MQTT to Node-Red
Links:
Sketches: github.com/SensorsIot/Definit...
Video about Phototransistors & -diodes: • Photodiode vs Phototra...
IR code databases: irdb.tk/ , github.com/probonopd/irdb
IR Receivers: s.click.aliexpress.com/e/3vnAUB6
IR Sensor: bit.ly/2BdXEEJ
IR LED & Photodiodes: bit.ly/2BcRd4G
IR LED & Photodiodes: s.click.aliexpress.com/e/rNnmIyZ
Reflective IR sensors: s.click.aliexpress.com/e/iYNBaUn
ESP32: bit.ly/2sOMR3E
Arduino UNO Clone: bit.ly/2tJE9Af
Interesting ESP8266 IR/MQTT project: github.com/enc-X/mqtt-ir-tran...
Supporting Material and Blog Page: www.sensorsiot.org
Github: www.github.com/sensorsiot
If you want to support the channel and buy from Banggood use this link to start your shopping: bit.ly/2jAQEf4 (no additional charges for you)
Official Wemos Store: s.click.aliexpress.com/e/jUzBiIq
profile.php?...
/ spiessa
www.instructables.com/member/...
Please do not try to Email me or invite me on LinkedIn. These communication channels are reserved for my main job
If you want to buy me a coffee: www.paypal.me/AndreasSpiess Наука
less than 24 hours and I'm back on this channel again. I just discovered videos of people reversing their remote's using a logic analyzer. So first stop here is learning this and and back on my old standby channel. Andreas really is a treasure to this community.
Thank you for your kind words!
Good to hear our vblogger sharing his lifetime wisdom of having a happy & long lasting marriage.
:-))
One of those rare useful (very useful) content on RUclips. Thank you sir
You are welcome!
I found your channel via a comment you left at EEVblog and I'm glad I did. You have a new subscriber.
Welcome to the channel!
Sir, thank you dearly for all your tutorials. I am new to ESP32 and have gained so much watching. I was needing to move IR receive to core 0 to get the update rate I needed. Would never have made it without your dual core video and your updated IR library. Thank you so much!
You are welcome!
@@AndreasSpiess Sir, I hope you would provide some additional guidance. I am having trouble getting a send. I have reviewed your git hub files and responses below. I just cant identify what output pin you are using for irsend? Is this GPIO3? There are several boards as you know. I bought an Adafruit HUZZAH 32 not a dev board. My mistake. The Adafruit board does not have GPIO3 wired out. Scouring through the library I can find the command identifying output pin assignments. Thank you for any assistance.
@@AndreasSpiess Sir, thank you again for all your wonderful vids. I am sorry I bothered you, however, I did find the command. Opening up IRremote.h in Visual Studio made it easier to locate the line is 262 - byte timerPwmPin=15. I changed the value from 3 to 15. 15 is another PWM pin on the ESP32. Once again, thank you. I really love this little chip.
Sir, like you I like to keep a happy wife. This IRsend was the final piece in an automated TV volume level mod I have been making. My wife hates the volume changing when commercials come on. I have made a hack for her using a mic input to a PID loop with time proportional output. I use the IR remote to change the setpoint of the PID. Then I average the mic input to get a smooth sound level reference. The PID adjusts the TV volume based on the setpoint, lowering the volume when commercials come on, or when she yells at me. If you raise or lower the setpoint the volume tracks with it. She is very Happy. Couldn't have done it without your vids.
A very useful and wide sight for who start to explore the IR basics and the IR communications
Glad it was helpful!
I enjoyed this quiet a bit. Very cool.
Since we're talking light, there is a method for discriminating different light sources that you might find helpful:
All light can be polarized. Most people are familiar with polarized light be blocked by orthagonal filters, but, what they forget, is that there's a third level of polarization.
That third level is 'color shifting'.
Color shifting allows you to take one color of light, and turn it into another.
To do this, you take two polarized filters at 90 degrees (such that they block most light coming through them), and simply add a third filter.
The third filter shifts the frequency of light that makes it through the first 2 filterz.
You can then check for color shifting in time with the 3rd filter or check for specific color of light keyed to your receiver/emitter combo.
Interesting! Never heard of this effect!
This episode was especially funny because of your comments about your wife's reactions :) I enjoyed it a lot! .. btw: now I'm building a "longer range" laser beam detector to detect human body movement inside a house with the capability to distinguish direction (2 close beams) and frequency carrier is a great help against various ambient light disruptions. Thanks for another good episode, Andreas.
Good luck with your lasers! If I remember I saw this technology in some action films. But they had more than two lasers there.
Martin Winkelhofer
Did you use the IR TX and TSOP RX?
What was the max range between them?
Are you still using it?
Please, send me some details of this project
Kelvyn.sousa@gmail.com
the best video I found on the youtube!!This is exactly what I needed! And you explain everything perfectly!! It proves also my theory that chanells with moderate number of views and without stupid addverts etc. are the best ones! Like yours!
Thank you!
Yet another amazing video! Interesting project, well organized and explained.
Thank you!
I love your videos Sir. I am looking to make a simple ir blaster to turn on and off a TV and stumbled upon yet another great video from the guy with the Swiss accent. Thanks for the info.
You are welcome!
huge thanks, i searched this for a school project and this video explains every detail
Glad it was helpful!
Wow, what a nice lesson) I haven't seen such for a long time) I love how you do it)
Thank you!
Thanks for your videos Andreas. I enjoy so much watching them
You are welcome!
I love searching YT and seeing you in the results, I know ima get all the answers to questions I did think of, and didn't know to ask.
Indeed. I also use RUclips a lot for learning.
So logically exposing the history of the IR technique development!
:-)
I have been searching for basically this for so long , all my RUclips searches got me no where , only showing me overly simplified, uninformative videos ,the when I'm not looking a day later it recommends me the perfect video when I'm watching a laptop review
Glad you found it!
Amazing! I wanted to do this for a while, but I lacked the material and/or the time to test it
Great video!
Thank you!
You are the best by far. Thank you!!
You are welcome!
Amazing video Andreas, well done
Thank you!
Great video, just what I needed to be able to switch off my TV etc via my Home Automation via MQTT
Thank you!
Exactly the video I was looking for!
:-)
Hope you had a great trip! But today I'm playing with IR and your video was very helpful again! Thank you Andreas!!! Have a great week!
Unfortunately, the Pamir trip was cancelled because it was right at the border to Afghanistan. So Joe Biden was a little too fast for me :-(
@@AndreasSpiess Now that is tooooooo bad! Hope you had a plan B or even plan C! But nice to hear from you! I don't trust some of these "??? countries" where you can disappear and nobody does anything about it! It's safer here or in our country and most Europe also, but going to some parts of the world isn't for me.
My wife and me will do a bicycle trip...
Fantastic explanation and well organized.Im working on a custom remote for my mom who is very old and is getting confused with the overcomplicated remotes. Ill just have on off and a few favorite channels on big buttons. Your resources here and explanation willhelp me save time.
Cool! I am sure she will be proud of her son.
This is so cool, thank you for sharing this video :)
You are welcome!
About the IR-mode for the serial port at 15:00 IRDA is a protocol stack for IR data transfer, similar to bluetooth, but older. This probably switches the serial port into a mode compatible with IRDA lower protocol layers. For starters, have a look at the Wikipedia article.
I think so, too, but did not have the time to explore. And I also needed the higher (protocol layers)
Thanks for the educational video.
You are welcome!
Thank you. Your videos are very useful and interesting.
Glad you like them!
Fantastic. You totally own the "nerd" claim and I love the humour in this one.
:-)
As always a quality video :)
Thank you!
And winner of my first comment on youtube is ANDREAS SPIESS the guy with the swiss accent... thank you for all your great videos!
A few weeks ago I bought during a flashdeal on aliexpress a cheap esp-01 with a relay and ended here on your channel...
30 Years ago when I was building my first cnc router it was really complicated to get all the knowledge together and today we just google...
BTW I remember in one of your videos… problems with a 3D printer....maybe Iˋm the man... we are almost neighbours.
Maybe you send me a short note on FB or Twitter if you live close by. Concerning the 3D printer, I got the good news that my new Prusa should arrive before Christmas...
Andreas Spiess ...I have no FB or twitter, check your mail @aru....
Super video ....Thank you Andreas
You are welcome!
Brilliant. Every helpful. Thank you.
You are welcome!
Nice video, entertaining and informative. 😀
Thanks!
Liked for the information, subbed for the humor.
Welcome aboard the channel!
Swiss humour at its best! And the same for the videos!
Being more or less in the same age bracket, I can't realize how you or Pete Scargill can: buy the things, test them, make developments, write and modify libraries, shot videos, edit them, mantain a blog, mantain a marriage, answer the comments, eat, sleep? , and you are not even retired like the other great bald in Scotland/Spain.
Here our day has 24h. And if not sufficient, we have to work during nights ;-)
Hi @Andreas Spiess, re-watching your videos an idea came in mind, but could not be sure about a thing and wanted to contact you. You're declaring that it's possible to prevent day light from tricking IR receivers. I'm thinking about creating a robotic pan tilt mechanism, which follows only an IR emitter. I mean if not please suggest me some technology. I'm fed up with my motorcycle mirrors change their angles because of the wind. And as I go faster I need to bend my head in order to resist the wind and supply some aerodynamics. This results with the fact of losing my mirror vision. I'm now searching for a technology which will let me to 3d print a pan tilt mechanism to arrange my circle shaped mirrors angle relatively to my heads movement. I do not want to lose my vision in any case. Could IR be this technology? Could you advise me?
Your videos are amazing! It seems like every idea I have for a project I first check your channel and almost always can learn what I need from you.
Are you saying your ESP32 IRremote github branch IRrecord sketch works with the esp32? If so, which pin do you use for the IR LED?
I do not remember the pin. But you see it in the sketch.
Great video!
Thank you!
You save my day. Thanks.
You are welcome!
brother that's a great work ♥
Thanks ✌️
amazing tutorial - though still a lot of IR related questions
Google search is your friend ;-)
Its very useful and funny:) Thank you!
You are welcome!
Oh boy i was looking for this
Glad you found it!
Belgium-Malmedy, 2Dec2019 -- Very clear and fine presentation. I will check your other videos on that IR or Com Subject. Tks as it will be usefull for setting up an application of mine...that i hopefully can fix in Center of our Capital. Best Regards AbM3n.
I hope you will be successful!
Thanks for the video, very advanced =)
You're welcome!
It was very helful. Thank you!
You are welcome!
14:08 "Somebody please explain me women." XD
:-))
Thanks for sharing 😀👍
:-)
very nice !
Thank you!
wie ein schweizer uhrwerk .....
wieder sehr informativ - ich sage mal danke.
Das Uhrwerk ist aus dem Silikon Valley, nur der Inhalt is Schweizerisch ;-)
Thank you for all of your great videos. Very appreciated. I'm using the IRRemote library as described and all is working(Send and Receive). I want to take the values for the remote control I've read and write them to memory using SPIFFS. Since IR is running an ISR, my code bombs when I try to write the remote data to SPIFFS file. I'm struggling to get around this issues. I do not see any methods to terminate the ISR when I'm done reading codes. I'm using Adafruits ESP32 Feather. Any direction would be greatly appreciated. Thanks!
I never use SD cards, so I do not know where the problem is. What if you attach the ISR to a pin which does not move during SD operation? Then no interrupt should trigger.
i love you!! it's work perfectly
:-)
Did you try on nodemcu. cz i get an error
Again an interesting video from Andreas !!
I also am thinking about putting ESP's with IR send and receive (and perhaps also a buzzer and some other sensors) in my house. However if you have several of this IR home automaton interfaces near each other send IR only from one! The devices will receive signals from each other and the logic can become confusing.
There are also much devices who use a IR power toggle code. This requires the home automation system to maintain information about the current state. Or you need to add other sensors (e.g. the power consumption) to check if the device is on or off.
1. As I mention in the video: You have to use an addressing scheme if you want to have several senders. Then, Node-Red can send an MQTT message to each of your senders, one after the other. Or the address is the delay each sender has to wait if it gets the MQTT message till it sends the IR signal...
2. Toggle codes suck. I do not like them at all because of the problems you describe.
Dude, you rock!
:-)
Awesome
Brilliant!!!
Thank you!
Very well explained! Thank you so much! Have you uploaded the code for your own code what you are talking about at 13:50 made on attiny85? If yes please let me know, im working on project where im facing same issue with other remote interfarrence
I do not think so. However it was very simple. Just create a few 1 and 0 and check if the receiver gets the same sequence.
Dear Andres thank you for the comprehensive explanations.
I am trying to use the IRSendDemo with ESP32 (WROOM-32 1313) and not sure how to interpret the comment
" An IR LED must be connected to Arduino PWM pin 3", pin 3 is RX0 in this board pinout.
Should it be TX0 (sadly not working), what is the proper pin to connect in order to send IR codes using your
examples (or the ESP32 Compatible examples from your github) ?
Thanks.
In the sketch the pins are defined as follows: int RECV_PIN = 14;int SEND_PIN = 5; No pin 3
Hi - I just discovered this video. Fabulous! And you touch upon EXACTLY a little project I want to attempt myself; a CW keyer with an infrared link to the radio transceiver. The Is there much more circuitry required to turn the 'hi/lo' from the IR receiver into something that will key the rig? Any pointers much appreciated. *****It's the next day, and I only just realised that if I want to put the IR link between the paddle and the keyer (or rig with built-in keyer) I need TWO IR links; one for dits and one for dahs. So as well as, say, the 'standard' 38kHz link, do I need to choose the other link's frequency as far from 38kHz as possible or can I use any other freq than 38kHz? Thanks
You could code the IR signal (one code for the left and another code for the right paddle. You get IR receivers for other frequencies. But I do not know how sharp their filters are.
Another excellent video!
Out of interest, as you seem to fix a lot of libraries, do you tend to send pull requests back to the original repository with the fix?
I often want to use a thing you've fixed but don't know if the original repository (which quite often has moved forward since your video) includes your fixes.
So far I did not send it back. Maybe I will do it with this library.
You have a great way of explaining things. I have IR control for TV and camera from ESP32. However I would to move from the Arduino IDE to the ESP-IDF as I want to use FreeRTOS.Any hints on the best way to use the IR code in the Arduino framework to ESP-IDF. Thanks again.
You can use RTOS also in the Arduino framework. I did a video about that.
Would you please make a video of the M5Stack? It's an ESP32 with battery and many expansions. There is a 1W speaker connected to the IIS-port of the esp32.
I am wondering what you could do with these features...
Maybe. One is in the mail...
Hello Andreas, I've been thinking about if it's possible to add some kind of conduit as a repeater to send IR signals (say something like the way optic fibers work)
I am not sure if it works with normal IR. Usually, they use laser diodes which is a different light source.
finally no noise in hearphones !!! :-)
thank you
Thanks for your feedback. I did not change anything. Hopefully, it will stay like that...
I was thinking you were going to go for a good old microswitch... but at least the story had a happy ending :)
:-)
Very nice. Would it be also possible to send Analog values via IR over short distances (e.g. 3cm).
Yes. But you have to convert them into digital values and back.
so if I understand those diagrams right (11:55) - every signal I send from my remote control is like delayed about 0,08 sec ? I mean when I keep pressing the same button for example.
The receiver for sure has to wait for the whole transmission plus the time to decode teh signal.
How to convert raw codes to json format too send through mqtt
Any videos in the works for building a bigger longer distance IR array? Maybe a water tight enclosure to be mounted on the front of a vehicle?
So far I have no plans for that. But you never know ;-)
Another fantastic vlog Andreas. I don't know how you find the time mate.
I built the sensor last year...
Hi Andreas, I have 4 sets of IR transmitters & receivers on my vacuum robot out of which 2 transmitters have gone bad (2 of them are not emitting the light when I watched the video recording as the light was not visible to bare eyes, the other 2 can be seen glowing once in a while in the video recording). How to determine if the IR transmitter has gone bad or if there is something wrong on the mother board. If I want to replace only the IR transmitters, how to find out what specification transmitters are used on the device originally. Thanks in advance for your help. I could share photos or videos, but I guess I cannot do that here.
I have no idea to find a replacement :-( To find out if the transmitters work, I would measure if they get a signal (with an oscilloscope). If they get a signal and do not emit IR, the error most probably is with the diode. Otherwise probably on the mainboard. Be sure they are emitters and not receivers.
@Andreas did you have to do anything to get decent range from your emitters? I've read most emitters in Remotes are "over driven", but I'm not to sure if that can be done with only 3.3V coming from an ESP*
This video was not about the distance, it was more about the logic to drive the LEDs. These microcontrollers only supply very little current ( a few mA) and if you want max power you have to add transistors to amplify the signals. I also do not know of high power IR diodes, but I never searched for them.
Andreas Spiess about logic not about distance is fair enough... folks testing IR may think (as I did when first trying IR stuff) that the emitters are not reproducing codes correctly when in fact they are only effective inside about 30 cm driven by 3.3V ESP* pins, also looking with a phone camera is a good way to verify the emitters are doing something. :)
You are right. My setup worked over a distance of about one meter (from my ESP to the LED lamp above the bench. But it heavily depends on the quality of the receiver.
this guy is killing me ,youre very funny
How is the Arduino connected to the ESP32? Looks like ir devices are first wired to Arduino but later when MQTT is on ESP are the ir's on ESP? Thank you.
The ESP32 is used instead of the Arduino. So there is no need for a connection.
Hello Andreas, thank you for this vídeo, could be share the node-red flow you use in this tutorial please. Thanks again.
Should be on Github by now
Thank you Andreas!
Hey, I am trying to build an IR spectrometer inexpensively. I am new to arduino though. The basic principle is that the diode shall emit IR radiation and then the sample to be analyzed would absorb a specific wavelength of the radiation (characteristic for different molecules). Is it possible to use this detector for this analysis (wavelength instead of it working like an ON/OFF switch and not working on detection of the intensity of IR). If not, can you please point me in the right direction??
I made a video about a spectrometer
Yup like the sega pda and the casio watch you can use IR to text or send data
Cool!
In cases where propagation time is important, what's the best I can expect to see in a low to high transition at the transmitter to a low to high at the receiver output. No mechanical relay, to slow.
Propagation of light is 300'000km/sec. More important is the protocol and the transmission speed you use. I did not do measurements for that purpose. Maybe google knows?
I have a lamp with ir motion sensor which doesn't work anymore, I'm wondering if it could get" fried"
I do not know :-(
can we ask questions?
interesting subscribed
Welcome to the channel!
Great video!
On another subject, I have been searching RUclips and the web for three days to find any tutorial on sim800l with esp8266, but unfortunately I couldn't find any complete tutorial. Except for one video but it is in Russian. Can we expect a video on this subject in the near future?
I have no plans to cover 3G technology anymore. I wait for affordable 4G technology. But I thought, the SIM800 is a widely used chip and you should find a lot of info on the net...
Very interesting ! I was just thinking on how to add it sending capabilities to a sonoff th10 or 16 in order to power control and send ir commands to some hifi équipement:-)
:-)
I did a very similar project last week but I used LIRC directly in my Raspberry Pi that runs MQTT and Node Red. I was also able to control remote devices using Alexa.
BTW: what's the site with the IR codes database? I have a Sony stereo w/o its remote and I'd like to control it. Thanks!
I added the two services I know in the video description
But after you decode the IR codes of the remote controller you want to copy, you also need to choose a specific IR send method (manufactory dependent) to send out the codes.
Correct?
Yes
Andreas an excellent video and well researched. Incredible quick turnaround on bringing something insightful and new to video.
Did you determine the range of an IR beam transmits reliably to a receiver and did you discover what the maximum reliable distance for reflective transmission was, ie like the TV cabinet setup? I'm considering external passive IR with fresnel lense as they are low power, but your video has given me a few other ideas. Again, brilliant work :)
I think this is more an optical question and I do not know a lot about lenses. In my lab, the IR detector chips were very sensitive. I do not know how they would work on the outside with bright sun. I assume, they would go into saturation quickly and would no more able to detect the small signals of an LED.
Mmm, yes I expect the IR chips will be saturated by natural daylight IR and yes an optical issue. Thank you for your response.
great video thank you! maybe use a limit switch for the tv door
Also a good possibility.
Great humor 🙂
Thanks!
So if we wanted to send ir signals and distinguish between different sensors sending them we would not be able to accomplish this with the ne555?
I do not think that an NE555 will be able to create those coded signals
Thank you!
Hello, how to capture raw data of AC remote and send it to the device(AC) using that data, I am facing problem regarding buffer so I increase the size of buffer but afterwards it is printing continuously on serial monitor.
Unfortunately I cannot do remote debugging :-(
Dear Andreas, I liked your videos a lot. I'm trying to use ESP32 DOIT DEVKIT v1 to controll AC (Sinclair), my plan is to send RAW codes to the AC. I tested this on ESP8266 where I can select GPIO pins. How can I set GPIO pin for ESP32. Do I have to change something in boarddefs.h, irSend.CPP, irremote.h ?
On my PCB design I put GPIO pin 12 for the IR Send. How can I set this PIN in your library ?
Better use this library: github.com/z3t0/Arduino-IRremote
@@AndreasSpiess Thank you for your answer
Funniest video of yours! I showed it even to my wife :)
:-)
Gracias ☺️
De nada.
thanks for share, i got question about lora,
i want to make group street lights like street 1, street 2 and is that possible to add street 1 group? i just think i should make them devid same id and when i send deviceid=street1, same lights will rise
is that possible? @andreas spiess
Do you talk about LoRa or LoRaWAN? If you just use the LoRa protocol, you can use the Radiohead library to create an addressing scheme. If you use LoraWAN each node has its own address. But you are not allowed to send too many commands. LoRaWAN is designed to get sensor data, not to send commands.
What sensor do I use to sense through thin paper? The same? but with higher sensitivity? Have you tried?
Radar sensors work even through thin walls.
I love this tech and find it very useful and try to use it all the time. However, for a simple cabinet door I would glue a magnet to the door and mount a reed switch under the shelf. Or you could mount the sensor at an angle so it can't see the remote. Or if the white cabinet makes that impossible just use a photo resistor since a closed cabinet is dark inside.
I went through your proposals, one after the other. For the reed switch, the distance was too far (without seeing the sensor when the door is open). The LDR did not work because in spring and autumn when the sun shines flat, enough light came in to switch the TV on and if the lights were low during the TV sessions it switched off. The video was already long so I did not mention these experiments...
I have used both reed switches and LDR for closet and cabinet lighting to good effect. On one closet I mounted a magnet on a post on the hinge side of the door to reach under the shelf and find the reed sw. I have used the reflective sensors for part position and control on automated assembly machinery where magnetic and micro switches could not be used. Also as timing devices where I find hall effect units can be fooled by dirt and metal chips. If your TV cabinet door is manually operated it seems you have found the best solution. Maybe if I watch enough of your videos I will be able to think outside the TV box, too.
:-) Yes, the door is moved by hand.
How can we decode "Air Conditioner" IR codes ?
I want to transfer the code through XBEE from one module to another.
There is a comment of a viewer below where you find more info.
unsigned int rawData[67] = {4600,4450, 600,550, 600,500, 650,500, 600,1650, 600,1600, 650,500, 600,550, 600,500, 650,500, 600,550, 600,500, 650,1600, 600,1650, 600,500, 650,500, 600,550, 600,500, 650,500, 600,550, 600,1600, 650,1600, 600,550, 600,500, 650,500, 600,1650, 600,1650, 600,1600, 650,500, 600,550, 600,1600, 650,1600, 600,1650, 600}; // SAMSUNG 181818E7
unsigned int data = 0x181818E7;
no help down there!!
I decoded these raw data but how can i send such a long data through ZBEE.
perhaps a ultrasonic sonic sensor like those HC-SR04 will be better for the TV door project, its awfully easy to program it to detect in a specific distance and no worries on the ambient lighting issues.
You are right, this is another possibility.
Will the sending and receiving diodes work over a distance of 1 meter?
Yes, it should