Skip to main content

A Farm Monitoring Bot

Project description

Agrothon

A Farm Monitoring Bot

PyPI PyPI - Python Version PyPI - Wheel PyPI - Implementation PyPI - Downloads GitHub license GitHub issues GitHub forks GitHub stars

Introduction

  • This project has three parts

    • The Agrothon-Client Module which will be running in Raspberry Pi
    • API Server
    • Telegram Bot
  • API Server handles Everything, All the routes are shown below

    API Docs

  • Telegram bot is just a frontend for the whole Project

    Telegram Bot

  • Agrothon-Client Sends Sensor data, Intruder images to the API Server which will be analysed there and Stored in the Database

Installation

  • Via pip

    • First fill the variables in agrothon-sample.env and rename it to agrothon.env

    • you can extend all tha variables from Base Config

    • Get the latest Release of data directory and untar in it the same directory where you placed agrothon.env

      tar -xzf Agrothon-Data.tar.gz
      
    • Then Create a Virtual Environment (Optional but Recommended) and then install Agrothon with

      pip install Agrothon
      
    • There are two commands in Agrothon

      • agroserver - Which actually starts the Uvicorn Server on a Unix Domain Socket at /usr/agrothon.sock, So you should use a Reverse proxy (Preferably Caddy)
      • agrothon - Which starts the telegram bot
      • agroserver - Starts Both agroserver and agrothon with caddy reverse proxy
  • Via Docker

    • Download Docker compose and Map the ports according to your use
      • wget -q https://viswanathbalusu.github.io/Agrothon/docker-compose.yml
    • Download agrothon.env and Fill the Variables (can be extended from Base Config)
      • wget -q https://viswanathbalusu.github.io/Agrothon/agrothon-sample.env -O agrothon.env
    • Finally do docker-compose up it will pull the image from container registry and run the services

Variables in agrothon.env

Variable Value Example Required Description
- - Bot Configuration - -
TELEGRAM_APP_ID Telegram API APP ID 1234567 True Can be obtained from Telegram
TELEGRAM_API_HASH Telegram API Hash 022d29afxxxxxxxxf825980a7974ec42 True Can be obtained from Telegram
BOT_TOKEN Telegram Bot Token 123456:abcdefghij True Can be obtained from Bot Father
API_BASE_URL Api base Host URL https://mysite.com/ True Must be host Without port (i.e Port 80/443* only)
ALERT_CHANNEL_ID Alert channel ID -100123456789 True Intruder Alerts will be posted to this channel
STATE name of the state Andhra Pradesh True Must be a state in India 🤔
DISTRICT name of the district East Godavari True name of your district
DEF_LANG Default Language english False Can be choosen from english, telugu, tamil, hindi (Default is english)
DEF_CITY Default City Vijayawada True City from which weather should be fetched
- - Server Configuration - -
OPEN_WEATHER_API Open weather API Key d6778a1acdd67c4xxxxxxe500e81987d True API to get the weather data of a particular region, Get this from OpenWeather
API_KEY An API Key for your Server Agrothon True This is like a Password for your API Server, So choose Wisely (Alphanumeric only)
DB_URL MongoDB URL mongodb+srv://xxx:xxx@hmmm.mongodb.net True Database to Store All the data, get this from MongoDB

* if there are Other ports too the Bot will Work but it may not be able to post images

Note

  • We are using heavy modules like tensorflow and Yolov3, so make sure you have atleast 2.5GB RAM free to get this running
  • Only Works in UNIX environments
  • caddy,xz-utils, all OpenCV Dependencies must be installed if you are choosing non Docker method.
  • Python3.8 is compulsory

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Agrothon-1.2.9.tar.gz (47.2 kB view hashes)

Uploaded Source

Built Distribution

Agrothon-1.2.9-py3-none-any.whl (62.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page