Skip to content

Commit 561f108

Browse files
committed
IoT bundle projects
1 parent 986c613 commit 561f108

File tree

59 files changed

+3095
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+3095
-0
lines changed
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
software:
2+
- arduino-ide
3+
- arduino-cli
4+
- web-editor
5+
hardware:
6+
shields: ~
7+
carriers: ~
8+
boards: ~
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<FeatureDescription>
2+
3+
The Arduino IoT Bundle includes 5 step by step tutorials that will get you started with the components in the bundle. They are found just below:
4+
5+
</FeatureDescription>
6+
7+
8+
<FeatureList>
9+
10+
<Feature title="I Love You Pillow">
11+
12+
Create a pillow that sends your love with the help of the Arduino IoT Cloud!
13+
14+
<FeatureLink title="GO TO PROJECT" url="/tutorials/iot-bundle/i-love-you-pillow"/>
15+
</Feature>
16+
17+
<Feature title="Puzzle Box">
18+
19+
Create a Puzzle Box with the help of the Arduino IoT Cloud!
20+
21+
<FeatureLink title="GO TO PROJECT" url="/tutorials/iot-bundle/puzzlebox"/>
22+
</Feature>
23+
24+
<Feature title="Pavlov's Cat">
25+
26+
Train your cat with the help of the Arduino IoT Cloud!
27+
28+
<FeatureLink title="GO TO PROJECT" url="/tutorials/iot-bundle/pavlovs-cat"/>
29+
</Feature>
30+
31+
<Feature title="The Nerd">
32+
33+
Create a desktop pet with the help of the Arduino IoT Cloud!
34+
35+
<FeatureLink title="GO TO PROJECT" url="/tutorials/iot-bundle/the-nerd"/>
36+
</Feature>
37+
38+
<Feature title="Plant Communicator">
39+
40+
Create a plant communicator with the help of the Arduino IoT Cloud!
41+
42+
<FeatureLink title="GO TO PROJECT" url="/tutorials/iot-bundle/plant-communicator"/>
43+
</Feature>
44+
45+
46+
47+
</FeatureList>

content/hardware/08.kits/maker/iot-bundle/image.svg

