{"id":19379707,"url":"https://github.com/dragonscypher/weather-window","last_synced_at":"2026-05-12T20:33:15.656Z","repository":{"id":222908403,"uuid":"758707462","full_name":"dragonscypher/Weather-Window","owner":"dragonscypher","description":"Weather Monitoring System","archived":false,"fork":false,"pushed_at":"2024-10-28T04:06:06.000Z","size":22,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-07T05:45:00.788Z","etag":null,"topics":["aws-lambda","python","raspberry-pi"],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dragonscypher.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-16T22:16:52.000Z","updated_at":"2024-10-28T04:06:10.000Z","dependencies_parsed_at":"2024-02-16T23:28:43.581Z","dependency_job_id":"2595d011-965e-49e9-aaca-d00d4b30f990","html_url":"https://github.com/dragonscypher/Weather-Window","commit_stats":null,"previous_names":["dragonscypher/weather-window"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dragonscypher%2FWeather-Window","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dragonscypher%2FWeather-Window/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dragonscypher%2FWeather-Window/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dragonscypher%2FWeather-Window/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dragonscypher","download_url":"https://codeload.github.com/dragonscypher/Weather-Window/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240515237,"owners_count":19813825,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws-lambda","python","raspberry-pi"],"created_at":"2024-11-10T09:10:58.543Z","updated_at":"2026-05-12T20:33:15.590Z","avatar_url":"https://github.com/dragonscypher.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Weather Window: Weather Monitoring System 🌦️\n\n## 📜 Abstract\n- **Objective**: Develop a Raspberry Pi-based weather observation system.\n- **Features**: Measures temperature, humidity, and atmospheric pressure.\n- **Alerts**: Activates alerts through email, LED signals, or auditory alarms upon threshold breaches.\n- **Integration**: Utilizes AWS Lambda and AWS SNS for efficient email notifications.\n\n## 🛠️ Prerequisites\n- Raspberry Pi with internet access.\n- DHT11 sensor (or compatible) for environmental readings.\n- Python 3.\n- An AWS account for AWS Lambda, AWS IoT Core, and AWS SNS.\n- Required Python libraries: `Adafruit_DHT`, `awscrt`, `boto3`, `awsiot`.\n- Terraform for infrastructure provisioning.\n\n## 📦 Installation\n1. **Clone the Repository**:\n   ```bash\n   git clone https://github.com/dragonscypher/Weather-Window.git\n   ```\n2. **Install Dependencies**:\n   ```bash\n   pip install Adafruit_DHT awscrt boto3\n   ```\n\n## ⚙️ Configuration\n- Fill in AWS IoT Core details and other AWS resource information in the Python script.\n- Set email credentials as environment variables:\n  ```bash\n  export MY_EMAIL_PASSWORD='your_secure_password'\n  ```\n- Terraform is used to create the required AWS infrastructure, including AWS IoT Thing, Lambda functions, and a DynamoDB table for storing sensor data.\n\n## 🚀 Usage\n1. **Provision AWS Resources**:\n   Run Terraform to create the necessary AWS resources:\n   ```bash\n   terraform init\n   terraform apply\n   ```\n2. **Start the System**:\n   ```bash\n   python mqtt_email_notification.py\n   ```\n3. Monitor weather data, store it in DynamoDB, and receive alerts based on set thresholds.\n\n## 📝 Project Overview\nThe Weather Monitoring System, \"Weather Window,\" leverages AWS IoT Core to collect and send weather data (temperature and humidity) from a DHT11 sensor connected to a Raspberry Pi. The collected data is published to AWS IoT Core using MQTT, stored in a DynamoDB table, and notifications are sent using AWS Lambda functions and SNS.\n\n### Key Features:\n- **AWS IoT Core Integration**: The system uses MQTT to publish sensor data to AWS IoT Core, ensuring real-time updates.\n- **Data Storage**: Weather data is stored in DynamoDB for historical reference and analysis.\n- **AWS Lambda**: Lambda functions are used to process messages, store data, and send alerts.\n- **Notifications**: Email notifications are sent using AWS SNS based on threshold values for temperature and humidity.\n\n## 🗺️ System Architecture\nThe system architecture for \"Weather Window\" involves multiple components working together to provide real-time weather monitoring and alerting. Below is a high-level overview:\n\n1. **Raspberry Pi**: Collects data from the DHT11 sensor and publishes it to AWS IoT Core using MQTT.\n2. **AWS IoT Core**: Serves as the central messaging broker that receives data from the Raspberry Pi.\n3. **AWS Lambda Functions**: Processes the incoming data, stores it in DynamoDB, and triggers alerts.\n4. **AWS DynamoDB**: Stores weather data for historical reference and analysis.\n5. **AWS SNS**: Sends email notifications when the data breaches the defined thresholds.\n\n![System Architecture Diagram](system_architecture.png)\n\n## 💡 Contributing\nYour contributions are welcome! Open an issue or pull request to suggest changes or additions.\n\n## 📄 License\nThis project is under the [MIT License](https://choosealicense.com/licenses/mit/).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdragonscypher%2Fweather-window","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdragonscypher%2Fweather-window","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdragonscypher%2Fweather-window/lists"}