Giter VIP home page Giter VIP logo

ml4ch / cosesweather Goto Github PK

View Code? Open in Web Editor NEW
3.0 0.0 1.0 5.95 MB

Develoment of a Weather-Data Acquisition and Management System (Weather-Station for an experimental Microgrid)

License: GNU General Public License v3.0

C++ 0.97% PHP 1.50% Shell 0.69% Python 96.82% Batchfile 0.02%
app-development weather-station raspberry-pi controllino arduino python weather-data-acquisition microgrid

cosesweather's Introduction

Welcome to CoSESWeather

In this project a Weather-Data Acquisition and Management System has been developed. In this system an Arduino-based microcontorller (client) interfaces different kinds of sensors and forms the core entity of the weather-station developed throughout this project. Acquired data is then forwarded to a RaspberryPi-based device (server) where data is processed and permanently stored in MySQL databases. A GUI-Application (CoSESWeatherApp) has been developed to enable users to conveniently interact with the system (weather-data export, account management, system commands etc.).

Important links


File-structure of repository

The utilized structure of this project-repository is listed below. As the list shows, this project is split into four sub-directories. Important files are also listed and briefly discussed respectively.

  • Client: Source-code for the microcontroller

    • CoSESClient.ino: To be flashed onto the microcontroller
  • CoSESWeatherApp: App-Development (GUI)

    • CoSESWeatherApp.py: Main source-file of the app (logic and functionality)
    • CoSESWeatherApp_ui.ui: Main source-file of GUI in QtDesigner-format (visual appearance)
    • CoSESWeatherApp_ui.py: Main source-file of GUI converted to python-format
    • convert_ui_to_py_MyApp.bat: Batch-file to convert QtDesigner-format (.ui-files) to python-code (.py-files)
    • CoSESWeatherApp.spec: Specification-file (spec-file) tells PyInstaller how to bundle the app
    • BuildApp.bat: Batch-file to start PyInstaller and bundle the app according to the spec-file
  • Server: Source-code for the server

    • CoSESServer.py: Main server-process (opens socket to acquire raw data forwarded by microcontroller)
    • CoSESDriver.py: WeeWx-driver (interface between server-process, databases and WeeWx-framework)
    • db_manager.php: Database API-script (functionality and queries)
    • db_config.php: Database API-script (authentication data)
    • CoSESWeather.ini: Path-file (contains URLs and file-paths utilized in the project)
    • CoSESServerManager.sh: Helper-script (monitoring and restarting of system-processes)
    • MySQLBackUp.sh: Helper-script (backup creation of MySQL databases)
    • WatchDogResetter.sh: Reset of watchdog-timer (on server-side)
    • localhost.sql: Initial database-structure (can be imported to create required database-tables)
  • WeeWx: Modified WeeWx-framework installation

    • weewx-3.9.1(CoSESWeather_mod).tar.gz: WeeWx weather-station framework (modified installation package)

Development environment

This section gives a brief overview on the required third-party modules and libraries utilized in this project.

Required modules (Python on server-side)

Required libaries (Arduino, C, C++ on client side)


Required installation on server

The commands needed in order to install required packages are listed below. Administrative privileges on the target devicve are required for installation.

  • Apache2 (HTTP web-server)
sudo apt install apache2
  • MySQL (database management system)
sudo apt install mariadb-server
  • phpMyAdmin (web-based tool for database management)
sudo apt install phpmyadmin
  • PHP (programming language required by phpMyAdmin and Apache)
sudo apt install php php-mbstring libapache2-mod-php 
  • MySQL connector for PHP
sudo apt install php-mysql

WeeWx weather-station framework

The popular open-source weather-station framework WeeWx is used in this project. For detailed information on functionality and customization the extensive documentation on the WeeWx-website is to be considered.

Website: WeeWx Framework

cosesweather's People

Contributors

ml4ch avatar

Stargazers

 avatar  avatar  avatar

Forkers

maxhock

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.