Lines changed: 631 additions & 0 deletions
Loading
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
title: IoT Bundle
3+
url_shop: https://store.arduino.cc/iot-bundle
4+
---
5+
6+
Arduino IoT Bundle allows you to build your next smart project. Ever wanted an automated house? Or a smart garden? Well, now it’s easy with the Arduino IoT Cloud compatible boards. It means: you can connect devices, visualize data, control and share your projects from anywhere in the world. Whether you’re a beginner or a pro, we have a wide range of plans to make sure you get the features you need.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Here you will find the technical specifications for the Arduino® IoT Bundle.
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
Kit:
2+
Name: Arduino® IoT Bundle
3+
SKU: AKX00042
4+
Components:
5+
Arduino Nano RP2040 Connect: 1x
6+
micro USB cable: 1x
7+
400-point breadboard: 1x
8+
solid-core jumper wires: 70x
9+
stranded jumper wire: 2x
10+
phototransistors: 6x
11+
potentiometers (10k ohm): 3x
12+
pushbuttons: 10x
13+
temperature sensor (TMP36): 1x
14+
tilt sensor: 1x
15+
alphanumeric LCD (16 x 2 characters): 1x
16+
bright white: 1x
17+
LEDs (1 RGB, 8 red, 8 green, 8 yellow, 3 blue): 28x
18+
small DC motor (6/9V): 1x
19+
small servo motor: 1x
20+
piezo capsule (PKM17EPP-4001-B0): 1x
21+
H-bridge motor driver (L293D): 1x
22+
optocouplers (4N35): 1x
23+
MOSFET transistors (IRF520): 2x
24+
capacitors (100uF): 5x
25+
diodes (1N4007): 5x
26+
male pin strip (40 x 1): 1x
27+
resistors (220 ohm): 20x
28+
resistors (560 ohm): 5x
29+
resistors (1k ohm): 5x
30+
resistors (4.7k ohm): 5x
31+
resistors (10k ohm): 20x
32+
resistors (1M ohm): 5x
33+
resistors (10M ohm): 5x
Loading
Lines changed: 287 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,287 @@
1+
---
2+
title: "I Love You Pillow with the Arduino IoT Bundle"
3+
description: "Open source is love, and so are hugs!"
4+
coverImage: "assets/_ypE8fl7Ln6.png"
5+
tags: [IoT Cloud, IoT Bundle, Capacitance]
6+
author: "Arduino_Genuino"
7+
source: "https://create.arduino.cc/projecthub/Arduino_Genuino/i-love-you-pillow-with-the-arduino-iot-bundle-cec4c4"
8+
---
9+
10+
## Components and Supplies
11+
12+
- [Arduino IoT Bundle](https://store.arduino.cc/iot-bundle)
13+
14+
## Apps and Online Services
15+
16+
- [Arduino IoT Cloud](https://cloud.arduino.cc)
17+
- [Arduino IoT Cloud Remote app](https://play.google.com/store/apps/details?id=cc.arduino.cloudiot&hl=en&gl=US)
18+
19+
## About This Project
20+
21+
**Create a pillow that sends your love with the help of the Arduino IoT Cloud!**
22+
23+
We all know that being without that special person in your life can be difficult, but what if you could send love and affection remotely over the Internet by just hugging a pillow?
24+
25+
Now, we can't really send hugs... but what we can send is a sweet emoji through a messaging app, triggered by you giving a pillow a hug.
26+
27+
When you hug the **I Love You Pillow** you will hear the sound of a heartbeat coming from the buzzer inside. Depending on the length of your hug, a different emoji will be sent to a chat box in the Arduino IoT Cloud Remote app.
28+
29+
Stay in touch with your loved one with this huggable device!
30+
31+
### In a Nutshell
32+
33+
In this experiment, we will use aluminium foil to create a DIY capacitive sensor that will be used to detect hugs. By hugging the pillow you can send loving emojis to your beloved.
34+
35+
### Components
36+
37+
* Buzzer
38+
* Aluminium foil
39+
* 1 resistor 5M ohm
40+
41+
![Show your love with a hug!](assets/pillow2-cover_eWFrQi0MOT.png)
42+
43+
Show your love with a hug!
44+
45+
### Learning Goals
46+
47+
* Introducing the Arduino IoT Cloud
48+
* Introducing the Arduino IoT Remote app
49+
* Managing capacitive sensors
50+
* Creating an Arduino IoT Cloud Dashboard
51+
* Sharing dashboards **#ProTips**
52+
53+
**Pro Tips** are useful but not strictly necessary steps that add a layer of complexity to the project.
54+
55+
### Want to Know More?
56+
57+
This tutorial is part of a series of experiments that familiarize you with the Arduino RP2040 and IoT. All experiments can be built using the components contained in the IoT Bundle.
58+
59+
* [Puzzle Box with Arduino IoT Bundle](https://www.hackster.io/Arduino_Genuino/puzzlebox-with-arduino-mkr-iot-bundle-1010-96d09c?auth_token=cc56a48599fb1e5b8686a6bddd94f7df)
60+
* [Pavlov's Cat with the Arduino IoT Bundle](https://www.hackster.io/Arduino_Genuino/pavlov-s-cat-with-arduino-mkr-iot-bundle-1010-d5b388?auth_token=f4760e59144a21d6755a8b2b9826be67)
61+
* [Plant Communicator with the Arduino IoT Bundle](https://www.hackster.io/Arduino_Genuino/plant-communicator-with-the-arduino-mkr-iot-bundle-1010-918636?auth_token=897d5601b6794422646ec60ccf8f0772)
62+
* [The Nerd with the Arduino IoT Bundle](https://www.hackster.io/Arduino_Genuino/the-nerd-with-arduino-iot-mkr-wifi-1010-bundle-b1d0ca?auth_token=8f8951807d454511e857e40ea82f73f9)
63+
64+
### Circuit
65+
66+
In this project, we will be using the following circuit. In it, we have a piezo speaker connected to pin 8, a 5M ohm resistor connected between A0 and A1, with jumper wires connected to the tin foil.
67+
68+
![Arduino IoT Bundle](assets/circuit_tLcnUy2ifl.png)
69+
70+
### Setting up the Arduino IoT Cloud
71+
72+
If you are new to the Arduino IoT Cloud, check out our [Getting Started Guide](https://docs.arduino.cc/arduino-cloud/getting-started/iot-cloud-getting-started).
73+
74+
**We will start by setting up the Arduino IoT Cloud by following the steps below:**
75+
76+
* Login to your **Arduino Create account**
77+
* Creating a **Thing**
78+
* Attaching a **Device**
79+
* Adding the following **Variables**
80+
* Adding **Network** credentials
81+
82+
![Arduino IoT Bundle](assets/love-you-pillow-01_VoyWPl8L6l.gif)
83+
84+
### Variables
85+
86+
We will start by adding these variables:
87+
88+
![Arduino IoT Bundle](assets/screenshot_2022-11-23_140745_adGbm9cDej.png)
89+
90+
### Programming Overview
91+
92+
We will gradually build the code for the project. There are three steps to this:
93+
94+
* Testing the chat function.
95+
* Sending hugs to the cloud.
96+
* The heartbeat (Final Sketch)
97+
98+
In each of the sections, a separate code is provided. If you have created the variables in the Thing interface correctly, the code presented can simply be copy and pasted into the cloud editor, and be uploaded to your board.
99+
100+
If you want to skip ahead to the final part, go to the **The Heartbeat** section which has the final sketch.
101+
102+
**Testing the Chat Function**
103+
104+
The first part in this project is to test out the **chat functionality.** The sketch below checks for whenever the string `<3` is received via the Arduino messenger widget, and sends back a heart emoji.
105+
106+
In order to send an emoji we will need to use **UNICODE** characters.For instance to send an heart emoji we will use “\\U00002764”. You can see the full list of unicode emoji codes [here.](https://unicode.org/emoji/charts/full-emoji-list.html)
107+
108+
```
109+
#include "thingProperties.h"
110+
void setup() {
111+
// Initialize serial and wait for port to open:
112+
Serial.begin(9600);
113+
delay(1500);
114+
// Defined in thingProperties.h
115+
initProperties();
116+
// Connect to Arduino IoT Cloud
117+
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
118+
setDebugMessageLevel(2);
119+
ArduinoCloud.printDebugInfo();
120+
}
121+
void loop() {
122+
ArduinoCloud.update();
123+
if (chat ==
124+
"
125+
<3
126+
"
127+
) {
128+
chat = "\U00002764";
129+
}
130+
}
131+
void onChatChange() {
132+
//this function is automatically generated
133+
}
134+
void onHeartBeatChange() {
135+
//this function is automatically generated
136+
}
137+
void onPressedChange() {
138+
//this function is automatically generated
139+
}
140+
```
141+
142+
After uploading the sketch above to your **Nano RP2040 Connect** board, you need to create a messenger widget where you can send and receive messages. To achieve that, navigate to **Arduino IoT Cloud -> Dashboards -> Build Dashboard -> Add -> Messenger Widget**.
143+
144+
Now, you can try it out! Send `<3` via the messenger chat, and you should receive a heart. The "heart response" is sent from the physical Arduino board, and if it works, we know the connection between the Arduino Cloud and your Arduino is working!
145+
146+
![Arduino IoT Bundle](assets/screenshot_2022-03-30_at_14_26_54_stYUq5y7c2.png)
147+
148+
**Sending Hugs to the Cloud**
149+
150+
We also want to be able to "send hugs" from the Arduino to the Arduino Cloud, and we will do so by measuring capacitance. In a nutshell, we will build a simple capacitance meter, using **tinfoil&jumperwires** connected to analog inputs.
151+
152+
The tinfoil will be placed inside a pillow, and when we squeeze the pillow, the capacitance will change. When the capacitance change, we will change a boolean **(pressed)** to **true**, which will be visible in a dashboard.
153+
154+
Upload the example sketch, connect the wires and see the result on the console:
155+
156+
```
157+
#include "thingProperties.h"
158+
void setup() {
159+
// Initialize serial and wait for port to open:
160+
Serial.begin(9600);
161+
delay(1500);
162+
// Defined in thingProperties.h
163+
initProperties();
164+
// Connect to Arduino IoT Cloud
165+
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
166+
setDebugMessageLevel(2);
167+
ArduinoCloud.printDebugInfo();
168+
}
169+
void loop() {
170+
ArduinoCloud.update();
171+
if (chat ==
172+
"
173+
<3
174+
"
175+
) {
176+
chat = "\U00002764";
177+
}
178+
179+
int reading = analogRead(A0);
180+
181+
//threshold set to 500, this can be adjusted to your liking
182+
if(reading > 500){
183+
pressed = true;
184+
}
185+
else{
186+
pressed = false;
187+
}
188+
}
189+
void onChatChange() {
190+
//this function is automatically generated
191+
}
192+
void onHeartBeatChange() {
193+
//this function is automatically generated
194+
}
195+
void onPressedChange() {
196+
//this function is automatically generated
197+
}
198+
```
199+
200+
**The Heartbeat (and Final Sketch)**
201+
202+
The longer you hug, the more heartbeats you hear. The more the heart beats the more love you send (and different emoji, as well).
203+
204+
We will emulate the sound of a heartbeat using a buzzer and a few simple lines of code.
205+
206+
```
207+
#include "thingProperties.h"
208+
int Buzzer = 8;
209+
void setup() {
210+
// Initialize serial and wait for port to open:
211+
Serial.begin(9600);
212+
delay(1500);
213+
// Defined in thingProperties.h
214+
initProperties();
215+
// Connect to Arduino IoT Cloud
216+
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
217+
setDebugMessageLevel(2);
218+
ArduinoCloud.printDebugInfo();
219+
}
220+
void loop() {
221+
ArduinoCloud.update();
222+
if (chat ==
223+
"
224+
<3
225+
"
226+
) {
227+
chat = "\U00002764";
228+
}
229+
230+
int reading = analogRead(A0);
231+
232+
//threshold set to 500, this can be adjusted to your liking
233+
if(reading > 500){
234+
pressed = true;
235+
236+
//execute the activateBuzzer() function when threshold is being met.
237+
activateBuzzer();
238+
heart_beat +=1; //increase heart_beat value for every "heart beat".
239+
}
240+
else{
241+
pressed = false;
242+
}
243+
}
244+
void activateBuzzer() {
245+
tone(Buzzer, 31, 200); // tone(Pin, Note, Duration);
246+
delay(200);
247+
tone(Buzzer, 31, 400);
248+
delay(200);
249+
noTone(Buzzer);
250+
delay(1000);
251+
}
252+
void onChatChange() {
253+
//this function is automatically generated
254+
}
255+
void onHeartBeatChange() {
256+
//this function is automatically generated
257+
}
258+
void onPressedChange() {
259+
//this function is automatically generated
260+
}
261+
```
262+
263+
### Dashboard
264+
265+
Finally, we need to build a dashboard to communicate with our loved one. In addition to the messenger widget we added to our dashboard, we will add two more widgets:
266+
267+
* A Gauge widget linked to the “heart\_beat” variable
268+
* A LED widget linked to the “pressed” variable
269+
270+
![Arduino IoT Bundle](assets/love-you-pillow-02_ydUsouV4bl.gif)
271+
272+
Next, you need to download the Arduino IoT Cloud Remote app. Both iOS and Android versions are available and can be downloaded for free from the [App Store ](https://apps.apple.com/us/app/id1514358431)and [Google Play.](https://play.google.com/store/apps/details?id=cc.arduino.cloudiot) The app can be used to display and interact with your Dashboards.
273+
274+
After downloading the app on the device of your loved one, you can login with your Arduino Create account and open your “love-you-pillow” dashboard. Now your loved one can use the app to send and receive hugs from you virtually, via the Love You Pillow!
275+
276+
### #ProTip: Shareable Dashboards
277+
278+
Instead of logging into your account on the Arduino IoT Cloud Remote app, you can share your dashboards with any number with friends. This feature is only available if you have [the Arduino Maker subscription.](https://cloud.arduino.cc/plans?)
279+
280+
### Want to Know More?
281+
282+
This tutorial is part of a series of experiments that familiarize you with the Arduino RP2040 and IoT. All experiments can be built using the components contained in the IoT Bundle.
283+
284+
* [Puzzle Box with Arduino IoT Bundle](https://www.hackster.io/Arduino_Genuino/puzzlebox-with-arduino-mkr-iot-bundle-1010-96d09c?auth_token=cc56a48599fb1e5b8686a6bddd94f7df)
285+
* [Pavlov's Cat with the Arduino IoT Bundle](https://www.hackster.io/Arduino_Genuino/pavlov-s-cat-with-arduino-mkr-iot-bundle-1010-d5b388?auth_token=f4760e59144a21d6755a8b2b9826be67)
286+
* [Plant Communicator with the Arduino IoT Bundle](https://www.hackster.io/Arduino_Genuino/plant-communicator-with-the-arduino-mkr-iot-bundle-1010-918636?auth_token=897d5601b6794422646ec60ccf8f0772)
287+
* [The Nerd with the Arduino IoT Bundle](https://www.hackster.io/Arduino_Genuino/the-nerd-with-arduino-iot-mkr-wifi-1010-bundle-b1d0ca?auth_token=8f8951807d454511e857e40ea82f73f9)
Loading
Loading
Loading

0 commit comments

Comments
 (0)