Introduction
The system is a suitable solution for people who love and want to look after plants in their house but very busy in daily jobs to do that. Growing plants requires time and effort in order to be successful because there are some regular things to do like watering them every day. People sometimes forget to take care of their plants. Also, some people travel a lot and spend less time in their house. In this context, they generally ask for help to look after their houseplants otherwise they simply give up to have them. WaterPi can help those people with doing regular things for plants. Also, because it can be controlled remotely, plant owners can interfere the watering process easily when needed.
The system monitors temperature and humidity of the place, and soil moisture of the ground, waters the plant remotely, then saves all data to DynamoDB through AWS IoT. Collected data is visualized by different charts and figures to give better understanding of conditions where the plant thrives.
Raspberry Pi runs a nodejs application to control all the sensors and water pump. For that purpose I preferred to use Johnny-Five library. To communicate with AWS, I used AWS IoT SDK for javascript.
Step 1: Setup DynamoDB
DynamoDB is used to save data collected by sensors. Go to DynamoDB page and create a new table with following attributes:
- Table Name: waterpi_sensor_data
- Partition Key: key
- Click Add Sort key and add timestamp
Important thing is that key and timestamp type must be String.
Step 2: Setup AWS IoT
Go to AWS IoT Console Page and do the followings:
Create a thing with the name raspi-water-pump
reate a new policy. Policy name pump-policy, Action iot:*, resource *, select Allow, then click Add statement and Create.