Garage Door Monitor and Opener

Dependencies:   X_NUCLEO_COMMON ST_INTERFACES

Introduction

This system implements a simple garage door opener and environmental monitor. The hardware connects to the internet using Wi-Fi then on to the Pelion Device Management Platform which provides device monitoring and secure firmware updates over the air (FOTA). Pelion Device Management provides a flexible set of REST APIs which we will use to communicate to a web application running on an EC-2 instance in AWS. The web application will serve a web page where we can monitor and control our garage..

This project is intended to work on the DISCO-L475VG-IOT01A from ST Microelectronics It implements a simple actuator to drive a relay to simulate pushing the "open" button on older style garage doors which do not use a rolling code interface.

The system is designed to be mounted over the door so that the on board time of flight sensor can be used to detect if the door is open or closed.

The system also monitors temperature, humidity and barometric pressure.

https://os.mbed.com/media/uploads/JimCarver/garageopener.jpg

Hardware Requirements:

DISCO-L475G-IOT01A https://os.mbed.com/platforms/ST-Discovery-L475E-IOT01A/

Seeed Studio Grove Relay module https://www.seeedstudio.com/Grove-Relay.html

Seeed Studio Grove cable, I used this one: https://www.seeedstudio.com/Grove-4-pin-Male-Jumper-to-Grove-4-pin-Conversion-Cable-5-PCs-per-Pack.html

Connect to the PMOD connector like this:

https://os.mbed.com/media/uploads/JimCarver/opener.jpg

This shows how I installed so that the time of flight sensor can detect when the door is open

https://os.mbed.com/media/uploads/JimCarver/opener1.jpg https://os.mbed.com/media/uploads/JimCarver/opener2.jpg

To use the project:

You will also need a Pelion developers account.

I suggest you first use the Pelion quick state to become familiar with Pelion Device Management. https://os.mbed.com/guides/connect-device-to-pelion/1/?board=ST-Discovery-L475E-IOT01A

Web Interface

For my web interface I am running node-red under Ubuntu in an EC2 instance on AWS. This can run for 12 month within the constraints of their free tier. Here is a tutorial: https://nodered.org/docs/getting-started/aws

You will also need to install several node-red add ons:

sudo npm install -g node-red-dashboard

sudo npm install -g node-red-contrib-mbed-cloud

sudo npm istall -g node-red-contrib-moment

After starting node-red import the contents of GarageFlow.txt from the project, pin the flow into the page.

To enable your web app to access your Pelion account you need an API key.

First you will neet to use your Pelion account to create an API key.

https://os.mbed.com/media/uploads/JimCarver/api_portal.jpg

Now we need to apply that API key to your Node-Red flow.

https://os.mbed.com/media/uploads/JimCarver/api_node-red.jpg

Committer:
JimCarver
Date:
Thu Dec 05 19:03:48 2019 +0000
Revision:
37:ec1124e5ec1f
Parent:
0:72fe5fb6309c
Bug fix

Who changed what in which revision?

UserRevisionLine numberNew contents of line
adustm 0:72fe5fb6309c 1 Apache License
adustm 0:72fe5fb6309c 2 Version 2.0, January 2004
adustm 0:72fe5fb6309c 3 http://www.apache.org/licenses/
adustm 0:72fe5fb6309c 4
adustm 0:72fe5fb6309c 5 TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
adustm 0:72fe5fb6309c 6
adustm 0:72fe5fb6309c 7 1. Definitions.
adustm 0:72fe5fb6309c 8
adustm 0:72fe5fb6309c 9 "License" shall mean the terms and conditions for use, reproduction, and
adustm 0:72fe5fb6309c 10 distribution as defined by Sections 1 through 9 of this document.
adustm 0:72fe5fb6309c 11
adustm 0:72fe5fb6309c 12 "Licensor" shall mean the copyright owner or entity authorized by the copyright
adustm 0:72fe5fb6309c 13 owner that is granting the License.
adustm 0:72fe5fb6309c 14
adustm 0:72fe5fb6309c 15 "Legal Entity" shall mean the union of the acting entity and all other entities
adustm 0:72fe5fb6309c 16 that control, are controlled by, or are under common control with that entity.
adustm 0:72fe5fb6309c 17 For the purposes of this definition, "control" means (i) the power, direct or
adustm 0:72fe5fb6309c 18 indirect, to cause the direction or management of such entity, whether by
adustm 0:72fe5fb6309c 19 contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the
adustm 0:72fe5fb6309c 20 outstanding shares, or (iii) beneficial ownership of such entity.
adustm 0:72fe5fb6309c 21
adustm 0:72fe5fb6309c 22 "You" (or "Your") shall mean an individual or Legal Entity exercising
adustm 0:72fe5fb6309c 23 permissions granted by this License.
adustm 0:72fe5fb6309c 24
adustm 0:72fe5fb6309c 25 "Source" form shall mean the preferred form for making modifications, including
adustm 0:72fe5fb6309c 26 but not limited to software source code, documentation source, and configuration
adustm 0:72fe5fb6309c 27 files.
adustm 0:72fe5fb6309c 28
adustm 0:72fe5fb6309c 29 "Object" form shall mean any form resulting from mechanical transformation or
adustm 0:72fe5fb6309c 30 translation of a Source form, including but not limited to compiled object code,
adustm 0:72fe5fb6309c 31 generated documentation, and conversions to other media types.
adustm 0:72fe5fb6309c 32
adustm 0:72fe5fb6309c 33 "Work" shall mean the work of authorship, whether in Source or Object form, made
adustm 0:72fe5fb6309c 34 available under the License, as indicated by a copyright notice that is included
adustm 0:72fe5fb6309c 35 in or attached to the work (an example is provided in the Appendix below).
adustm 0:72fe5fb6309c 36
adustm 0:72fe5fb6309c 37 "Derivative Works" shall mean any work, whether in Source or Object form, that
adustm 0:72fe5fb6309c 38 is based on (or derived from) the Work and for which the editorial revisions,
adustm 0:72fe5fb6309c 39 annotations, elaborations, or other modifications represent, as a whole, an
adustm 0:72fe5fb6309c 40 original work of authorship. For the purposes of this License, Derivative Works
adustm 0:72fe5fb6309c 41 shall not include works that remain separable from, or merely link (or bind by
adustm 0:72fe5fb6309c 42 name) to the interfaces of, the Work and Derivative Works thereof.
adustm 0:72fe5fb6309c 43
adustm 0:72fe5fb6309c 44 "Contribution" shall mean any work of authorship, including the original version
adustm 0:72fe5fb6309c 45 of the Work and any modifications or additions to that Work or Derivative Works
adustm 0:72fe5fb6309c 46 thereof, that is intentionally submitted to Licensor for inclusion in the Work
adustm 0:72fe5fb6309c 47 by the copyright owner or by an individual or Legal Entity authorized to submit
adustm 0:72fe5fb6309c 48 on behalf of the copyright owner. For the purposes of this definition,
adustm 0:72fe5fb6309c 49 "submitted" means any form of electronic, verbal, or written communication sent
adustm 0:72fe5fb6309c 50 to the Licensor or its representatives, including but not limited to
adustm 0:72fe5fb6309c 51 communication on electronic mailing lists, source code control systems, and
adustm 0:72fe5fb6309c 52 issue tracking systems that are managed by, or on behalf of, the Licensor for
adustm 0:72fe5fb6309c 53 the purpose of discussing and improving the Work, but excluding communication
adustm 0:72fe5fb6309c 54 that is conspicuously marked or otherwise designated in writing by the copyright
adustm 0:72fe5fb6309c 55 owner as "Not a Contribution."
adustm 0:72fe5fb6309c 56
adustm 0:72fe5fb6309c 57 "Contributor" shall mean Licensor and any individual or Legal Entity on behalf
adustm 0:72fe5fb6309c 58 of whom a Contribution has been received by Licensor and subsequently
adustm 0:72fe5fb6309c 59 incorporated within the Work.
adustm 0:72fe5fb6309c 60
adustm 0:72fe5fb6309c 61 2. Grant of Copyright License.
adustm 0:72fe5fb6309c 62
adustm 0:72fe5fb6309c 63 Subject to the terms and conditions of this License, each Contributor hereby
adustm 0:72fe5fb6309c 64 grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
adustm 0:72fe5fb6309c 65 irrevocable copyright license to reproduce, prepare Derivative Works of,
adustm 0:72fe5fb6309c 66 publicly display, publicly perform, sublicense, and distribute the Work and such
adustm 0:72fe5fb6309c 67 Derivative Works in Source or Object form.
adustm 0:72fe5fb6309c 68
adustm 0:72fe5fb6309c 69 3. Grant of Patent License.
adustm 0:72fe5fb6309c 70
adustm 0:72fe5fb6309c 71 Subject to the terms and conditions of this License, each Contributor hereby
adustm 0:72fe5fb6309c 72 grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
adustm 0:72fe5fb6309c 73 irrevocable (except as stated in this section) patent license to make, have
adustm 0:72fe5fb6309c 74 made, use, offer to sell, sell, import, and otherwise transfer the Work, where
adustm 0:72fe5fb6309c 75 such license applies only to those patent claims licensable by such Contributor
adustm 0:72fe5fb6309c 76 that are necessarily infringed by their Contribution(s) alone or by combination
adustm 0:72fe5fb6309c 77 of their Contribution(s) with the Work to which such Contribution(s) was
adustm 0:72fe5fb6309c 78 submitted. If You institute patent litigation against any entity (including a
adustm 0:72fe5fb6309c 79 cross-claim or counterclaim in a lawsuit) alleging that the Work or a
adustm 0:72fe5fb6309c 80 Contribution incorporated within the Work constitutes direct or contributory
adustm 0:72fe5fb6309c 81 patent infringement, then any patent licenses granted to You under this License
adustm 0:72fe5fb6309c 82 for that Work shall terminate as of the date such litigation is filed.
adustm 0:72fe5fb6309c 83
adustm 0:72fe5fb6309c 84 4. Redistribution.
adustm 0:72fe5fb6309c 85
adustm 0:72fe5fb6309c 86 You may reproduce and distribute copies of the Work or Derivative Works thereof
adustm 0:72fe5fb6309c 87 in any medium, with or without modifications, and in Source or Object form,
adustm 0:72fe5fb6309c 88 provided that You meet the following conditions:
adustm 0:72fe5fb6309c 89
adustm 0:72fe5fb6309c 90 You must give any other recipients of the Work or Derivative Works a copy of
adustm 0:72fe5fb6309c 91 this License; and
adustm 0:72fe5fb6309c 92 You must cause any modified files to carry prominent notices stating that You
adustm 0:72fe5fb6309c 93 changed the files; and
adustm 0:72fe5fb6309c 94 You must retain, in the Source form of any Derivative Works that You distribute,
adustm 0:72fe5fb6309c 95 all copyright, patent, trademark, and attribution notices from the Source form
adustm 0:72fe5fb6309c 96 of the Work, excluding those notices that do not pertain to any part of the
adustm 0:72fe5fb6309c 97 Derivative Works; and
adustm 0:72fe5fb6309c 98 If the Work includes a "NOTICE" text file as part of its distribution, then any
adustm 0:72fe5fb6309c 99 Derivative Works that You distribute must include a readable copy of the
adustm 0:72fe5fb6309c 100 attribution notices contained within such NOTICE file, excluding those notices
adustm 0:72fe5fb6309c 101 that do not pertain to any part of the Derivative Works, in at least one of the
adustm 0:72fe5fb6309c 102 following places: within a NOTICE text file distributed as part of the
adustm 0:72fe5fb6309c 103 Derivative Works; within the Source form or documentation, if provided along
adustm 0:72fe5fb6309c 104 with the Derivative Works; or, within a display generated by the Derivative
adustm 0:72fe5fb6309c 105 Works, if and wherever such third-party notices normally appear. The contents of
adustm 0:72fe5fb6309c 106 the NOTICE file are for informational purposes only and do not modify the
adustm 0:72fe5fb6309c 107 License. You may add Your own attribution notices within Derivative Works that
adustm 0:72fe5fb6309c 108 You distribute, alongside or as an addendum to the NOTICE text from the Work,
adustm 0:72fe5fb6309c 109 provided that such additional attribution notices cannot be construed as
adustm 0:72fe5fb6309c 110 modifying the License.
adustm 0:72fe5fb6309c 111 You may add Your own copyright statement to Your modifications and may provide
adustm 0:72fe5fb6309c 112 additional or different license terms and conditions for use, reproduction, or
adustm 0:72fe5fb6309c 113 distribution of Your modifications, or for any such Derivative Works as a whole,
adustm 0:72fe5fb6309c 114 provided Your use, reproduction, and distribution of the Work otherwise complies
adustm 0:72fe5fb6309c 115 with the conditions stated in this License.
adustm 0:72fe5fb6309c 116
adustm 0:72fe5fb6309c 117 5. Submission of Contributions.
adustm 0:72fe5fb6309c 118
adustm 0:72fe5fb6309c 119 Unless You explicitly state otherwise, any Contribution intentionally submitted
adustm 0:72fe5fb6309c 120 for inclusion in the Work by You to the Licensor shall be under the terms and
adustm 0:72fe5fb6309c 121 conditions of this License, without any additional terms or conditions.
adustm 0:72fe5fb6309c 122 Notwithstanding the above, nothing herein shall supersede or modify the terms of
adustm 0:72fe5fb6309c 123 any separate license agreement you may have executed with Licensor regarding
adustm 0:72fe5fb6309c 124 such Contributions.
adustm 0:72fe5fb6309c 125
adustm 0:72fe5fb6309c 126 6. Trademarks.
adustm 0:72fe5fb6309c 127
adustm 0:72fe5fb6309c 128 This License does not grant permission to use the trade names, trademarks,
adustm 0:72fe5fb6309c 129 service marks, or product names of the Licensor, except as required for
adustm 0:72fe5fb6309c 130 reasonable and customary use in describing the origin of the Work and
adustm 0:72fe5fb6309c 131 reproducing the content of the NOTICE file.
adustm 0:72fe5fb6309c 132
adustm 0:72fe5fb6309c 133 7. Disclaimer of Warranty.
adustm 0:72fe5fb6309c 134
adustm 0:72fe5fb6309c 135 Unless required by applicable law or agreed to in writing, Licensor provides the
adustm 0:72fe5fb6309c 136 Work (and each Contributor provides its Contributions) on an "AS IS" BASIS,
adustm 0:72fe5fb6309c 137 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
adustm 0:72fe5fb6309c 138 including, without limitation, any warranties or conditions of TITLE,
adustm 0:72fe5fb6309c 139 NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are
adustm 0:72fe5fb6309c 140 solely responsible for determining the appropriateness of using or
adustm 0:72fe5fb6309c 141 redistributing the Work and assume any risks associated with Your exercise of
adustm 0:72fe5fb6309c 142 permissions under this License.
adustm 0:72fe5fb6309c 143
adustm 0:72fe5fb6309c 144 8. Limitation of Liability.
adustm 0:72fe5fb6309c 145
adustm 0:72fe5fb6309c 146 In no event and under no legal theory, whether in tort (including negligence),
adustm 0:72fe5fb6309c 147 contract, or otherwise, unless required by applicable law (such as deliberate
adustm 0:72fe5fb6309c 148 and grossly negligent acts) or agreed to in writing, shall any Contributor be
adustm 0:72fe5fb6309c 149 liable to You for damages, including any direct, indirect, special, incidental,
adustm 0:72fe5fb6309c 150 or consequential damages of any character arising as a result of this License or
adustm 0:72fe5fb6309c 151 out of the use or inability to use the Work (including but not limited to
adustm 0:72fe5fb6309c 152 damages for loss of goodwill, work stoppage, computer failure or malfunction, or
adustm 0:72fe5fb6309c 153 any and all other commercial damages or losses), even if such Contributor has
adustm 0:72fe5fb6309c 154 been advised of the possibility of such damages.
adustm 0:72fe5fb6309c 155
adustm 0:72fe5fb6309c 156 9. Accepting Warranty or Additional Liability.
adustm 0:72fe5fb6309c 157
adustm 0:72fe5fb6309c 158 While redistributing the Work or Derivative Works thereof, You may choose to
adustm 0:72fe5fb6309c 159 offer, and charge a fee for, acceptance of support, warranty, indemnity, or
adustm 0:72fe5fb6309c 160 other liability obligations and/or rights consistent with this License. However,
adustm 0:72fe5fb6309c 161 in accepting such obligations, You may act only on Your own behalf and on Your
adustm 0:72fe5fb6309c 162 sole responsibility, not on behalf of any other Contributor, and only if You
adustm 0:72fe5fb6309c 163 agree to indemnify, defend, and hold each Contributor harmless for any liability
adustm 0:72fe5fb6309c 164 incurred by, or claims asserted against, such Contributor by reason of your
adustm 0:72fe5fb6309c 165 accepting any such warranty or additional liability.