We will be closed on November 25, 2021 and November 26, 2021 in observance of the Thanksgiving holiday. We will resume normal operations on November 29, 2021. Wishing you a safe and happy holiday from all your friends at SparkFun!
This is not your normal Passive Infrared (PIR) sensor! The SparkFun AK9753 Human Presence Sensor Breakout is a Qwiic-enabled, 4-channel Nondispersive Infrared (NDIR) sensor. Each channel has a different field of view, so not only can the AK9753 detect a human, but it can also tell which direction the person is moving. To make it even easier to use this breakout, all communication is enacted exclusively via I2C, utilizing our handy Qwiic system. However, we still have broken out 0.1" spaced pins in case you prefer to use a breadboard.
The onboard AK9753 is a digital sensor giving you a 16-bit digital value over I2C. Each of the four sensors outputs the IR current in pico-amps. A PIR reading can vary from roughly -200 (no human present) to 1500 when a human is detected standing in front of a given channel, but it varies due to environmental factors and other heat sources in view. We’ve written a full library to control the sensor and included examples showing how to output the sensor readings you need, making this breakout even easier to handle!
Note: The I2C address of the AK9753 is 0x64 and is jumper selectable to 0x65 or 0x67. A multiplexer/Mux is required to communicate to multiple AK9753 sensors on a single bus. If you need to use more than one AK9753 sensor consider using the Qwiic Mux Breakout.
The SparkFun Qwiic connect system is an ecosystem of I2C sensors, actuators, shields and cables that make prototyping faster and less prone to error. All Qwiic-enabled boards use a common 1mm pitch, 4-pin JST connector. This reduces the amount of required PCB space, and polarized connections mean you can’t hook it up wrong.
If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.
Skill Level: Competent - The toolchain for programming is a bit more complex and will examples may not be explicitly provided for you. You will be required to have a fundamental knowledge of programming and be required to provide your own code. You may need to modify existing libraries or code to work with your specific hardware. Sensor and hardware interfaces will be SPI or I2C.
See all skill levels
If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.
Skill Level: Rookie - You may be required to know a bit more about the component, such as orientation, or how to hook it up, in addition to power requirements. You will need to understand polarized components.
See all skill levels
Based on 2 ratings:
2 of 2 found this helpful:
If you want good measurements of people further out than 3-4 feet then you need the lens. The company who makes the lens will send you some but they are switching manufactures right now so the new lenses will be available in the future sometime.
The cost for a single lens will probably be in the 3-6 dollar range. This is probably why Sparkfun did not include them or even attempt to order them since they come from a separate different manufacturer.
I used a copper tube to get better distance but the lens is what you really want.
The sensor works as it should otherwise just don't expect a meter of range as it is sold.
3 of 3 found this helpful:
The device is easy to interface and writing an Arduino program (I used an ESP-01) is straight forward with the provided library. However, the sensor readings fluctuate a LOT and setting a single threshold for detecting when a human is present or not is a nightmare.
My system consists of an ESP-01, an AK9753, a LiPo battery and a MCP1700-3302E (a 3.7V to 3.3V Low Dropout Positive Voltage Regulator). The software uses the AK9753 library and a MQTT library. The idea is for when someone enters the room, the ESP-01 sends an MQTT message to a broker to turn the lights on. Again, with the reading fluctuations, it is practically impossible to set a threshold for "human present".
In my program, I included a piece of code to constantly (every minute) send the current readings to the broker so I can monitor an empty room, average the readings over time and choose a threshold. But the readings vary from -3500 all the way to -1000 for no apparent reason in 1-2 hours -- again, that is for an empty room, without any heat source or possible interferences. Since a human at about 0.5 to 1m distance causes an increase in the readings of about 1000 (e.g. if the empty room causes a reading of -3200, the same room now with a human standing 0.5m away would lead to approximately a -2200 reading), so, setting the threshold to, say, -2500, only works while the fluctuations don't randomly hit -2500. After that, the light starts to turn on/off without anybody in the room.