⌂ Home

IoT Smart Plant

Source Code: GitHub

Project Overview

This is an MQTT enabled smart plant that uses an ENC28J60 Ethernet controller connected to a Ti TM4C evaluation board via SPI. Ethernet, IP, and ARP libraries were provided, with the TCP and MQTT implementations building on top of those libraries, written from scratch in C. The TCP/IP implementation follows the RFC 793 spec, implementing the full TCP state machine as outlined by it. The MQTT implementation follows the 3.1.1 protocol level, and operates at a "send once" quality of service (QoS 0).

The plant could publish various properties such as the temperature, humidity, soil moisture, and light levels via MQTT. It could also subscribe to topics, with one being a "moisture-setpoint" being the minimum moisture level before the plant would need to be watered via a PWM water pump.

The project was a class-wide collaboration. Each person/team had a different part of a "smart home" to implement. For example one team created a MQTT broker, one team implemented IFTTT-style rules, and etcetera.

This page is still under construction, however the full project source code is available in the link above on GitHub.