Close
0%
0%

Placemon - sense your home

An open hardware project to sense what is happening in your home

Similar projects worth following

Placemon consists of a number of different sensors:

  • Microphone
  • Temperature
  • Humidity
  • Pressure
  • Light
  • PIR

The idea is to use the data collected from these sensors along with machine learning techniques to recognise different events occurring in your home.  For example processing audio data, to see if you have left a tap running.

One of the key inspirations is the paper - "Synthetic Sensors: Towards General-Purpose Sensing", I noticed some of the sensors used alone on their board such as the GridEye thermal sensor appear to be pretty expensive.  I've tried to select a smaller set of sensors that will hopefully allow us to achieve a similar level of accuracy at detecting different events.

I am planning to capture the data from the sensors locally, using a single board computer, such as a Raspberry Pi, to perform the machine learning on the data obtained.

Schematic


I need to add a pull-up resistor on the GPIO0 pin.

Render (with incorrect esp32 footprint currently)

PCBs


Component orientation

I created a little script that loads the KiCad centroid file that contains positions and rotations of components, and checks the position of pin 1 and generates a figure which you can see below (the white rectangles represent pin 1).

With this script, you specify the KiCad centroid file and libraries as command line arguments, so that appropriate libraries can be loaded to determine pin positions etc.

https://github.com/anfractuosity/pcba


Diagram

  • 1 × AP2115M Power Management ICs / Linear Voltage Regulators and LDOs
  • 1 × BME280 Temperature, humidity and pressure
  • 1 × ECS-400-15-33B-CTN-TR 40 MHz XTAL
  • 1 × 9HT11-32.768KEZC-T XTAL
  • 1 × ASMT-RF45-AN002 LEDs and Accessories / Light Emitting Diodes (LEDs)

View all 13 components

  • Pi Zero Version

    anfractuosity06/08/2022 at 15:53 0 comments

    I'm now working on a pi zero based version, which I've added to github here - https://github.com/anfractuosity/placemon


    It uses

    • LSM303AGR - accelerometer and compass
    • SHT30-DIS - temperature and humidity sensor
    • GMA4030H11-F26 - PDM microphone
    • VL6180V1NR - Laser ToF sensor

  • New PCB revision

    anfractuosity09/08/2020 at 16:08 0 comments

    I recently got a new PCB revision and the footprint appears to be correct, as I can now flash the ESP32

    However when the firmware runs, I get the following messages repeated through the USB serial terminal (meaning the chip keeps resetting as far as I understand):

    rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
    configsip: 0, SPIWP:0xee
    clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
    mode:DIO, clock div:1
    load:0x3fff0030,len:4
    load:0x0034ffff,len:455360511
    ets Jun  8 2016 00:22:57
    
    rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
    configsip: 0, SPIWP:0xee
    clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
    mode:DIO, clock div:1
    load:0x3fff0030,len:4
    load:0x0034ffff,len:455360511
    ets Jun  8 2016 00:22:57

    I'm not sure if this a software or hardware issue at the moment.  Any pointers would be most appreciated! 

    I seem to be able to write and read from the flash ok from what I can tell.
     

  • Machine learning

    anfractuosity06/30/2020 at 12:50 0 comments

    Whilst I am working on re-designing the PCB, to use the correct esp32-d0wd footprint, I am also going to investigate making use of TensorFlow via Python, to recognise different acoustic events in a house.

    To do this I will record various sounds in a house using a microphone and a laptop, I will then attempt to classify these events using TensorFlow.  I was planning on looking into using a convolutional neural network to achieve this.


    Some of the acoustic events I will attempt to detect, include:

    • Door opening
    • Tap running
    • Light / mains switch being turned on/off
    • Smoke alarm
    • Blender
    • Gas hobs on oven being turned on
    • Phone ringing
    • Microwave oven / standard oven beep
    • Kettle finished boiling
    • Fridge turning on
    • Toaster popping

    I am also curious if an end user could train the system to detect new events by allowing the classifier to be updated.

    I've just started evaluating the classifier from https://github.com/drscotthawley/panotti/ using sound files for smoke alarms etc. from - https://freesound.org/browse/ .  It makes use of TensorFlow for creating the model.

  • First attempt

    anfractuosity06/24/2020 at 23:28 0 comments

    Unfortunately there was a rather big flaw in the current version of the PCB, making the ESP32 non-functional.  I had used a footprint for the ESP32-d0wd chip which is incorrect.


    I am currently working on redesigning the PCB with a correct footprint.


    With the current PCB revision, the USB chip however does appear functional as it is detected by my computer.


    The PCB with the footprint flaw is shown below, it was designed using KiCad 5.

View all 4 project logs

Enjoy this project?

Share

Discussions

h4rdc0der wrote 09/24/2020 at 18:56 point

How many pcb layers?

  Are you sure? yes | no

anfractuosity wrote 09/24/2020 at 19:03 point

It's 2 pcb layers.  Just trying to solve the problem with the esp32 continuously rebooting for me at the moment.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates