Introduction
Giant pumpkins can weigh over 1000 lbs. While the vine itself may grow for 90-100 days, the pumpkin itself takes only 60 days to go from pollination to its full size. During the most prolific days, a giant pumpkin can put on 20+ pounds per day! Pumpkin weigh-offs at state fairs, fall festivals, etc. are very popular and giant pumpkin growers are a passionate crew. During the growing phase, weight estimations are done by using some measurements on the pumpkin size and plugging into formulas. These measurements, because of the time involved, are typically done only several days at most during the growth phase. The techniques are estimates and because of that the actual pumpkin weight will come in light or heavy depending on how the pumpkin grew compared to how the estimation formulas are defined.
The result of these articles will be a site available at https://pumpkin.staplessolutions.com.
NOTE: Currently, the site is only available to authenticated users. As the articles progress, Anonymous authentication will be added to the site for viewing.
Architecture
This project will be used to get continual data points on the giant pumpkin during its growth phase. It is planned to take measurements on pumpkin weight, soil temperature, and air temperature. Because the pumpkins are out in the field and may not have continual internet connectivity, the data logging application will assume an Occasionally Connected state and push data when the device is connected. These data points will be collected through an Azure Event Hub, summarized using Application Insights. Insights will post the results into an Azure database, and that data will be made available via a website hosted within Azure. The Azure website will run under SSL and allow for authentication using Azure Organizational Authentication.
Article Overview
Because there are a lot of moving pieces to this application, the process will be broken into multiple articles. Some will focus on the Azure infrastructure, while others will focus on the IoT part of the application. As each step in the process can have its own stumbling blocks, I have decided to include all steps in the process.
The following articles will be developed:
- Build MVC Web App, use Azure Organizational Authentication and Publish to Azure
- In Azure, Publish Web Application to Custom Domain URL
- For Azure, create an SSL Certificate and Publish Web Application for SSL
- Create the MVC View and Edit Pages for Pumpkin data
- Configure the Occasionally Connected Data Logger for Air and Soil Temperature
- Configure the Occasionally Connected Data Logger for Pumpkin Weight
- Configure the Occasionally Connected Data Logger to Push to Event Hub
- Run Application Insights against Event Hub and Push Results to SQL Server
- Modify Web Pages to display Application Insights Results
While you wait, some details on IoT data
While you, the reader, wait for the articles to be published, here are some general details on the components that may make it to the final installation for this year's growing seasons. There are 4 components of interest in pulling the data:
1. Receiving Weight Data
There are a variety of scales available for desktop usage, and many are accessible via USB connectivity. However, when it comes to measuring 1000+ lbs, the possible technologies slim down to a set focused on durability. Scales in this range, generally, are capable of holding a pallet, can weigh 1,000 to 5,000 lbs with an accuracy of +/- 1 lbs and have some sort of external connection, typically a COM port. This COM port will be accessed from the application via an RS-232 connection.
2. Receiving Data - Air and Soil Temperature
Measuring Soil and Air Temperature can both be handled by a single data logger that has multiple connections on it. Two waterproof temperature sensors will be used; one inserted into the soil, and another placed 2-3' above ground in a shaded location. A typical temperature sensor is fairly affordable. Both of these temperature sensors will be connected to an intermediate data logger. The data logger converts the analog data and provides the application to poll for data via a COM port connection, similar to the scale. The only difference is that there will be multiple channels of data being received, and so that data will need to be split and handled accordingly.
2015-03-30 - In the middle of code pushing to Azure and decided to rework this article. Many details to go over ... so I changed the format into a multi-part article. IoT contest ends, but I will not plant pumpkin seeds until May 2nd.
2015-03-19 - Just started the project. Growing season will not happen for another several weeks and pumpkin pollination does not occur until the middle of June. Several months to figure out the mechanics of it all!