RoadTest: GraspIO Cloudio + Raspberry Pi 3
Author: scmclain
Creation date:
Evaluation Type: Development Boards & Tools
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?:
What were the biggest problems encountered?:
Detailed Review:
BACKGROUND:
First off let me start by saying that I have never touched a Raspberry Pi before. I have used numerous Arduinos and have some programming background, but no Raspberry Pi experience. I have wanted to get one and incorporate it into some of my projects, but I never had the time to try to learn Python or another new programming language. Once I saw this come up for a RoadTest, I was intrigued. Even if I wasn't selected, I looked forward to reading what other people had to say.
On to the review.
UNBOXING:
The GraspIO Cloudio comes in a nice looking box, and seems to be pretty protected from shipping and daily jostling around. This is good because I will likely keep it in its box when I am not using it (I still have my first arduino (8ish years old) in its original box when it is not called to duty).
{gallery} Cloudio Unboxing |
---|
Closed Cloudio Box |
Cloudio box opened and contents displayed |
The Cloudio just removed from its static protective packaging. |
Profile of the Cloudio on a Raspberry Pi 3B |
SETUP:
Getting setup is relatively straight forward. There is a quick setup guide on GraspIO's website that walks you through downloading the OS for the cloudio, flashing it to an SD card, and attaching it to the Raspberry Pi. Here is where I encountered an issue. In the first picture, it states that you should see a welcome message. My cloudio had a flashing green light. I let it go for a minute, but wondering if my power supply (usb on laptop) was insufficient. I unplugged the Raspberry Pi.
I went to GraspIO's FAQ page and then clicked the "Getting Started" link. Here it mentions the flashing green LED is indication of the OS installing. It mentions it can take up to 15 minutes to install and do not unplug the Raspberry Pi during this time. Being I unplugged it, I had to format my SD card and reflash the OS to the SD card.
It wasn't that big of a deal, but it would have been nice to see that it may take some time to install the OS in the quick start guide article rather than stating you will see a welcome message.
Once the cloudio is up and running, the quick start guide has you click another link to setup the wifi connection. I used my iPhone and the Raspberry Pi 3 B that was part of this RoadTest. The USB Twinkle went flawlessly and was super easy to get through.
PROGRAMMING/USING THE CLOUDIO:
First off there are some great examples that came with GraspIO Studio. There is even a voice guided tutorial that walks your through building your first program. GraspIO really put a lot of effort into teaching people how to use their app and the Cloudio. I ran most of the example programs (I don't have a USB camera to use the camera functions with the Cloudio), and the examples covered pretty much everything the Cloudio can do. So if you are making a project and can't figure out how to use a block, you can look at one of the examples. Their website also has a guide for each block.
Once the cloudio was connected to the internet and I setup my GraspIO Studio app, I started running through the built in examples. Here I came across another issue. When I ran the Voice Assistant example, I only can get the voice recorder (used to send commands to the cloudio) to appear after I send the program to the cloudio. Once I close that screen or press the home button on my phone to open another app, I cannot get the voice recorder up again to send another command. On the board tab of the app I get a status saying that voice is running.
You can resend the program to the cloudio to bring up the voice recorder, but it would be nice to have a widget in the app to bring it up. I tried looking on the GrapsIO website to see if there was any more detail about bringing up the voice recorder, but I had no luck.
With the GraspIO cloudio you get 50,000 free IoT calls. Different functions use different amounts of calls. The IoT call information can be found here. While I was playing around with programming, I found out it was easy to use 30,000 calls in a matter of 5 minutes. I created a IFTTT (IF This Then That) applet that would read two sensors and give a garage door position (open, closed, or unknown). There would be one limit switch towards the bottom of the door to sense when the door was down. There would also be one switch on the rails that would sense when the door was up. If the lower switch was active and the upper switch low, the door was closed. If the upper switch was high and the lower switch was low, the door was open. If both switches were high or low, it was unknown. This last bit is what got me in trouble.
The IFTTT applet would trigger using the button widget, and run the If/Else program once. IFTTT gave me an error when I was making the applet, so I just ran my If/Else program. It is worth mentioning that I did not put a loop function in at first. I thought that the program would run once, and send a single notification of the status of the door. I did not receive a notification. I closed the app, and made sure my phone allowed notification from GraspIO Studio. It was allowing them.
Next I added an If statement to only run the garage door sense if/else statement if the Cloudio's on board switch was pressed. I then put a loop block around all of the If statements. I wanted to make sure that I could get these notifications.
I pushed the on board switch, no notification. I pressed it a few more times, I tried to hold it for a couple seconds, I pressed it and waited a minute, and no notifications. I pressed the home button on my phone to bring up the browser to look at GraspIO's website to try to find answers. This time I got some notifications. I got a couple door closed notifications, then I got a message saying I had 100 new notifications, then 30 new, then 50 new, and so on.
I opened the app to see how many calls I had and it dropped roughly 25,000. I unplugged my cloudio from the power supply to try to come up with a plan. I made a simple program to dump into the cloudio when it booted back up. After my new program was in I checked my call total, and I was down about another 5000 calls. I don't think these 5000 happened in the short time the cloudio booted (my program needed a switch state change to send a notification), but my call count just had to update.
I understand that a flaw in programming can make a loop to use all the calls quickly, but when I am testing something and I am not getting any reply what so ever, I will keep trying things to get a result. Being I was not getting any notifications, I had to keep trying. Then I was flooded with them. What is also odd is that I received notifications the day before when I ran the example program "Voice Assistant". There is a notification block that you can put text in to get a notification when you use the "Check door" voice command. That being said, using all the calls was 100% my fault and not an issue with the Cloudio.
It seems like this product is geared toward people learning coding, Raspberry Pi, or IoT; and being able to use a lot calls like that seems counterproductive. One suggestion I have to people wanting to use the notification feature of the Cloudio, is to make your program first with another type of indication (RGB LED, OLED, etc) before using the notification blocks. This way you can make sure your program is working properly before using your free calls. The OLED is a good choice because it will scroll the text once each time the block is activated. If your OLED is constantly scrolling a message, you would be sending notifications each time your message scrolls on the OLED.
I have since modified my program and can run it via an IFTTT applet. The program reads my two switches and senses if the door is open or closed. If it is closed, a single notification is sent to my phone stating the door is closed. If the door is open, it sets an output high that closes the garage door. It then waits for 15 seconds for the door to fully close. It reads the switches again to check if the door successfully closed. If it did close, a notification is sent stating the door was open, but is now closed. If the door is not closed after the 15 second delay, a notification is sent stating the door failed to close. It was very simple to create the program in GraspIO Studio. I have not hooked it up to my garage door yet, but I have tested it with switches and a relay. Running this program from the IFTTT app and getting the single notification uses 110 calls. I will create a similar program, but opens the garage door if it is closed.
I have played around with the Cloudio more with some other sensors I have laying around. It has been pretty fun, and you can do a lot without using the IoT cloud calls. You can have the OLED display values of the sensors you hook up. You can choose what type of sensor you are using, and the Cloudio will give it a suitable icon as it displays the value. One thing I wish you could change is the scaling of the read value. I have a liquid level sensor, and when the sensor is dry, it shows 100%. When I dip the sensor in water, the value drops. I have tried to flop my polarity, but the sensor does not work with reverse polarity. When I created a voltage divider with a photoresistor and regular resistor, you can easily change your polarities to display the value how you would like.
I also wish you could take your sensor values and put them into a variable and display that variable. Neither of these functions are available to do with the variables.
FINAL THOUGHTS:
Overall, I think that the GraspIO Cloudio is a great development board for learning IoT. Prior to this Road Test, I have never connected any of my projects to the internet or wifi. It is really neat to be able to pick something up and control it with your phone within minutes of booting it up for the first time. I think that this would be a great addition to anyone who wants to get started in IoT. It is very simple to program and get a program running.
The drag and drop programming is very intuitive and beginners should not have a problem picking it up and programming it to do some fun things. I will recommend this to some friends that have struggled with programming an Arduino. I think the GraspIO Studio's programming design will be a great fit for them.
The price of the GraspIO Cloudio is $39.99 USD. This seems like a good price for what you get with the Cloudio. There is a good amount of sensors on the board, and room for three external sensors. You can create some pretty versatile programs with just the Cloudio board. If you have a Raspberry Pi and want to start learning some IoT, I think that the Cloudio is the way to go.
I have noticed what seems to be some bugs in GraspIO Studio. I contacted the support team at GraspIO, and their response was prompt. They gave me a couple things to try, and thanked me for pointing out a bug that was causing my Cloudio to crash. I am very pleased at how they handled my issues. I have also noticed someone from GraspIO answering questions on element14. That is a huge plus! They seem to listen to what the Road Testers have to say and answer their questions quickly. The support from the company is great, and that means a lot to someone who is trying to learn something new.
I know I pointed out several negative things that I found during my testing, but the negative points were fairly minor. The Cloudio has a lot to offer for someone wanting to learn programming or to easily hook up their projects to IoT. I thought it was worth mentioning some things that I had issues with to make this a fair review.
This is also my first Road Test, so any feedback on what I should include in future reviews is welcome. I tried not to bog it down with too many pictures, but if more pictures is more helpful please let me know!
Top Comments
Nice roadtest review. This looks like an interesting product, but I am not sure that the 'Calls' based approach is the way to go.
Nice job!
Gene