/Ardu-BMP-Sensor

Firmware for BMP180 baro/temp sensor on Arduino Uno

Primary LanguageC++GNU General Public License v3.0GPL-3.0

!!! Warning !!! This project is old, unloved, and unmaintained. While this may be done for historical reasons, I am archiving it primarily to officially end all involvement in this project. With this deprecation, the state of the code is not guaranteed to work on an Arduino, or any micro-controller/SBC, now or in the future. Anyone who attempts to use this project, you have been warned. You're on your own.

Ardu BMP Sensor

Created By: Bradley Van Fleet Date Created: 7/12/2016 Date Last Modified: 7/13/2016

Purpose: This program, written for educational purposes, is for installing an SD card and Bosch BMP180 pressure/temperature sensor to an Arduino. This code is still undergoing development and should not be used in professional settings, unless further modification is undertaken.

Please reference my wiki regarding code documentation.


Installation

This program was written with the intended use for Arduino. Use with any other microcontroller, or application, is not recommended. This program can be uploaded using the ArduinoIDE, Visual Studio, or any other program capable of compiling and uploading Arduino sketches.

For instructions on uploading a sketch using the ArduinoIDE, please reference their documentation HERE.

Once the upload has successfully completed you may unplug the microcontroller and connect it to a power supply. Once the board setup has completed, the green LED will flash, and the board will proceed to operate as a datalogger. If an issue arrises in the hardware or software, the red LED will illuminate, and the board will cease operation until reset.

If you experience any issues with this software, or have any questions, please send me an email.


Notes Regarding Software Design

For those interested in understanding how this program is currently set up, below you will find documentation regarding the code, patterns used, and the tasklist as it stands:

  • Design Patterns -
    • State Machine - overall program structure
    • Singleton - interface with board hardware
    • Observer Pattern - control with future mobile app
  • Classes -
    • States - There is an abstract parent class as well as 3 subclasses. There will be eventual subclasses added to handle new states, such as updating the information read.
    • Board_Interface - Currently in charge of the Bosch BMP180 sensor and the SD card. This interface may eventually handle the Wi-Fi shield. However, to keep it from becoming too large, I may split the functionality of that shield to just the Arduino Wi-Fi library, or it's own class.
  • Eventual Tasks -
    • Change the file stream to write over the data after 10 writes.
    • Synchronise the singleton objects to work in possible multi-threaded environments (especially with Wi-Fi).
    • Interface to handle exchange from C++ read data to Java coded mobile app.

Please reference the latest release for the source code


IMPORTANT GNU PUBLIC LISCENCE NOTE

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>