The Internet of Things (IoT) is a popular buzzword that is used frequently across many growing trends in technology today. IoT is the concept of linking multiple physical devices across the internet to have “smart” devices. Popular boards like the Raspberry Pi allow consumers to make custom smart projects, and the GrovePi is an add-on that offers a lot of freedom and brings plug-and-play sensors to a whole new level.
With IoT devices and some imagination, you can create anything, like this smart mirror. GrovePi brings additional awesome features to the IoT device you are using, allowing you to take advantage of many analog and digital sensors without having to run any wires!
For anyone looking for help setting up the GrovePi in their own home, here is an explanation of the way I got mine set up and working as well as the hurdles I had to deal with.
What do you need?
The list of items required is not very long, thanks to the GrovePi. There is no need for a bunch of wires or solder, as the GrovePi takes care of all that. Also, this list specifically applies to what I am using in my setup – different Raspberry Pi models are compatible with the GrovePi, but the setup process for those might be a bit different. I would imagine that the 3 B+ model would be the most difficult model to use for this project anyway, because it is so new and requires a Windows Insider build, but we’ll get to that later. For now, the shopping list:
- Raspberry Pi 3 B+ board
- GrovePi Starter Kit
- Microsoft Verified SD Card (The one I used)
- Power Cord (I used a micro USB wall adapter I had lying around)
- Time, imagination, hopes, and dreams
If anything is sold out, look at other sites like Amazon and Target. They have listings of the same products under different inventory and can help you find what you need!
How do you set it up?
Set up your SD card with the Windows IoT Core OS
- Download the Windows 10 IoT Core Dashboard.
- Become a Windows Insider to get Windows Preview Builds.
- Once you become an insider return back to the original page and you should see a link to “RaspberryPi 3B+ Technical Preview Build 17661”. If you do not see this and instead see a link to become an insider even though you already are one, sadly the only answer is to wait. This took about 4 hours for me, but for some it takes a few days.
- After you download the technical preview, mount the ISO and run the .msi file inside to have a .ffu file placed inside your program files.
- Take your SD card and put it into your computer. (You will probably need to put it inside of the adapter included in the box.)
- Open the Windows 10 IoT Core Dashboard application.
- Go to the “Set up a new device” tab. You can click “skip this step” instead of signing in if you want; the insider preview check inside the application doesn’t work, which is why we manually downloaded the file earlier.
- Choose these options before clicking download and install at the bottom right:
- Device Type – Broadcomm [Raspberry Pi 2 & 3]
- OS Build – Custom
- FFU File – Browse to C:\Program Files (x86)\Microsoft IoT\FFU\RaspberryPi2 and select the .ffu file there
- Drive – Ensure the drive selected is your SD card
- Device Name – Put something simple and informative
- Admin Password – Pick something
If it asks you to format a drive after installing, DO NOT.
Set up the Pi to boot
- Connect everything to the Pi: power, network cable, HDMI to the display, and a keyboard and mouse. Insert the finished SD card into the Pi.
- Once that is all put in, you should see the Windows 10 IoT Core boot screen.
- Once you see that screen, you no longer need the display or mouse and keyboard. Only power and network are needed to use the GrovePi for this example, although you can use other peripherals to do additional setup and configuration on the base board at any time.
Set up the GrovePi environment
- Download and install Visual Studio 2017.
- Download the projects from the GrovePi GitHub.
- Extract and open the folder once it is downloaded. Navigate to /Software/CSharp/Samples/Example-LCD_Display and open LCDDisplay.sln.
- This will prompt an install of "Windows 10 SDK", then follow the wizard to install the SDK (this is a one time install).
- Unplug the cables from the Raspberry Pi. Take the GrovePi and attach it to the Raspberry Pi.
- Attach the LCD display via sensor cable to port I2C-1.
- Plug the power and Ethernet cables into the Pi, then plug the other end of the Ethernet cable into your computer’s Ethernet port. To get Internet on your computer while doing this, you will need to use Wi-Fi.
- Turn on the GrovePi. Open the Windows 10 IoT Core Dashboard to the “My Devices” tab and wait a few minutes for your device to appear.
- After it appears, right-click on the LCDDisplay (Universal Windows) Project in Visual Studio and choose Properties
- Navigate to the Debug tab.
- Inside of Start Options, make sure target is set to Remote Machine.
- To the right of the Remote Machine field, click the Find… button. The device should be in the auto-detected list; select it.
- If you open the references tab in the solution explorer and see that the GrovePi reference has an error:
- Remove the reference by right clicking it and choosing Remove. (If you do not see a reference then skip this step.)
- Choose Tools > NuGet Package Manager > Package Manager Console from the toolbar at the top.
- Type or paste “Install-Package GrovePi” into the console and wait for the operation to finish.
- If everything is looking good and all errors are gone, you can click the green play button at the top or press F5 to have the project sent to the GrovePi. You should see the words “Hello from Dexter Industries!” written on the display.
You just got the GrovePi working on the newest Raspberry Pi, and now you are ready to start wiring sensors and devices to your heart's content. Check out the GrovePi GitHub or the Dexter Industries Project List for many more cool examples to help spark your imagination and help you understand what code to run to get each individual sensor working.
I will be releasing a continuation of this blog post later, where I will discuss combining this project with Azure. Stay tuned!
If you are having any issues check out the following links and tips: