SmartKrishi
An IoT-powered smart agriculture platform combining real-time sensor monitoring, AI-based crop disease detection, and weather forecasting to help farmers make data-driven decisions.

About This Project
SmartKrishi is a college team project (7 members) built to modernize agriculture using IoT and machine learning. The system collects real-time environmental data from ESP8266 sensors — soil moisture, temperature, humidity — and streams it to a Node.js REST backend. The backend stores sensor readings in MongoDB and exposes APIs consumed by a React dashboard. A Python Flask ML backend handles two AI features: plant disease detection using MobileNetV2 (image classification) and weather prediction using LSTM time-series models. The platform is gated behind PhonePe payment integration, allowing premium dashboard access for paying users. JWT-based authentication secures all routes.
Key Features
- Real-time sensor data collection from ESP8266 hardware (soil, temperature, humidity)
- REST API backend built with Node.js and Express for storing and serving sensor readings
- Plant disease detection via MobileNetV2 model served through a Flask ML API
- Weather forecasting using LSTM time-series model integrated into the React dashboard
- PhonePe payment API integration for premium feature access
- JWT-based authentication and protected route handling
- Auto-pump control logic triggered by sensor threshold values
Challenges & Solutions
Integrating ESP8266 hardware data streams reliably with the Node.js backend over unstable networks
Used HTTP polling with retry logic on the ESP8266 firmware side to buffer and resend sensor payloads during connectivity drops, ensuring no data loss
Bridging the Node.js backend and Python Flask ML service while maintaining low latency
Exposed the Flask ML service as an internal REST endpoint; the Node.js backend proxied image/data requests to Flask and cached recent predictions in MongoDB to reduce repeated inference calls
Coordinating a 7-member team across frontend, backend, ML, and hardware domains
Split the codebase into clearly scoped modules (IoT, REST API, ML API, frontend) with a shared Postman collection for API contracts, enabling parallel development across sub-teams without merge conflicts