diff --git a/1-getting-started/lessons/1-introduction-to-iot/pi.md b/1-getting-started/lessons/1-introduction-to-iot/pi.md
index d9758603..3e8fffda 100644
--- a/1-getting-started/lessons/1-introduction-to-iot/pi.md
+++ b/1-getting-started/lessons/1-introduction-to-iot/pi.md
@@ -49,7 +49,9 @@ To program the Pi using the Grove sensors and actuators, you will need to instal
curl -sL https://github.com/Seeed-Studio/grove.py/raw/master/install.sh | sudo bash -s -
```
- One of the powerful features of Python is the ability to install [pip packages](https://pypi.org) - these are packages of code written by other people and published to the Internet. You can install a pip package onto your computer with one command, then use that package in your code. This Grove install script will install the pip packages you will use to work with the Grove hardware from Python.
+ One of the powerful features of Python is the ability to install [Pip packages](https://pypi.org) - these are packages of code written by other people and published to the Internet. You can install a Pip package onto your computer with one command, then use that package in your code. This Grove install script will install the Pip packages you will use to work with the Grove hardware from Python.
+
+ > đ By default when you install a package it is available everywhere on your computer, and this can lead to problems with package versions - such as one application depending on one version of a package that breaks when you install a new version for a different application. To work around this problem, you can use a [Python virtual environment](https://docs.python.org/3/library/venv.html), essentially a copy of Python in a dedicated folder, and when you install Pip packages they get installed just to that folder. You won't be using virtual environments when using your Pi. The Grove install script installs the Grove Python packages globally, so to use a virtual environment you would need to set up a virtual environment then manually re-install the Grove packages inside that environment. It's easier to just use global packages, especially as a lot of Pi developers will re-flash a clean SD card for each project.
1. Reboot the Pi either using the menu or running the following command in the Terminal:
@@ -163,7 +165,9 @@ Configure the installed Pi software and install the Grove libraries.
curl -sL https://github.com/Seeed-Studio/grove.py/raw/master/install.sh | sudo bash -s -
```
- One of the powerful features of Python is the ability to install [pip packages](https://pypi.org) - these are packages of code written by other people and published to the Internet. You can install a pip package onto your computer with one command, then use that package in your code. This Grove install script will install the pip packages you will use to work with the Grove hardware from Python.
+ One of the powerful features of Python is the ability to install [Pip packages](https://pypi.org) - these are packages of code written by other people and published to the Internet. You can install a Pip package onto your computer with one command, then use that package in your code. This Grove install script will install the Pip packages you will use to work with the Grove hardware from Python.
+
+ > đ By default when you install a package it is available everywhere on your computer, and this can lead to problems with package versions - such as one application depending on one version of a package that breaks when you install a new version for a different application. To work around this problem, you can use a [Python virtual environment](https://docs.python.org/3/library/venv.html), essentially a copy of Python in a dedicated folder, and when you install Pip packages they get installed just to that folder. You won't be using virtual environments when using your Pi. The Grove install script installs the Grove Python packages globally, so to use a virtual environment you would need to set up a virtual environment then manually re-install the Grove packages inside that environment. It's easier to just use global packages, especially as a lot of Pi developers will re-flash a clean SD card for each project.
1. Reboot the Pi by running the following command:
diff --git a/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md b/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md
index ec101791..132186ba 100644
--- a/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md
+++ b/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md
@@ -30,13 +30,15 @@ This app will be in a folder called `nightlight`, and it will be re-used with di
### Configure a Python virtual environment
-One of the powerful features of Python is the ability to install [pip packages](https://pypi.org) - these are packages of code written by other people and published to the Internet. You can install a pip package onto your computer with one command, then use that package in your code. You'll be using pip to install a package to talk to CounterFit.
+One of the powerful features of Python is the ability to install [Pip packages](https://pypi.org) - these are packages of code written by other people and published to the Internet. You can install a Pip package onto your computer with one command, then use that package in your code. You'll be using Pip to install a package to talk to CounterFit.
-By default when you install a package it is available everywhere on your computer, and this can lead to problems with package versions - such as one application depending on one version of a package that breaks when you install a new version for a different application. To work around this problem, you can use a [Python virtual environment](https://docs.python.org/3/library/venv.html), essentially a copy of Python in a dedicated folder, and when you install pip packages they get installed just to that folder.
+By default when you install a package it is available everywhere on your computer, and this can lead to problems with package versions - such as one application depending on one version of a package that breaks when you install a new version for a different application. To work around this problem, you can use a [Python virtual environment](https://docs.python.org/3/library/venv.html), essentially a copy of Python in a dedicated folder, and when you install Pip packages they get installed just to that folder.
+
+> đ If you are using a Raspberry Pi then you didn't set up a virtual environment on that device to manage Pip packages, instead you are using global packages, as the Grove packages are installed globally by the installer script.
#### Task - configure a Python virtual environment
-Configure a Python virtual environment and install the pip packages for CounterFit.
+Configure a Python virtual environment and install the Pip packages for CounterFit.
1. From your terminal or command line, run the following at a location of your choice to create and navigate to a new directory:
@@ -91,7 +93,7 @@ Configure a Python virtual environment and install the pip packages for CounterF
> đ Your Python version may be different - as long as it's version 3.6 or higher you are good. If not, delete this folder, install a newer version of Python and try again.
-1. Run the following commands to install the pip packages for CounterFit. These packages include the main CounterFit app as well as shims for Grove hardware. These shims allow you to write code as if you were programming using physical sensors and actuators from the Grove ecosystem but connected to virtual IoT devices.
+1. Run the following commands to install the Pip packages for CounterFit. These packages include the main CounterFit app as well as shims for Grove hardware. These shims allow you to write code as if you were programming using physical sensors and actuators from the Grove ecosystem but connected to virtual IoT devices.
```sh
pip install CounterFit
diff --git a/1-getting-started/lessons/3-sensors-and-actuators/translations/assignment.hi.md b/1-getting-started/lessons/3-sensors-and-actuators/translations/assignment.hi.md
new file mode 100644
index 00000000..0ad7dc00
--- /dev/null
+++ b/1-getting-started/lessons/3-sensors-and-actuators/translations/assignment.hi.md
@@ -0,0 +1,17 @@
+# ⤰ā¤ŋ⤏⤰āĨ⤠⤏āĨā¤ā¤¸ā¤° ā¤ā¤° ā¤ā¤āĨā¤āĨā¤ā¤ā¤°āĨ⤏
+
+## ⤍ā¤ŋ⤰āĨā¤ĻāĨā¤ļ
+
+ā¤ā¤¸ ā¤Ēā¤žā¤ ā¤ŽāĨ⤠⤏āĨā¤ā¤¸ā¤° ā¤ā¤° ā¤ā¤āĨā¤āĨā¤ā¤ā¤°āĨ⤏ ā¤ļā¤žā¤Žā¤ŋ⤞ ā¤ĨāĨāĨ¤ ā¤
⤍āĨ⤏ā¤ā¤§ā¤žā¤¨ ā¤ā¤°āĨ⤠ā¤ā¤° ā¤ā¤ ⤏āĨā¤ā¤¸ā¤° ⤤ā¤Ĩā¤ž ā¤ā¤ ā¤ā¤āĨā¤āĨā¤ā¤ā¤° ā¤ā¤ž ā¤ĩ⤰āĨ⤪⤍ ā¤ā¤°āĨ⤠ā¤ā¤ŋ⤏ā¤ā¤ž ā¤ā¤Ē⤝āĨ⤠IoT ā¤ĻāĨā¤ĩ ā¤ā¤ŋ⤠ā¤āĨ ā¤¸ā¤žā¤Ĩ ā¤ā¤ŋā¤¯ā¤ž ā¤ā¤ž ⤏ā¤ā¤¤ā¤ž ā¤šāĨ, ā¤ā¤ŋā¤¸ā¤ŽāĨ⤠ā¤ļā¤žā¤Žā¤ŋ⤞ ā¤šāĨā¤:
+
+* ā¤¯ā¤š ā¤āĨā¤¯ā¤ž ā¤ā¤°ā¤¤ā¤ž ā¤šāĨ
+* ā¤
ā¤ā¤Ļ⤰ ā¤ā¤¸āĨ⤤āĨā¤Žā¤žā¤˛ ā¤šāĨ⤍āĨ ā¤ĩā¤žā¤˛āĨ ā¤ā¤˛āĨā¤āĨā¤āĨ⤰āĨ⤍ā¤ŋā¤āĨ⤏ / ā¤šā¤žā¤°āĨā¤Ąā¤ĩāĨ⤝⤰
+* ā¤āĨā¤¯ā¤ž ā¤¯ā¤š ā¤ā¤¨ā¤žā¤˛āĨā¤ ā¤¯ā¤ž ā¤Ąā¤ŋā¤ā¤ŋā¤ā¤˛ ā¤šāĨ
+* ā¤ā¤¨ā¤ĒāĨā¤ ā¤¯ā¤ž ā¤Žā¤žā¤Ē ā¤āĨ ⤝āĨ⤍ā¤ŋ⤠ā¤ā¤° ⤰āĨā¤ā¤ ā¤āĨā¤¯ā¤ž ā¤šāĨ
+
+## ⤰āĨā¤ŦāĨ⤰ā¤ŋā¤
+
+| ā¤Žā¤žā¤¨ā¤Ļā¤ā¤Ą | ā¤
⤍āĨā¤ā¤°ā¤ŖāĨ⤝ | ā¤Ē⤰āĨā¤¯ā¤žā¤ĒāĨ⤤ | ⤏āĨā¤§ā¤žā¤° ā¤āĨ ā¤ā¤°āĨ⤰⤤ |
+| -------- | ------------- | -------- | ----------------- |
+| ā¤ā¤ ⤏āĨā¤ā¤¸ā¤° ā¤ā¤ž ā¤ĩ⤰āĨ⤪⤍ ā¤ā¤°āĨ⤠| ā¤ā¤Ē⤰ ⤏āĨā¤āĨā¤Ŧā¤ĻāĨ⤧ ⤏ā¤āĨ 4 ā¤
⤍āĨā¤ā¤žā¤āĨ⤠ā¤āĨ ā¤ĩā¤ŋā¤ĩ⤰⤪ ā¤¸ā¤šā¤ŋ⤤ ā¤ā¤ ⤏āĨā¤ā¤¸ā¤° ā¤ā¤ž ā¤ĩ⤰āĨ⤪⤍ ā¤ā¤ŋā¤¯ā¤ž ā¤ā¤¯ā¤ž ā¤šāĨāĨ¤ | ā¤ā¤ ⤏āĨā¤ā¤¸ā¤° ā¤ā¤ž ā¤ĩ⤰āĨ⤪⤍ ā¤ā¤ŋā¤¯ā¤ž ā¤ā¤¯ā¤ž ā¤šāĨ, ⤞āĨā¤ā¤ŋ⤍ ā¤ā¤Ē⤰ ā¤āĨ ā¤āĨā¤ĩ⤞ 2-3 ā¤
⤍āĨā¤ā¤žā¤ ā¤ĒāĨ⤰ā¤Ļā¤žā¤¨ ā¤ā¤°ā¤¨āĨ ā¤ŽāĨ⤠⤏ā¤āĨā¤ˇā¤Ž ā¤ĨāĨ | ā¤ā¤ ⤏āĨā¤ā¤¸ā¤° ā¤ā¤ž ā¤ĩ⤰āĨ⤪⤍ ā¤ā¤ŋā¤¯ā¤ž ā¤šāĨ, ⤞āĨā¤ā¤ŋ⤍ ā¤ā¤Ē⤰ ā¤Ļā¤ŋ⤠ā¤ā¤ ā¤
⤍āĨā¤ā¤žā¤āĨā¤ ā¤ŽāĨ⤠⤏āĨ ā¤āĨā¤ĩ⤞ 1 ā¤ĒāĨ⤰ā¤Ļā¤žā¤¨ ā¤ā¤°ā¤¨āĨ ā¤ŽāĨ⤠⤏ā¤āĨā¤ˇā¤Ž ā¤ĨāĨ |
+| ā¤ā¤ ā¤ā¤āĨā¤āĨā¤ā¤ā¤° ā¤ā¤ž ā¤ĩ⤰āĨ⤪⤍ ā¤ā¤°āĨ⤠| ā¤ā¤Ē⤰ ⤏āĨā¤āĨā¤Ŧā¤ĻāĨ⤧ ⤏ā¤āĨ 4 ā¤ĩ⤰āĨā¤āĨ⤠ā¤āĨ ā¤ĩā¤ŋā¤ĩ⤰⤪ ā¤¸ā¤šā¤ŋ⤤ ā¤ā¤ ā¤ā¤āĨā¤āĨā¤ā¤ā¤° ā¤ā¤ž ā¤ĩ⤰āĨ⤪⤍ ā¤ā¤ŋā¤¯ā¤ž ā¤ā¤¯ā¤ž ā¤šāĨāĨ¤ | ā¤ā¤ ā¤ā¤āĨā¤āĨā¤ā¤ā¤° ā¤ā¤ž ā¤ĩ⤰āĨ⤪⤍ ā¤ā¤ŋā¤¯ā¤ž ā¤ā¤¯ā¤ž ā¤šāĨ, ⤞āĨā¤ā¤ŋ⤍ ā¤ā¤Ē⤰ ā¤āĨ ā¤āĨā¤ĩ⤞ 2-3 ā¤
⤍āĨā¤ā¤žā¤ ā¤ĒāĨ⤰ā¤Ļā¤žā¤¨ ā¤ā¤°ā¤¨āĨ ā¤ŽāĨ⤠⤏ā¤āĨā¤ˇā¤Ž ā¤ĨāĨ | ā¤ā¤ ā¤ā¤āĨā¤āĨā¤ā¤ā¤° ā¤ā¤ž ā¤ĩ⤰āĨ⤪⤍ ā¤ā¤ŋā¤¯ā¤ž ā¤šāĨ, ⤞āĨā¤ā¤ŋ⤍ ā¤ā¤Ē⤰ ā¤āĨ ā¤āĨā¤ĩ⤞ 1 ā¤
⤍āĨā¤ā¤žā¤ ā¤ĒāĨ⤰ā¤Ļā¤žā¤¨ ā¤ā¤°ā¤¨āĨ ā¤ŽāĨ⤠⤏ā¤āĨā¤ˇā¤Ž ā¤ĨāĨ |
diff --git a/1-getting-started/lessons/3-sensors-and-actuators/translations/pi-actuator.hi.md b/1-getting-started/lessons/3-sensors-and-actuators/translations/pi-actuator.hi.md
new file mode 100644
index 00000000..55e747a0
--- /dev/null
+++ b/1-getting-started/lessons/3-sensors-and-actuators/translations/pi-actuator.hi.md
@@ -0,0 +1,116 @@
+# ā¤°ā¤žā¤¤ ā¤ā¤ž ā¤ā¤ŋā¤°ā¤žā¤ā¤ŧ ā¤Ŧā¤¨ā¤žā¤ā¤ - ā¤°ā¤žā¤¸āĨā¤Ēā¤ŦāĨ⤰āĨ ā¤Ēā¤žā¤
+
+ā¤Ēā¤žā¤ ā¤āĨ ā¤ā¤¸ ā¤ā¤žā¤ ā¤ŽāĨā¤, ā¤ā¤Ē ā¤
ā¤Ē⤍āĨ ā¤°ā¤žā¤¸āĨā¤Ēā¤ŦāĨ⤰āĨ ā¤Ēā¤žā¤ ā¤ŽāĨ⤠ā¤ā¤ ā¤ā¤˛ā¤ā¤ĄāĨ ā¤āĨā¤Ąā¤ŧāĨā¤ā¤āĨ ā¤ā¤° ā¤ā¤¸ā¤ā¤ž ā¤ā¤Ē⤝āĨā¤ ā¤°ā¤žā¤¤ ā¤ā¤ž ā¤ā¤ŋā¤°ā¤žā¤ā¤ŧ ā¤Ŧā¤¨ā¤žā¤¨āĨ ā¤āĨ ⤞ā¤ŋ⤠ā¤ā¤°āĨā¤ā¤āĨāĨ¤
+
+## ā¤šā¤žā¤°āĨā¤Ąā¤ĩāĨ⤝⤰
+
+ā¤¨ā¤žā¤ā¤ā¤˛ā¤žā¤ā¤ ā¤āĨ ā¤
ā¤Ŧ ā¤ā¤ ā¤ā¤āĨā¤āĨā¤ā¤ā¤° ā¤āĨ ā¤ā¤°āĨ⤰⤤ ā¤šāĨāĨ¤
+
+ā¤ā¤āĨā¤āĨā¤ā¤ā¤° ā¤ā¤ **LED**, ā¤ā¤ [ā¤ĒāĨ⤰ā¤ā¤žā¤ļ ā¤ā¤¤āĨ⤏⤰āĨā¤ā¤ ā¤Ąā¤žā¤¯āĨā¤Ą](https://wikipedia.org/wiki/Light-emmitting_diode) ā¤šāĨ ā¤āĨ ā¤ā¤°ā¤ā¤ ā¤ĒāĨ⤰ā¤ĩā¤žā¤šā¤ŋ⤤ ā¤šāĨ⤍āĨ ā¤Ē⤰ ā¤ĒāĨ⤰ā¤ā¤žā¤ļ ā¤ā¤ž ā¤ā¤¤āĨ⤏⤰āĨā¤ā¤¨ ā¤ā¤°ā¤¤ā¤ž ā¤šāĨāĨ¤ ā¤¯ā¤š ā¤ā¤ ā¤Ąā¤ŋā¤ā¤ŋā¤ā¤˛ ā¤ā¤āĨā¤āĨ⤝āĨā¤ā¤ā¤° ā¤šāĨ ā¤ā¤ŋā¤¸ā¤ŽāĨ⤠2 ⤏āĨā¤Ĩā¤ŋ⤤ā¤ŋ ā¤šāĨā¤, ā¤ā¤žā¤˛āĨ ā¤ā¤° ā¤Ŧā¤ā¤ĻāĨ¤ 1 ā¤ā¤ž ā¤Žā¤žā¤¨ ā¤āĨā¤ā¤¨āĨ ⤏āĨ ā¤ā¤˛ā¤ā¤ĄāĨ ā¤ā¤žā¤˛āĨ ā¤šāĨ ā¤ā¤žā¤¤āĨ ā¤šāĨ, ā¤ā¤° 0 ā¤ā¤¸āĨ ā¤Ŧā¤ā¤Ļ ā¤ā¤° ā¤ĻāĨā¤¤ā¤ž ā¤šāĨāĨ¤ ā¤ā¤˛ā¤ā¤ĄāĨ ā¤ā¤ ā¤Ŧā¤žā¤šā¤°āĨ ā¤āĨ⤰āĨā¤ĩ ā¤ā¤āĨā¤āĨ⤝āĨā¤ā¤ā¤° ā¤šāĨ ā¤ā¤° ā¤ā¤¸āĨ ā¤°ā¤žā¤¸āĨā¤Ēā¤ŦāĨ⤰āĨ ā¤Ēā¤žā¤ ā¤Ē⤰ ā¤āĨ⤰āĨā¤ĩ ā¤ŦāĨ⤏ ā¤šāĨ⤠⤏āĨ ā¤āĨā¤Ąā¤ŧā¤ž ā¤ā¤žā¤¨ā¤ž ā¤ā¤žā¤šā¤ŋā¤āĨ¤
+
+⤏āĨā¤ĄāĨ ā¤āĨā¤Ą ā¤ŽāĨā¤ ā¤¨ā¤žā¤ā¤ā¤˛ā¤žā¤ā¤ ⤤⤰āĨā¤ ā¤šāĨ:
+
+```ā¤ā¤ā¤ā¤ĒāĨā¤
+ā¤ĒāĨ⤰ā¤ā¤žā¤ļ ⤏āĨ⤤⤰ ā¤āĨ ā¤ā¤žā¤ā¤ ā¤ā¤°āĨā¤āĨ¤
+⤝ā¤Ļā¤ŋ ā¤ĒāĨ⤰ā¤ā¤žā¤ļ 300 . ⤏āĨ ā¤ā¤Ž ā¤šāĨ
+ ā¤ā¤˛ā¤ā¤ĄāĨ ā¤ā¤žā¤˛āĨ ā¤ā¤°āĨā¤
+ā¤
⤍āĨ⤝ā¤Ĩā¤ž
+ ā¤ā¤˛ā¤ā¤ĄāĨ ā¤Ŧā¤ā¤Ļ ā¤ā¤°āĨā¤
+```
+
+### ā¤ā¤˛ā¤ā¤ĄāĨ ā¤ā¤¨āĨā¤āĨ⤠ā¤ā¤°āĨā¤
+
+ā¤āĨ⤰āĨā¤ĩ ā¤ā¤˛ā¤ā¤ĄāĨ ā¤ā¤˛ā¤ā¤ĄāĨ ā¤āĨ ā¤ā¤¯ā¤¨ ā¤āĨ ā¤¸ā¤žā¤Ĩ ā¤ā¤ ā¤ŽāĨā¤ĄāĨ⤝āĨ⤞ ā¤āĨ ⤰āĨā¤Ē ā¤ŽāĨ⤠ā¤ā¤¤ā¤ž ā¤šāĨ, ā¤ā¤ŋ⤏⤏āĨ ā¤ā¤Ē ⤰ā¤ā¤ ā¤āĨ⤍ ⤏ā¤ā¤¤āĨ ā¤šāĨā¤āĨ¤
+
+#### ā¤ā¤žā¤°āĨ⤝ - ā¤ā¤˛ā¤ā¤ĄāĨ ā¤ā¤¨āĨā¤āĨ⤠ā¤ā¤°āĨā¤
+
+ā¤ā¤˛ā¤ā¤ĄāĨ ā¤ā¤¨āĨā¤āĨ⤠ā¤ā¤°āĨā¤āĨ¤
+
+
+
+1. ā¤
ā¤Ē⤍āĨ ā¤Ē⤏ā¤ā¤ĻāĨā¤Ļā¤ž ā¤ā¤˛ā¤ā¤ĄāĨ ā¤āĨ⤍āĨ⤠ā¤ā¤° ā¤ā¤¸ā¤āĨ ā¤ĒāĨ⤰āĨ⤠ā¤āĨ ā¤ā¤˛ā¤ā¤ĄāĨ ā¤ŽāĨā¤ĄāĨ⤝āĨ⤞ ā¤āĨ ā¤ĻāĨ ā¤āĨā¤ĻāĨā¤ ā¤ŽāĨā¤ ā¤Ąā¤žā¤˛āĨā¤āĨ¤
+
+ ā¤ā¤˛ ā¤ ā¤ĄāĨ ā¤ĒāĨ⤰ā¤ā¤žā¤ļ ā¤ā¤¤āĨ⤏⤰āĨā¤ā¤ ā¤Ąā¤žā¤¯āĨā¤Ą ā¤šāĨā¤, ā¤ā¤° ā¤Ąā¤žā¤¯āĨā¤Ą ā¤ā¤˛āĨā¤āĨā¤āĨ⤰āĨ⤍ā¤ŋ⤠ā¤ā¤Ēā¤ā¤°ā¤Ŗ ā¤šāĨ⤠ā¤āĨ ā¤āĨā¤ĩ⤞ ā¤ā¤ ā¤šāĨ ā¤¤ā¤°ā¤š ⤏āĨ ā¤ā¤°ā¤ā¤ ⤞āĨ ā¤ā¤ž ⤏ā¤ā¤¤āĨ ā¤šāĨā¤āĨ¤ ā¤ā¤¸ā¤ā¤ž ā¤Žā¤¤ā¤˛ā¤Ŧ ā¤šāĨ ā¤ā¤ŋ ā¤ā¤˛ā¤ā¤ĄāĨ ā¤āĨ ā¤¸ā¤šāĨ ⤤⤰āĨā¤āĨ ⤏āĨ ā¤āĨā¤Ąā¤ŧ⤍āĨ ā¤āĨ ā¤ā¤°āĨ⤰⤤ ā¤šāĨ, ā¤
⤍āĨ⤝ā¤Ĩā¤ž ā¤¯ā¤š ā¤ā¤žā¤Ž ā¤¨ā¤šāĨ⤠ā¤ā¤°āĨā¤ā¤žāĨ¤
+
+ ā¤ā¤˛ā¤ā¤ĄāĨ ā¤āĨ ā¤ĒāĨ⤰āĨā¤ ā¤ŽāĨ⤠⤏āĨ ā¤ā¤ ā¤ĒāĨ⤏ā¤ŋā¤ā¤ŋā¤ĩ ā¤Ēā¤ŋ⤍ ā¤šāĨ, ā¤ĻāĨā¤¸ā¤°ā¤ž ⤍āĨā¤āĨā¤ā¤ŋā¤ĩ ā¤Ēā¤ŋ⤍ ā¤šāĨāĨ¤ ā¤ā¤˛ā¤ā¤ĄāĨ ā¤ĒāĨ⤰āĨ ā¤¤ā¤°ā¤š ā¤āĨ⤞ ā¤¨ā¤šāĨā¤ ā¤šāĨ ā¤ā¤° ā¤ā¤ ⤤⤰ā¤Ģ ⤏āĨ ā¤ĨāĨā¤Ąā¤ŧāĨ ā¤ā¤Ēā¤āĨ ā¤šāĨāĨ¤ ā¤ĨāĨā¤Ąā¤ŧā¤ž ā¤Ŧā¤ĸā¤ŧā¤ž ā¤šāĨ⤠ā¤Ēā¤āĨ⤎ ⤍āĨā¤āĨā¤ā¤ŋā¤ĩ ā¤Ēā¤ŋ⤍ ā¤šāĨāĨ¤ ā¤ā¤Ŧ ā¤ā¤Ē ā¤ā¤˛ā¤ā¤ĄāĨ ā¤āĨ ā¤ŽāĨā¤ĄāĨ⤝āĨ⤞ ⤏āĨ ā¤ā¤¨āĨā¤āĨ⤠ā¤ā¤°ā¤¤āĨ ā¤šāĨā¤, ⤤āĨ ⤏āĨ⤍ā¤ŋā¤ļāĨā¤ā¤ŋ⤤ ā¤ā¤°āĨ⤠ā¤ā¤ŋ ā¤āĨā¤˛ā¤žā¤ā¤žā¤° ⤤⤰ā¤Ģ ā¤ĩā¤žā¤˛ā¤ž ā¤Ēā¤ŋ⤍ ā¤ŽāĨā¤ĄāĨ⤝āĨ⤞ ā¤āĨ ā¤Ŧā¤žā¤šā¤° + ā¤ā¤ŋā¤šāĨ⤍ā¤ŋ⤤ ⤏āĨā¤āĨ⤠⤏āĨ ā¤āĨā¤Ąā¤ŧā¤ž ā¤šāĨ, ā¤ā¤° ā¤Ŧā¤ĸā¤ŧā¤ž ā¤šāĨā¤ā¤ž ā¤Ēā¤āĨ⤎ ⤏āĨā¤āĨ⤠⤏āĨ ā¤Žā¤§āĨ⤝ ā¤āĨ ā¤ā¤°āĨā¤Ŧ ā¤āĨā¤Ąā¤ŧā¤ž ā¤šāĨā¤ ā¤šāĨāĨ¤
+
+1. ā¤ā¤˛ā¤ā¤ĄāĨ ā¤ŽāĨā¤ĄāĨ⤝āĨ⤞ ā¤ŽāĨ⤠ā¤ā¤ ⤏āĨā¤Ēā¤ŋ⤍ ā¤Ŧā¤ā¤¨ ā¤šāĨ ā¤āĨ ā¤ā¤Ēā¤āĨ ā¤ā¤Žā¤ ā¤āĨ ⤍ā¤ŋ⤝ā¤ā¤¤āĨ⤰ā¤ŋ⤤ ā¤ā¤°ā¤¨āĨ ā¤āĨ ā¤
⤍āĨā¤Žā¤¤ā¤ŋ ā¤ĻāĨā¤¤ā¤ž ā¤šāĨāĨ¤ ā¤ā¤¸āĨ ā¤ļāĨ⤰āĨ ā¤ā¤°ā¤¨āĨ ā¤āĨ ⤞ā¤ŋ⤠ā¤ā¤¸āĨ ā¤Ļā¤āĨ⤎ā¤ŋā¤Ŗā¤žā¤ĩ⤰āĨ⤤ ā¤āĨā¤Žā¤žā¤ā¤° ā¤ļāĨ⤰āĨ ā¤ā¤°āĨā¤, ā¤ā¤šā¤žā¤ ⤤⤠ââââā¤¯ā¤š ā¤ā¤ ā¤āĨā¤āĨ ⤏āĨ ā¤Ģā¤ŋ⤞ā¤ŋā¤ĒāĨ⤏ ā¤šāĨā¤Ą ⤏āĨā¤āĨ⤰āĨā¤ĄāĨā¤°ā¤žā¤ā¤ĩ⤰ ā¤ā¤ž ā¤ā¤Ē⤝āĨ⤠ā¤ā¤°ā¤āĨ ā¤ā¤žā¤ā¤ā¤žāĨ¤
+
+1. ā¤ā¤˛ā¤ā¤ĄāĨ ā¤ŽāĨā¤ĄāĨ⤝āĨ⤞ ā¤Ē⤰ ⤏āĨā¤āĨā¤ ā¤ŽāĨ⤠ā¤āĨ⤰āĨā¤ĩ ā¤āĨā¤Ŧ⤞ ā¤ā¤ž ā¤ā¤ ⤏ā¤ŋā¤°ā¤ž ā¤Ąā¤žā¤˛āĨā¤āĨ¤ ā¤¯ā¤š ā¤āĨā¤ĩ⤞ ā¤ā¤ ā¤šāĨ ā¤¤ā¤°ā¤š ⤏āĨ ā¤āĨā¤ŽāĨā¤ā¤žāĨ¤
+
+1. ā¤°ā¤žā¤¸āĨā¤Ēā¤ŦāĨ⤰āĨ ā¤Ēā¤žā¤ ā¤āĨ ā¤Ŧā¤ā¤Ļ ā¤šāĨ⤍āĨ ā¤āĨ ā¤¸ā¤žā¤Ĩ, ā¤āĨ⤰āĨā¤ĩ ā¤āĨā¤Ŧ⤞ ā¤āĨ ā¤ĻāĨ⤏⤰āĨ ā¤āĨ⤰ ā¤āĨ ā¤Ēā¤žā¤ ā¤¸āĨ ā¤āĨā¤Ąā¤ŧāĨ ā¤āĨ⤰āĨā¤ĩ ā¤ŦāĨ⤏ ā¤šāĨ⤠ā¤Ē⤰ **D5** ā¤ā¤ŋā¤šāĨ⤍ā¤ŋ⤤ ā¤Ąā¤ŋā¤ā¤ŋā¤ā¤˛ ⤏āĨā¤āĨ⤠⤏āĨ ā¤ā¤¨āĨā¤āĨ⤠ā¤ā¤°āĨā¤āĨ¤ ā¤¯ā¤š ⤏āĨā¤āĨ⤠GPIO ā¤Ēā¤ŋ⤍ ā¤āĨ ā¤Ŧā¤ā¤˛ ā¤ŽāĨ⤠⤏āĨā¤āĨ⤠ā¤āĨ ā¤Ēā¤ā¤āĨ⤤ā¤ŋ ā¤ŽāĨ⤠ā¤Ŧā¤žā¤ā¤ ā¤ā¤° ⤏āĨ ā¤ĻāĨā¤¸ā¤°ā¤ž ā¤šāĨāĨ¤
+
+
+
+## ā¤°ā¤žā¤¤ ā¤āĨ ā¤ā¤ā¤žā¤˛āĨ ā¤ā¤ž ā¤ĒāĨ⤰āĨā¤āĨā¤°ā¤žā¤Ž
+
+ā¤¨ā¤žā¤ā¤ā¤˛ā¤žā¤ā¤ ā¤āĨ ā¤
ā¤Ŧ ā¤āĨ⤰āĨā¤ĩ ā¤˛ā¤žā¤ā¤ ⤏āĨā¤ā¤¸ā¤° ā¤ā¤° ā¤āĨ⤰āĨā¤ĩ ā¤ā¤˛ā¤ā¤ĄāĨ ā¤ā¤ž ā¤ā¤Ē⤝āĨ⤠ā¤ā¤°ā¤āĨ ā¤ĒāĨ⤰āĨā¤āĨā¤°ā¤žā¤Ž ā¤ā¤ŋā¤¯ā¤ž ā¤ā¤ž ⤏ā¤ā¤¤ā¤ž ā¤šāĨāĨ¤
+
+### ā¤ā¤žā¤°āĨ⤝ - ā¤°ā¤žā¤¤ ā¤āĨ ā¤ā¤ŋā¤°ā¤žā¤ā¤ŧ ā¤ā¤ž ā¤ĒāĨ⤰āĨā¤āĨā¤°ā¤žā¤Ž
+
+ā¤°ā¤žā¤¤ ā¤āĨ ā¤¸ā¤Žā¤¯ ā¤ĒāĨ⤰āĨā¤āĨā¤°ā¤žā¤Ž ā¤ā¤°āĨā¤āĨ¤
+
+1. ā¤Ēā¤žā¤ ā¤āĨ ā¤Ēā¤žā¤ĩ⤰ ā¤ĻāĨ⤠ā¤ā¤° ā¤ā¤¸ā¤āĨ ā¤ŦāĨā¤ ā¤šāĨ⤍āĨ ā¤āĨ ā¤ĒāĨ⤰⤤āĨā¤āĨā¤ˇā¤ž ā¤ā¤°āĨā¤
+
+1. ā¤ĩāĨā¤ā¤¸ ā¤āĨā¤Ą ā¤ŽāĨā¤ ā¤¨ā¤žā¤ā¤ā¤˛ā¤žā¤ā¤ ā¤ĒāĨ⤰āĨā¤āĨā¤āĨ⤠ā¤āĨ⤞āĨ⤠ā¤ā¤ŋ⤏āĨ ā¤ā¤Ē⤍āĨ ā¤ā¤¸ ā¤
ā¤¸ā¤žā¤ā¤¨ā¤ŽāĨā¤ā¤ ā¤āĨ ā¤Ēā¤ŋā¤ā¤˛āĨ ā¤ā¤žā¤ ā¤ŽāĨ⤠ā¤Ŧā¤¨ā¤žā¤¯ā¤ž ā¤Ĩā¤ž, ā¤¯ā¤ž ⤤āĨ ⤏āĨ⤧āĨ ā¤Ēā¤žā¤ ā¤Ē⤰ ā¤ā¤˛ ā¤°ā¤šā¤ž ā¤šāĨ ā¤¯ā¤ž ⤰ā¤ŋā¤ŽāĨ⤠ā¤ā¤¸ā¤ā¤¸ā¤ā¤ ā¤ā¤āĨ⤏ā¤āĨā¤ā¤ļ⤍ ā¤ā¤ž ā¤ā¤Ē⤝āĨ⤠ā¤ā¤°ā¤āĨ ā¤āĨā¤Ąā¤ŧā¤ž ā¤šāĨā¤ ā¤šāĨāĨ¤
+
+1. ā¤ā¤ĩā¤ļāĨā¤¯ā¤ ā¤˛ā¤žā¤ā¤ŦāĨ⤰āĨ⤰āĨ ā¤ā¤¯ā¤žā¤¤ ā¤ā¤°ā¤¨āĨ ā¤āĨ ⤞ā¤ŋ⤠ā¤ā¤¨āĨā¤āĨ⤠ā¤ā¤°ā¤¨āĨ ā¤āĨ ⤞ā¤ŋ⤠`app.py` ā¤Ģā¤ŧā¤žā¤ā¤˛ ā¤ŽāĨ⤠⤍ā¤ŋā¤ŽāĨ⤍ ā¤āĨā¤Ą ā¤āĨā¤Ąā¤ŧāĨā¤āĨ¤ ā¤ā¤¸āĨ ā¤
⤍āĨ⤝ `import` ā¤˛ā¤žā¤ā¤¨āĨ⤠ā¤āĨ ⤍āĨā¤āĨ, ā¤ļāĨ⤰āĨ⤎ ā¤Ē⤰ ā¤āĨā¤Ąā¤ŧā¤ž ā¤ā¤žā¤¨ā¤ž ā¤ā¤žā¤šā¤ŋā¤āĨ¤
+
+ ```python
+ from grove.grove_led import GroveLed
+ ```
+
+ `from Grove.grove_led import GroveLed` ā¤ā¤Ĩ⤍ GroveLed` ā¤āĨ Grove Python ā¤ĒāĨ⤏āĨ⤤ā¤ā¤žā¤˛ā¤¯āĨ⤠⤏āĨ ā¤ā¤¯ā¤žā¤¤ ā¤ā¤°ā¤¤ā¤ž ā¤šāĨāĨ¤ ā¤ā¤¸ ā¤ĒāĨ⤏āĨ⤤ā¤ā¤žā¤˛ā¤¯ ā¤ŽāĨ⤠ā¤āĨ⤰āĨā¤ĩ ā¤ā¤˛ā¤ā¤ĄāĨ ā¤āĨ ā¤¸ā¤žā¤Ĩ ā¤Ŧā¤žā¤¤ā¤āĨ⤤ ā¤ā¤°ā¤¨āĨ ā¤āĨ ⤞ā¤ŋ⤠ā¤āĨā¤Ą ā¤šāĨāĨ¤
+
+1. ā¤ā¤˛ā¤ā¤ĄāĨ ā¤ā¤ž ā¤ĒāĨ⤰ā¤Ŧā¤ā¤§ā¤¨ ā¤ā¤°ā¤¨āĨ ā¤ĩā¤žā¤˛āĨ ā¤ĩ⤰āĨ⤠ā¤ā¤ž ā¤ā¤ ā¤ā¤Ļā¤žā¤šā¤°ā¤Ŗ ā¤Ŧā¤¨ā¤žā¤¨āĨ ā¤āĨ ⤞ā¤ŋ⤠`light_sensor` ā¤āĨā¤ˇā¤Ŗā¤ž ā¤āĨ ā¤Ŧā¤žā¤Ļ ⤍ā¤ŋā¤ŽāĨ⤍⤞ā¤ŋā¤ā¤ŋ⤤ ā¤āĨā¤Ą ā¤āĨā¤Ąā¤ŧāĨā¤:
+
+ ```python
+ led = GroveLed(5)
+ ```
+
+ ā¤˛ā¤žā¤ā¤¨ `led = GroveLed(5)` `GroveLed` ā¤ĩ⤰āĨ⤠ā¤āĨ ā¤Ēā¤ŋ⤍ ⤏āĨ ā¤āĨā¤Ąā¤ŧ⤍āĨ ā¤ā¤ž ā¤ā¤ ā¤ā¤Ļā¤žā¤šā¤°ā¤Ŗ ā¤Ŧā¤¨ā¤žā¤¤ā¤ž ā¤šāĨ **D5** - ā¤ĩā¤š ā¤Ąā¤ŋā¤ā¤ŋā¤ā¤˛ ā¤āĨ⤰āĨā¤ĩ ā¤Ēā¤ŋ⤍ ā¤ā¤ŋ⤏⤏āĨ ā¤ā¤˛ā¤ā¤ĄāĨ ā¤āĨā¤Ąā¤ŧā¤ž ā¤šāĨāĨ¤
+
+ > đ ⤏ā¤āĨ ⤏āĨā¤āĨā¤ ā¤ŽāĨ⤠ā¤
ā¤ĻāĨā¤ĩā¤ŋ⤤āĨ⤝ ā¤Ēā¤ŋ⤍ ⤍ā¤ā¤Ŧ⤰ ā¤šāĨ⤤āĨ ā¤šāĨā¤āĨ¤ ā¤Ēā¤ŋ⤍ 0, 2, 4, ā¤ā¤° 6 ā¤ā¤¨ā¤žā¤˛āĨ⤠ā¤Ēā¤ŋ⤍ ā¤šāĨā¤, ā¤Ēā¤ŋ⤍ 5, 16, 18, 22, 24 ā¤ā¤° 26 ā¤Ąā¤ŋā¤ā¤ŋā¤ā¤˛ ā¤Ēā¤ŋ⤍ ā¤šāĨā¤āĨ¤
+
+1. ā¤ĒāĨ⤰ā¤ā¤žā¤ļ ā¤āĨ ⤏āĨ⤤⤰ ā¤āĨ ā¤ā¤žā¤ā¤ ā¤ā¤°ā¤¨āĨ ā¤ā¤° ā¤ā¤˛ā¤ā¤ĄāĨ ā¤āĨ ā¤ā¤žā¤˛āĨ ā¤¯ā¤ž ā¤Ŧā¤ā¤Ļ ā¤ā¤°ā¤¨āĨ ā¤āĨ ⤞ā¤ŋ⤠`while` ⤞āĨā¤Ē ā¤āĨ ā¤
ā¤ā¤Ļ⤰, ā¤ā¤° `time.sleep` ⤏āĨ ā¤Ēā¤šā¤˛āĨ ā¤ā¤ ā¤āĨ⤠ā¤āĨā¤Ąā¤ŧāĨā¤:
+
+ ```python
+ if light < 300:
+ led.on()
+ else:
+ led.off()
+ ```
+
+ ā¤¯ā¤š ā¤āĨā¤Ą `light` ā¤āĨ ā¤ŽāĨ⤞āĨ⤝ ā¤āĨ ā¤ā¤žā¤ā¤ ā¤ā¤°ā¤¤ā¤ž ā¤šāĨāĨ¤ ⤝ā¤Ļā¤ŋ ā¤¯ā¤š āĨŠāĨĻāĨĻ ā¤¸āĨ ā¤ā¤Ž ā¤šāĨ ⤤āĨ ā¤¯ā¤š `GroveLed` ā¤ĩ⤰āĨ⤠ā¤āĨ `on` ā¤ĩā¤ŋ⤧ā¤ŋ ā¤āĨ ā¤āĨ⤞ ā¤ā¤°ā¤¤ā¤ž ā¤šāĨ ā¤āĨ ā¤ā¤˛ā¤ā¤ĄāĨ ā¤āĨ 1 ā¤ā¤ž ā¤Ąā¤ŋā¤ā¤ŋā¤ā¤˛ ā¤Žā¤žā¤¨ ā¤āĨā¤ā¤¤ā¤ž ā¤šāĨ, ā¤ā¤¸āĨ ā¤ā¤žā¤˛āĨ ā¤ā¤°ā¤¤ā¤ž ā¤šāĨāĨ¤ ⤝ā¤Ļā¤ŋ ā¤ĒāĨ⤰ā¤ā¤žā¤ļ ā¤Žā¤žā¤¨ āĨŠāĨĻāĨĻ ā¤¸āĨ ā¤
⤧ā¤ŋā¤ ā¤¯ā¤ž ā¤ā¤¸ā¤āĨ ā¤Ŧā¤°ā¤žā¤Ŧ⤰ ā¤šāĨ, ⤤āĨ ā¤¯ā¤š `off` ā¤ĩā¤ŋ⤧ā¤ŋ ā¤āĨ ā¤āĨ⤞ ā¤ā¤°ā¤¤ā¤ž ā¤šāĨ, ā¤ā¤˛ā¤ā¤ĄāĨ ā¤āĨ 0 ā¤ā¤ž ā¤Ąā¤ŋā¤ā¤ŋā¤ā¤˛ ā¤Žā¤žā¤¨ ā¤āĨā¤ā¤ā¤°, ā¤ā¤¸āĨ ā¤Ŧā¤ā¤Ļ ā¤ā¤° ā¤ĻāĨā¤¤ā¤ž ā¤šāĨāĨ¤
+
+ > đ ā¤ā¤¸ ā¤āĨā¤Ą ā¤āĨ `print('Light level:', light)` ā¤˛ā¤žā¤ā¤¨ ā¤āĨ ā¤¸ā¤Žā¤žā¤¨ ⤏āĨ⤤⤰ ā¤Ē⤰ ā¤ā¤ā¤ĄāĨā¤ā¤ ā¤ā¤ŋā¤¯ā¤ž ā¤ā¤žā¤¨ā¤ž ā¤ā¤žā¤šā¤ŋā¤, while loop ā¤āĨ ā¤
ā¤ā¤Ļ⤰ ā¤šāĨā¤¨ā¤ž ā¤ā¤žā¤šā¤ŋā¤!
+
+ > đ ā¤ā¤āĨā¤āĨ⤝āĨā¤ā¤ā¤°āĨ⤏ ā¤āĨ ā¤Ąā¤ŋā¤ā¤ŋā¤ā¤˛ ā¤Žā¤žā¤¨ ā¤āĨā¤ā¤¤āĨ ā¤¸ā¤Žā¤¯, 0 ā¤Žā¤žā¤¨ 0v ā¤šāĨā¤¤ā¤ž ā¤šāĨ, ā¤ā¤° 1 ā¤Žā¤žā¤¨ ā¤Ąā¤ŋā¤ĩā¤žā¤ā¤¸ ā¤āĨ ⤞ā¤ŋ⤠ā¤
⤧ā¤ŋā¤ā¤¤ā¤Ž ā¤ĩāĨ⤞āĨā¤āĨā¤ ā¤šāĨā¤¤ā¤ž ā¤šāĨāĨ¤ ā¤āĨ⤰āĨā¤ĩ ⤏āĨā¤ā¤¸ā¤° ā¤ā¤° ā¤ā¤āĨā¤āĨā¤ā¤ā¤°āĨ⤏ ā¤āĨ ā¤¸ā¤žā¤Ĩ ā¤°ā¤žā¤¸āĨā¤Ēā¤ŦāĨ⤰āĨ ā¤Ēā¤žā¤ ā¤āĨ ⤞ā¤ŋā¤, 1 ā¤ĩāĨ⤞āĨā¤āĨ⤠3.3V ā¤šāĨāĨ¤
+
+1. ā¤ĩāĨā¤ā¤¸ ā¤āĨā¤Ą ā¤ā¤°āĨā¤Žā¤ŋ⤍⤞ ⤏āĨ, ā¤
ā¤Ēā¤¨ā¤ž ā¤Ēā¤žā¤¯ā¤Ĩ⤍ ā¤ā¤Ē ā¤ā¤˛ā¤žā¤¨āĨ ā¤āĨ ⤞ā¤ŋ⤠⤍ā¤ŋā¤ŽāĨ⤍⤞ā¤ŋā¤ā¤ŋ⤤ ā¤ā¤˛ā¤žā¤ā¤:
+
+ ```sh
+ python3 app.py
+ ```
+
+ ā¤ā¤ā¤¸āĨ⤞ ā¤āĨ ⤞ā¤ŋā¤ ā¤˛ā¤žā¤ā¤ ā¤Žā¤žā¤¨ ā¤ā¤ā¤ā¤ĒāĨā¤ ā¤šāĨā¤ā¤āĨāĨ¤
+
+ ```output
+ pi@raspberrypi:~/nightlight $ python3 app.py
+ Light level: 634
+ Light level: 634
+ Light level: 634
+ Light level: 230
+ Light level: 104
+ Light level: 290
+ ```
+
+1. ā¤ĒāĨ⤰ā¤ā¤žā¤ļ ⤏ā¤ā¤ĩāĨā¤Ļ⤠ā¤āĨ ā¤ĸā¤āĨ⤠ā¤ā¤° ā¤ā¤ā¤žā¤ā¤° ā¤ā¤°āĨā¤āĨ¤ ⤧āĨā¤¯ā¤žā¤¨ ā¤ĻāĨ⤠ā¤ā¤ŋ ⤝ā¤Ļā¤ŋ ā¤ĒāĨ⤰ā¤ā¤žā¤ļ ā¤ā¤ž ⤏āĨ⤤⤰ 300 ā¤¯ā¤ž ā¤ā¤¸ā¤¸āĨ ā¤ā¤Ž ā¤šāĨ, ⤤āĨ ā¤ā¤˛ā¤ā¤ĄāĨ ā¤āĨ⤏āĨ ā¤ā¤˛āĨā¤āĨ, ā¤ā¤° ā¤ā¤Ŧ ā¤ĒāĨ⤰ā¤ā¤žā¤ļ ā¤ā¤ž ⤏āĨ⤤⤰ 300 ⤏āĨ ā¤
⤧ā¤ŋā¤ ā¤šāĨ ⤤āĨ ā¤Ŧā¤ā¤Ļ ā¤ā¤° ā¤ĻāĨā¤āĨ¤
+
+ > đ ⤝ā¤Ļā¤ŋ ā¤ā¤˛ā¤ā¤ĄāĨ ā¤ā¤žā¤˛āĨ ā¤¨ā¤šāĨā¤ ā¤šāĨ⤤āĨ ā¤šāĨ, ⤤āĨ ⤏āĨ⤍ā¤ŋā¤ļāĨā¤ā¤ŋ⤤ ā¤ā¤°āĨ⤠ā¤ā¤ŋ ā¤¯ā¤š ā¤¸ā¤šāĨ ⤤⤰āĨā¤āĨ ⤏āĨ ā¤āĨā¤Ąā¤ŧā¤ž ā¤šāĨā¤ ā¤šāĨ, ā¤ā¤° ⤏āĨā¤Ēā¤ŋ⤍ ā¤Ŧā¤ā¤¨ ā¤āĨ ⤏āĨ⤠ā¤ā¤ŋā¤¯ā¤ž ā¤ā¤¯ā¤ž ā¤šāĨ
+
+
+
+> đ ā¤ā¤Ē ā¤ā¤¸ ā¤āĨā¤Ą ā¤āĨ [code-actuator/pi](code-actuator/pi) ā¤ĢāĨ⤞āĨā¤Ąā¤° ā¤ŽāĨ⤠ā¤Ēā¤ž ⤏ā¤ā¤¤āĨ ā¤šāĨā¤āĨ¤
+
+đā¤ā¤Ēā¤ā¤ž ā¤°ā¤žā¤¤āĨ⤰ā¤ŋā¤ā¤žā¤˛āĨ⤍ ā¤ĒāĨ⤰āĨā¤āĨā¤°ā¤žā¤Ž ⤏ā¤Ģ⤞ ā¤°ā¤šā¤ž!
diff --git a/1-getting-started/lessons/3-sensors-and-actuators/translations/pi-sensor.hi.md b/1-getting-started/lessons/3-sensors-and-actuators/translations/pi-sensor.hi.md
new file mode 100644
index 00000000..ed7d00f5
--- /dev/null
+++ b/1-getting-started/lessons/3-sensors-and-actuators/translations/pi-sensor.hi.md
@@ -0,0 +1,96 @@
+# ā¤°ā¤žā¤¤ ā¤ā¤ž ā¤ā¤ŋā¤°ā¤žā¤ā¤ŧ ā¤Ŧā¤¨ā¤žā¤ā¤ - ā¤°ā¤žā¤¸āĨā¤Ēā¤ŦāĨ⤰āĨ ā¤Ēā¤žā¤
+
+ā¤Ēā¤žā¤ ā¤āĨ ā¤ā¤¸ ā¤ā¤žā¤ ā¤ŽāĨā¤, ā¤ā¤Ē ā¤
ā¤Ē⤍āĨ ā¤°ā¤žā¤¸āĨā¤Ēā¤ŦāĨ⤰āĨ ā¤Ēā¤žā¤ ā¤ŽāĨ⤠ā¤ā¤ ā¤ĒāĨ⤰ā¤ā¤žā¤ļ ⤏āĨā¤ā¤¸ā¤° ā¤āĨā¤Ąā¤ŧāĨā¤ā¤āĨāĨ¤
+
+## ā¤šā¤žā¤°āĨā¤Ąā¤ĩāĨ⤝⤰
+
+ā¤ā¤¸ ā¤Ēā¤žā¤ ā¤āĨ ⤞ā¤ŋ⤠⤏āĨā¤ā¤¸ā¤° ā¤ā¤ **ā¤ĒāĨ⤰ā¤ā¤žā¤ļ ⤏ā¤ā¤ĩāĨā¤Ļā¤** ā¤šāĨ ā¤āĨ ā¤ĒāĨ⤰ā¤ā¤žā¤ļ ā¤āĨ ā¤ĩā¤ŋā¤ĻāĨ⤝āĨ⤤ ⤏ā¤ā¤āĨ⤤ ā¤ŽāĨ⤠ā¤Ŧā¤Ļ⤞⤍āĨ ā¤āĨ ⤞ā¤ŋ⤠[ā¤ĢāĨā¤āĨā¤Ąā¤žā¤¯āĨā¤Ą](https://wikipedia.org/wiki/Photodiode) ā¤ā¤ž ā¤ā¤Ē⤝āĨ⤠ā¤ā¤°ā¤¤ā¤ž ā¤šāĨāĨ¤ ā¤¯ā¤š ā¤ā¤ ā¤ā¤¨ā¤žā¤˛āĨ⤠⤏āĨā¤ā¤¸ā¤° ā¤šāĨ ā¤āĨ 0 ⤏āĨ 1,000 ⤤⤠ā¤ā¤ ā¤ĒāĨ⤰āĨā¤Ŗā¤žā¤ā¤ ā¤Žā¤žā¤¨ ā¤āĨā¤ā¤¤ā¤ž ā¤šāĨ ā¤āĨ ā¤ĒāĨ⤰ā¤ā¤žā¤ļ ā¤āĨ ā¤¸ā¤žā¤ĒāĨā¤āĨ⤎ ā¤Žā¤žā¤¤āĨā¤°ā¤ž ā¤āĨ ā¤ā¤ā¤ā¤ŋ⤤ ā¤ā¤°ā¤¤ā¤ž ā¤šāĨ ā¤āĨ ā¤Žā¤žā¤Ē ā¤āĨ ā¤ā¤ŋ⤏āĨ ā¤āĨ ā¤Žā¤žā¤¨ā¤ ā¤ā¤ā¤žā¤ ā¤āĨ⤏āĨ [lux](https://wikipedia.org/wiki/Lux) ā¤Ē⤰ ā¤ŽāĨā¤Ē ā¤¨ā¤šāĨ⤠ā¤ā¤°ā¤¤ā¤ž ā¤šāĨāĨ¤
+
+ā¤ĒāĨ⤰ā¤ā¤žā¤ļ ⤏ā¤ā¤ĩāĨā¤Ļ⤠ā¤ā¤ ā¤ā¤ŋā¤ā¤žā¤ ā¤āĨ⤰āĨā¤ĩ ⤏āĨā¤ā¤¸ā¤° ā¤šāĨ ā¤ā¤° ā¤ā¤¸āĨ ā¤°ā¤žā¤¸āĨā¤Ēā¤ŦāĨ⤰āĨ ā¤Ēā¤žā¤ ā¤Ē⤰ ā¤āĨ⤰āĨā¤ĩ ā¤ŦāĨ⤏ ā¤āĨā¤ĒāĨ ⤏āĨ ā¤āĨā¤Ąā¤ŧā¤ž ā¤ā¤žā¤¨ā¤ž ā¤ā¤žā¤šā¤ŋā¤āĨ¤
+
+### ā¤˛ā¤žā¤ā¤ ⤏āĨā¤ā¤¸ā¤° ā¤ā¤¨āĨā¤āĨ⤠ā¤ā¤°āĨā¤
+
+ā¤ĒāĨ⤰ā¤ā¤žā¤ļ ā¤āĨ ⤏āĨ⤤⤰ ā¤ā¤ž ā¤Ēā¤¤ā¤ž ⤞ā¤ā¤žā¤¨āĨ ā¤āĨ ⤞ā¤ŋ⤠ā¤ā¤Ē⤝āĨ⤠ā¤ā¤ŋ⤠ā¤ā¤žā¤¨āĨ ā¤ĩā¤žā¤˛āĨ ā¤āĨ⤰āĨā¤ĩ ā¤˛ā¤žā¤ā¤ ⤏āĨā¤ā¤¸ā¤° ā¤āĨ ā¤°ā¤žā¤¸āĨā¤Ēā¤ŦāĨ⤰āĨ ā¤Ēā¤žā¤ ā¤¸āĨ ā¤āĨā¤Ąā¤ŧā¤ž ā¤ā¤žā¤¨ā¤ž ā¤ā¤žā¤šā¤ŋā¤āĨ¤
+
+#### ā¤ā¤žā¤¸āĨ⤠- ā¤˛ā¤žā¤ā¤ ⤏āĨā¤ā¤¸ā¤° ā¤ā¤¨āĨā¤āĨ⤠ā¤ā¤°āĨā¤
+
+ā¤ĒāĨ⤰ā¤ā¤žā¤ļ ⤏ā¤ā¤ĩāĨā¤Ļ⤠ā¤ā¤¨āĨā¤āĨ⤠ā¤ā¤°āĨā¤
+
+
+
+1. ā¤˛ā¤žā¤ā¤ ⤏āĨā¤ā¤¸ā¤° ā¤ŽāĨā¤ĄāĨ⤝āĨ⤞ ā¤āĨ ⤏āĨā¤āĨā¤ ā¤ŽāĨ⤠ā¤āĨ⤰āĨā¤ĩ ā¤āĨā¤Ŧ⤞ ā¤ā¤ž ā¤ā¤ ⤏ā¤ŋā¤°ā¤ž ā¤Ąā¤žā¤˛āĨā¤āĨ¤ ā¤¯ā¤š ā¤āĨā¤ĩ⤞ ā¤ā¤ ā¤šāĨ ā¤¤ā¤°ā¤š ⤏āĨ ā¤āĨā¤ŽāĨā¤ā¤žāĨ¤
+
+1. ā¤°ā¤žā¤¸āĨā¤Ēā¤ŦāĨ⤰āĨ ā¤Ēā¤žā¤ ā¤āĨ ā¤Ŧā¤ā¤Ļ ā¤šāĨ⤍āĨ ā¤āĨ ā¤¸ā¤žā¤Ĩ, ā¤āĨ⤰āĨā¤ĩ ā¤āĨā¤Ŧ⤞ ā¤āĨ ā¤ĻāĨ⤏⤰āĨ ā¤āĨ⤰ ā¤āĨ ā¤Ēā¤žā¤ ā¤¸āĨ ā¤āĨā¤Ąā¤ŧāĨ ā¤āĨ⤰āĨā¤ĩ ā¤ŦāĨ⤏ ā¤šāĨ⤠ā¤Ē⤰ **A0** ā¤ā¤ŋā¤šāĨ⤍ā¤ŋ⤤ ā¤ā¤¨ā¤žā¤˛āĨ⤠⤏āĨā¤āĨ⤠⤏āĨ ā¤ā¤¨āĨā¤āĨ⤠ā¤ā¤°āĨā¤āĨ¤ ā¤¯ā¤š ⤏āĨā¤āĨ⤠GPIO ā¤Ēā¤ŋ⤍ ā¤āĨ ā¤Ŧā¤ā¤˛ ā¤ŽāĨ⤠⤏āĨā¤āĨ⤠ā¤āĨ ā¤Ēā¤ā¤āĨ⤤ā¤ŋ ā¤ŽāĨ⤠ā¤Ļā¤žā¤ā¤ ā¤ā¤° ⤏āĨ ā¤ĻāĨā¤¸ā¤°ā¤ž ā¤šāĨāĨ¤
+
+
+
+## ā¤˛ā¤žā¤ā¤ ⤏āĨā¤ā¤¸ā¤° ā¤ĒāĨ⤰āĨā¤āĨā¤°ā¤žā¤Ž ā¤ā¤°āĨā¤
+
+ā¤Ąā¤ŋā¤ĩā¤žā¤ā¤¸ ā¤āĨ ā¤
ā¤Ŧ ā¤āĨ⤰āĨā¤ĩ ā¤˛ā¤žā¤ā¤ ⤏āĨā¤ā¤¸ā¤° ā¤ā¤ž ā¤ā¤Ē⤝āĨ⤠ā¤ā¤°ā¤āĨ ā¤ĒāĨ⤰āĨā¤āĨā¤°ā¤žā¤Ž ā¤ā¤ŋā¤¯ā¤ž ā¤ā¤ž ⤏ā¤ā¤¤ā¤ž ā¤šāĨāĨ¤
+
+### ā¤ā¤žā¤¸āĨ⤠- ā¤˛ā¤žā¤ā¤ ⤏āĨā¤ā¤¸ā¤° ā¤ĒāĨ⤰āĨā¤āĨā¤°ā¤žā¤Ž ā¤ā¤°āĨā¤
+
+ā¤Ąā¤ŋā¤ĩā¤žā¤ā¤¸ ā¤āĨ ā¤ĒāĨ⤰āĨā¤āĨā¤°ā¤žā¤Ž ā¤ā¤°āĨā¤āĨ¤
+
+1. ā¤Ēā¤žā¤ ā¤āĨ ā¤Ēā¤žā¤ĩ⤰ ā¤ĻāĨ⤠ā¤ā¤° ā¤ā¤¸ā¤āĨ ā¤ŦāĨā¤ ā¤šāĨ⤍āĨ ā¤āĨ ā¤ĒāĨ⤰⤤āĨā¤āĨā¤ˇā¤ž ā¤ā¤°āĨā¤āĨ¤
+
+1. ā¤ĩāĨā¤ā¤¸ ā¤āĨā¤Ą ā¤ŽāĨā¤ ā¤¨ā¤žā¤ā¤ā¤˛ā¤žā¤ā¤ ā¤ĒāĨ⤰āĨā¤āĨā¤āĨ⤠ā¤āĨ⤞āĨ⤠ā¤ā¤ŋ⤏āĨ ā¤ā¤Ē⤍āĨ ā¤ā¤¸ ā¤
ā¤¸ā¤žā¤ā¤¨ā¤ŽāĨā¤ā¤ ā¤āĨ ā¤Ēā¤ŋā¤ā¤˛āĨ ā¤ā¤žā¤ ā¤ŽāĨ⤠ā¤Ŧā¤¨ā¤žā¤¯ā¤ž ā¤Ĩā¤ž, ā¤¯ā¤ž ⤤āĨ ⤏āĨ⤧āĨ ā¤Ēā¤žā¤ ā¤Ē⤰ ā¤ā¤˛ ā¤°ā¤šā¤ž ā¤šāĨ ā¤¯ā¤ž ⤰ā¤ŋā¤ŽāĨ⤠ā¤ā¤¸ā¤ā¤¸ā¤ā¤ ā¤ā¤āĨ⤏ā¤āĨā¤ā¤ļ⤍ ā¤ā¤ž ā¤ā¤Ē⤝āĨ⤠ā¤ā¤°ā¤āĨ ā¤āĨā¤Ąā¤ŧā¤ž ā¤šāĨā¤ ā¤šāĨāĨ¤
+
+1. `app.py` ā¤Ģā¤ŧā¤žā¤ā¤˛ ā¤āĨ⤞āĨ⤠ā¤ā¤° ā¤ā¤¸ā¤ŽāĨ⤠⤏āĨ ⤏ā¤āĨ ā¤āĨā¤Ą ā¤šā¤ā¤ž ā¤ĻāĨā¤āĨ¤
+
+1. ā¤āĨ⤠ā¤ā¤ĩā¤ļāĨ⤝⤠ā¤ĒāĨ⤏āĨ⤤ā¤ā¤žā¤˛ā¤¯āĨ⤠ā¤āĨ ā¤ā¤¯ā¤žā¤¤ ā¤ā¤°ā¤¨āĨ ā¤āĨ ⤞ā¤ŋ⤠⤍ā¤ŋā¤ŽāĨ⤍ ā¤āĨā¤Ą ā¤āĨ `app.py` ā¤Ģā¤ŧā¤žā¤ā¤˛ ā¤ŽāĨ⤠ā¤āĨā¤Ąā¤ŧāĨā¤:
+
+ ```python
+ import time
+ from grove.grove_light_sensor_v1_2 import GroveLightSensor
+ ```
+
+ `import time` ā¤ĩā¤ŋā¤ĩ⤰⤪ `time` ā¤ŽāĨā¤ĄāĨ⤝āĨ⤞ ā¤āĨ ā¤ā¤¯ā¤žā¤¤ ā¤ā¤°ā¤¤ā¤ž ā¤šāĨ ā¤ā¤ŋ⤏āĨ ā¤Ŧā¤žā¤Ļ ā¤ŽāĨ⤠ā¤ā¤¸ ā¤
ā¤¸ā¤žā¤ā¤¨ā¤ŽāĨā¤ā¤ ā¤ŽāĨ⤠ā¤ā¤Ē⤝āĨ⤠ā¤ā¤ŋā¤¯ā¤ž ā¤ā¤žā¤ā¤ā¤žāĨ¤
+
+ `from grove.grove_light_sensor_v1_2 import GroveLightSensor` ā¤ā¤Ĩ⤍ Grove Python ā¤ĒāĨ⤏āĨ⤤ā¤ā¤žā¤˛ā¤¯āĨ⤠⤏āĨ `GroveLightSensor` ā¤ā¤¯ā¤žā¤¤ ā¤ā¤°ā¤¤ā¤ž ā¤šāĨāĨ¤ ā¤ā¤¸ ā¤˛ā¤žā¤ā¤ŦāĨ⤰āĨ⤰āĨ ā¤ŽāĨ⤠ā¤āĨ⤰āĨā¤ĩ ā¤˛ā¤žā¤ā¤ ⤏āĨā¤ā¤¸ā¤° ā¤āĨ ā¤¸ā¤žā¤Ĩ ā¤Ŧā¤žā¤¤ā¤āĨ⤤ ā¤ā¤°ā¤¨āĨ ā¤āĨ ⤞ā¤ŋ⤠ā¤āĨā¤Ą ā¤šāĨ, ā¤ā¤° ā¤Ēā¤žā¤ ā¤¸āĨā¤ā¤
ā¤Ē ā¤āĨ ā¤ĻāĨā¤°ā¤žā¤¨ ā¤ĩā¤ŋā¤ļāĨā¤ĩ ⤏āĨ⤤⤰ ā¤Ē⤰ ⤏āĨā¤Ĩā¤žā¤Ēā¤ŋ⤤ ā¤ā¤ŋā¤¯ā¤ž ā¤ā¤¯ā¤ž ā¤Ĩā¤žāĨ¤
+
+1. ā¤ĒāĨ⤰ā¤ā¤žā¤ļ ⤏ā¤ā¤ĩāĨā¤Ļ⤠ā¤āĨ ā¤ĒāĨ⤰ā¤Ŧā¤ā¤§ā¤ŋ⤤ ā¤ā¤°ā¤¨āĨ ā¤ĩā¤žā¤˛āĨ ā¤ĩ⤰āĨ⤠ā¤ā¤ž ā¤ā¤ ā¤ā¤Ļā¤žā¤šā¤°ā¤Ŗ ā¤Ŧā¤¨ā¤žā¤¨āĨ ā¤āĨ ⤞ā¤ŋ⤠ā¤ā¤Ē⤰ ā¤Ļā¤ŋ⤠ā¤ā¤ ā¤āĨā¤Ą ā¤āĨ ā¤Ŧā¤žā¤Ļ ⤍ā¤ŋā¤ŽāĨ⤍⤞ā¤ŋā¤ā¤ŋ⤤ ā¤āĨā¤Ą ā¤āĨā¤Ąā¤ŧāĨā¤:
+
+ ```python
+ light_sensor = GroveLightSensor(0)
+ ```
+
+ ā¤˛ā¤žā¤ā¤¨ `light_sensor = GroveLightSensor(0)`, `GroveLightSensor` ā¤ĩ⤰āĨ⤠ā¤āĨ ā¤Ēā¤ŋ⤍ **A0** ⤏āĨ ā¤āĨā¤Ąā¤ŧ⤍āĨ ā¤ā¤ž ā¤ā¤ ā¤ā¤Ļā¤žā¤šā¤°ā¤Ŗ ā¤Ŧā¤¨ā¤žā¤¤āĨ ā¤šāĨ - ā¤ā¤¨ā¤žā¤˛āĨ⤠ā¤āĨ⤰āĨā¤ĩ ā¤Ēā¤ŋ⤍ ā¤ā¤ŋ⤏⤏āĨ ā¤˛ā¤žā¤ā¤ ⤏āĨā¤ā¤¸ā¤° ā¤āĨā¤Ąā¤ŧā¤ž ā¤šāĨā¤¤ā¤ž ā¤šāĨāĨ¤
+
+1. ā¤ā¤Ē⤰ ā¤Ļā¤ŋ⤠ā¤ā¤ ā¤āĨā¤Ą ā¤āĨ ā¤Ŧā¤žā¤Ļ ā¤ā¤ ā¤
⤍ā¤ā¤¤ ⤞āĨā¤Ē ā¤āĨā¤Ąā¤ŧāĨā¤ ā¤¤ā¤žā¤ā¤ŋ ā¤ĒāĨ⤰ā¤ā¤žā¤ļ ⤏ā¤ā¤ĩāĨā¤Ļā¤ ā¤Žā¤žā¤¨ ā¤ā¤ž ā¤Ēā¤¤ā¤ž ⤞ā¤ā¤žā¤¯ā¤ž ā¤ā¤ž ⤏ā¤āĨ ā¤ā¤° ā¤ā¤¸āĨ ā¤ā¤ā¤¸āĨ⤞ ā¤Ē⤰ ā¤ĒāĨ⤰ā¤ŋā¤ā¤ ā¤ā¤ŋā¤¯ā¤ž ā¤ā¤ž ⤏ā¤āĨ:
+
+ ```python
+ while True:
+ light = light_sensor.light
+ print('Light level:', light)
+ ```
+
+ ā¤¯ā¤š `GroveLightSensor` ā¤ĩ⤰āĨ⤠ā¤āĨ `light` ⤏ā¤ā¤Ē⤤āĨ⤤ā¤ŋ ā¤ā¤ž ā¤ā¤Ē⤝āĨ⤠ā¤ā¤°ā¤āĨ 0-1,023 ā¤āĨ ā¤ĒāĨā¤Žā¤žā¤¨āĨ ā¤Ē⤰ ā¤ĩ⤰āĨā¤¤ā¤Žā¤žā¤¨ ā¤ĒāĨ⤰ā¤ā¤žā¤ļ ⤏āĨ⤤⤰ ā¤āĨ ā¤Ēā¤ĸā¤ŧāĨā¤ā¤žāĨ¤ ā¤¯ā¤š ā¤āĨ⤪ ā¤Ēā¤ŋ⤍ ⤏āĨ ā¤
⤍āĨ⤰āĨā¤Ē ā¤Žā¤žā¤¨ ā¤āĨ ā¤Ēā¤ĸā¤ŧā¤¤ā¤ž ā¤šāĨāĨ¤ ā¤¯ā¤š ā¤Žā¤žā¤¨ ⤤ā¤Ŧ ā¤ā¤ā¤¸āĨ⤞ ā¤Ē⤰ ā¤ŽāĨā¤ĻāĨ⤰ā¤ŋ⤤ ā¤šāĨā¤¤ā¤ž ā¤šāĨāĨ¤
+
+1. ⤞āĨā¤Ē ā¤āĨ ā¤
ā¤ā¤¤ ā¤ŽāĨ⤠ā¤ā¤ ⤏āĨā¤ā¤ā¤Ą ā¤āĨ ā¤ā¤ ā¤āĨā¤āĨ sleep function ā¤āĨā¤Ąā¤ŧāĨ⤠ā¤āĨ⤝āĨā¤ā¤ā¤ŋ ā¤ĒāĨ⤰ā¤ā¤žā¤ļ ā¤āĨ ⤏āĨ⤤⤰ ā¤āĨ ⤞ā¤ā¤žā¤¤ā¤žā¤° ā¤ā¤žā¤ā¤ā¤¨āĨ ā¤āĨ ā¤ā¤ĩā¤ļāĨ⤝ā¤ā¤¤ā¤ž ā¤¨ā¤šāĨā¤ ā¤šāĨ⤤āĨ ā¤šāĨāĨ¤ ā¤ā¤ sleep function ā¤Ąā¤ŋā¤ĩā¤žā¤ā¤¸ ā¤āĨ ā¤Ŧā¤ŋā¤ā¤˛āĨ ā¤āĨ ā¤ā¤Ē⤤ ā¤āĨ ā¤ā¤Ž ā¤ā¤°ā¤¤āĨ ā¤šāĨāĨ¤
+
+ ```python
+ time.sleep(1)
+ ```
+
+1. ā¤ĩāĨā¤ā¤¸ ā¤āĨā¤Ą ā¤ā¤°āĨā¤Žā¤ŋ⤍⤞ ⤏āĨ, ā¤
ā¤Ēā¤¨ā¤ž ā¤Ēā¤žā¤¯ā¤Ĩ⤍ ā¤ā¤Ē ā¤ā¤˛ā¤žā¤¨āĨ ā¤āĨ ⤞ā¤ŋ⤠⤍ā¤ŋā¤ŽāĨ⤍⤞ā¤ŋā¤ā¤ŋ⤤ ā¤ā¤˛ā¤žā¤ā¤:
+
+ ```sh
+ python3 app.py
+ ```
+
+ ā¤ā¤ā¤¸āĨ⤞ ā¤āĨ ⤞ā¤ŋā¤ ā¤˛ā¤žā¤ā¤ ā¤Žā¤žā¤¨ ā¤ā¤ā¤ā¤ĒāĨā¤ ā¤šāĨā¤ā¤āĨāĨ¤ ā¤ĒāĨ⤰ā¤ā¤žā¤ļ ⤏ā¤ā¤ĩāĨā¤Ļ⤠ā¤āĨ ā¤ā¤ĩ⤰ ā¤ā¤° ā¤ā¤ā¤žā¤ā¤° ā¤ā¤°āĨā¤, ā¤ā¤° ā¤Žā¤žā¤¨ ā¤Ŧā¤Ļ⤞ ā¤ā¤žā¤ā¤ā¤āĨ:
+
+ ```output
+ pi@raspberrypi:~/nightlight $ python3 app.py
+ Light level: 634
+ Light level: 634
+ Light level: 634
+ Light level: 230
+ Light level: 104
+ Light level: 290
+ ```
+
+> đ ā¤ā¤Ē ā¤ā¤¸ ā¤āĨā¤Ą ā¤āĨ [ā¤āĨā¤Ą-⤏āĨā¤ā¤¸ā¤°/ā¤Ēā¤žā¤](code-sensor/pi) ā¤Ģā¤ŧāĨ⤞āĨā¤Ąā¤° ā¤ŽāĨ⤠ā¤Ēā¤ž ⤏ā¤ā¤¤āĨ ā¤šāĨā¤āĨ¤
+
+đ ā¤ā¤Ēā¤āĨ ā¤¨ā¤žā¤ā¤ā¤˛ā¤žā¤ā¤ ā¤ĒāĨ⤰āĨā¤āĨā¤°ā¤žā¤Ž ā¤ŽāĨ⤠⤏āĨā¤ā¤¸ā¤° ā¤āĨā¤Ąā¤ŧā¤¨ā¤ž ⤏ā¤Ģ⤞ ā¤°ā¤šā¤ž!
diff --git a/1-getting-started/lessons/4-connect-internet/README.md b/1-getting-started/lessons/4-connect-internet/README.md
index 31567fcd..18233d7a 100644
--- a/1-getting-started/lessons/4-connect-internet/README.md
+++ b/1-getting-started/lessons/4-connect-internet/README.md
@@ -124,7 +124,7 @@ The cloud service can then use this telemetry data to make decisions around what
The next part in adding Internet control to your nightlight is sending the light level telemetry to the MQTT broker on a telemetry topic.
-#### Task
+#### Task - send telemetry from your IoT device
Send light level telemetry to the MQTT broker.
@@ -145,9 +145,9 @@ There's no point in sending telemetry if there's nothing on the other end to lis
#### Install Python and VS Code
-If you don't have Python and VS Code installed locally, you will need to install them both to code the server. If you are using a virtual device, or are working on your Raspberry Pi you can skip this step.
+If you don't have Python and VS Code installed locally, you will need to install them both to code the server. If you are using a virtual IoT device, or are working on your Raspberry Pi you can skip this step as you should already have this installed and configured.
-##### Task
+##### Task - install Python and VS Code
Install Python and VS Code.
@@ -165,7 +165,7 @@ One of the powerful features of Python is the ability to install [pip packages](
By default when you install a package it is available everywhere on your computer, and this can lead to problems with package versions - such as one application depending on one version of a package that breaks when you install a new version for a different application. To work around this problem, you can use a [Python virtual environment](https://docs.python.org/3/library/venv.html), essentially a copy of Python in a dedicated folder, and when you install pip packages they get installed just to that folder.
-##### Task
+##### Task - configure a Python virtual environment
Configure a Python virtual environment and install the MQTT pip packages.
@@ -234,7 +234,7 @@ Configure a Python virtual environment and install the MQTT pip packages.
The server code can now be written in Python.
-##### Task
+##### Task - write the server code
Write the server code.
diff --git a/1-getting-started/lessons/4-connect-internet/single-board-computer-commands.md b/1-getting-started/lessons/4-connect-internet/single-board-computer-commands.md
index 84464cb6..65ff56a4 100644
--- a/1-getting-started/lessons/4-connect-internet/single-board-computer-commands.md
+++ b/1-getting-started/lessons/4-connect-internet/single-board-computer-commands.md
@@ -12,7 +12,7 @@ Subscribe to commands.
1. Open the nightlight project in VS Code.
-1. If you are using a virtual IoT device, ensure the terminal is running the virtual environment
+1. If you are using a virtual IoT device, ensure the terminal is running the virtual environment. If you are using a Raspberry Pi you won't be using a virtual environment.
1. Add the following code after the definitions of the `client_telemetry_topic`:
diff --git a/1-getting-started/lessons/4-connect-internet/single-board-computer-mqtt.md b/1-getting-started/lessons/4-connect-internet/single-board-computer-mqtt.md
index a1f11d11..3d2e1ffc 100644
--- a/1-getting-started/lessons/4-connect-internet/single-board-computer-mqtt.md
+++ b/1-getting-started/lessons/4-connect-internet/single-board-computer-mqtt.md
@@ -14,7 +14,7 @@ Install the pip package
1. Open the nightlight project in VS Code.
-1. If you are using a virtual IoT device, ensure the terminal is running the virtual environment.
+1. If you are using a virtual IoT device, ensure the terminal is running the virtual environment. If you are using a Raspberry Pi you won't be using a virtual environment.
1. Run the following command to install the MQTT pip package:
diff --git a/1-getting-started/lessons/4-connect-internet/single-board-computer-telemetry.md b/1-getting-started/lessons/4-connect-internet/single-board-computer-telemetry.md
index 08bf6019..6cae5fa1 100644
--- a/1-getting-started/lessons/4-connect-internet/single-board-computer-telemetry.md
+++ b/1-getting-started/lessons/4-connect-internet/single-board-computer-telemetry.md
@@ -12,7 +12,7 @@ Publish telemetry to the MQTT broker.
1. Open the nightlight project in VS Code.
-1. If you are using a virtual IoT device, ensure the terminal is running the virtual environment
+1. If you are using a virtual IoT device, ensure the terminal is running the virtual environment. If you are using a Raspberry Pi you won't be using a virtual environment.
1. Add the following import to the top of the `app.py` file:
diff --git a/3-transport/lessons/2-store-location-data/translations/.dummy.md b/3-transport/lessons/2-store-location-data/translations/.dummy.md
deleted file mode 100644
index 6e7db247..00000000
--- a/3-transport/lessons/2-store-location-data/translations/.dummy.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Dummy File
-
-This file acts as a placeholder for the `translations` folder.
-**Please remove this file after adding the first translation**
-
-For the instructions, follow the directives in the [translations guide](https://github.com/microsoft/IoT-For-Beginners/blob/main/TRANSLATIONS.md) .
-
-## THANK YOU
-We truly appreciate your efforts!
diff --git a/3-transport/lessons/2-store-location-data/translations/README.bn.md b/3-transport/lessons/2-store-location-data/translations/README.bn.md
new file mode 100644
index 00000000..c7699547
--- /dev/null
+++ b/3-transport/lessons/2-store-location-data/translations/README.bn.md
@@ -0,0 +1,469 @@
+# āϞā§āĻā§āĻļāύ āĻĄā§āĻāĻž āϏāĻāϰāĻā§āώāĻŖ
+
+
+
+> āϏā§āĻā§āĻāύā§āĻāĻāĻŋ āϤā§āϰ⧠āĻāϰā§āĻā§āύ [Nitya Narasimhan](https://github.com/nitya)āĨ¤ āĻŦā§ āϏāĻāϏā§āĻāϰāĻŖā§ āĻĻā§āĻāĻžāϰ āĻāύā§āϝ āĻāĻŦāĻŋāĻāĻŋāϤ⧠āĻā§āϞāĻŋāĻ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤
+
+## āϞā§āĻāĻāĻžāϰ-āĻĒā§āϰā§āĻŦāĻŦāϰā§āϤ⧠āĻā§āĻāĻ
+
+[āϞā§āĻāĻāĻžāϰ-āĻĒā§āϰā§āĻŦāĻŦāϰā§āϤ⧠āĻā§āĻāĻ](https://brave-island-0b7c7f50f.azurestaticapps.net/quiz/23)
+
+## āϏā§āĻāύāĻž
+
+āĻāϤ āĻĒāĻžāĻ ā§ āĻā§āĻāĻžāĻŦā§ āĻ
āĻŦāϏā§āĻĨāĻžāύā§āϰ āĻĄā§āĻāĻž āĻā§āϝāĻžāĻĒāĻāĻžāϰ āĻāϰāϤ⧠āĻāĻāĻāĻŋ āĻāĻŋāĻĒāĻŋāĻāϏ āϏā§āύā§āϏāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻšā§ āϤāĻž āĻāĻŽāϰāĻž āĻļāĻŋāĻā§āĻāĻŋāϞāĻžāĻŽāĨ¤ āĻāĻžāĻĻā§āϝāϏāĻžāĻŽāĻā§āϰā§āϤ⧠āĻāϰā§āϤāĻŋ āĻāĻāĻāĻŋ āĻā§āϰāĻžāĻā§āϰ āĻ
āĻŦāϏā§āĻĨāĻžāύ āĻāĻŦāĻ āĻāĻāĻŋāϰ āϝāĻžāϤā§āϰāĻžāϰ āĻāύā§āϝ āĻāĻ āĻĄā§āĻāĻžāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤā§, āĻāĻāĻŋ āĻā§āϞāĻžāĻāĻĄā§ āĻāĻāĻāĻāĻŋ āϏāĻžāϰā§āĻāĻŋāϏ⧠āĻĒā§āϰā§āϰāĻŖ āĻāϰāϤ⧠āĻšāĻŦā§ āĻāĻŦāĻ āϤāĻžāϰāĻĒāϰ⧠āĻā§āĻĨāĻžāĻ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻž āĻĻāϰāĻāĻžāϰāĨ¤
+
+āĻāĻ āĻĒāĻžāĻ ā§ āĻāĻāĻāĻāĻŋ āĻĄā§āĻāĻž āϏāĻā§āĻāϝāĻŧ āĻāϰāĻžāϰ āĻŦāĻŋāĻāĻŋāύā§āύ āĻāĻĒāĻžāϝāĻŧ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāĻŽāϰāĻž āĻļāĻŋāĻāĻŦ āĻāĻŦāĻ āϏāĻžāϰā§āĻāĻžāϰāϞā§āϏ āĻā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻā§āĻāĻžāĻŦā§ āĻāĻāĻāĻāĻŋ āĻĒāϰāĻŋāώā§āĻŦāĻž āĻĨā§āĻā§ āĻĄā§āĻāĻž āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻž āϝāĻžā§ āϤāĻžāĻ āĻļāĻŋāĻāϤ⧠āĻĒāĻžāϰāĻŦā§āĨ¤
+
+āĻāĻ āĻĒāĻžāĻ ā§ āĻāĻŽāϰāĻž āĻĻā§āĻāĻŦā§:
+
+* [āĻāĻžāĻ āĻžāĻŽā§āĻāϤ āĻāĻŦāĻ āĻāĻžāĻ āĻžāĻŽā§āĻŦāĻŋāĻšā§āύ āĻĄā§āĻāĻž](#āĻāĻžāĻ āĻžāĻŽā§āĻāϤ-āĻāĻŦāĻ-āĻāĻžāĻ āĻžāĻŽā§āĻŦāĻŋāĻšā§āύ-āĻĄā§āĻāĻž)
+* [GPS āĻĄā§āĻāĻž IoT Hub āĻ āĻĒā§āϰā§āϰāĻŖ](#send-gps-data-to-an-iot-hub)
+* [Hot, Warm, āĻāĻŦāĻ Cold Path](#Hot-Warm-āĻāĻŦāĻ-Cold-Path)
+* [āϏāĻžāϰā§āĻāĻžāϰāĻŦāĻŋāĻšā§āύ āĻā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻŋāĻĒāĻŋāĻāϏ āĻāĻā§āύā§āĻāĻā§āϞāĻŋ āĻĒāϰāĻŋāĻāĻžāϞāύāĻž](#āϏāĻžāϰā§āĻāĻžāϰāĻŦāĻŋāĻšā§āύ-āĻā§āĻĄ-āĻŦā§āϝāĻŦāĻšāĻžāϰ-āĻāϰā§-āĻāĻŋāĻĒāĻŋāĻāϏ-āĻāĻā§āύā§āĻāĻā§āϞāĻŋ-āĻĒāϰāĻŋāĻāĻžāϞāύāĻž)
+* [Azure āϏā§āĻā§āϰā§āĻ āĻ
ā§āϝāĻžāĻāĻžāĻāύā§āĻ](#azure-āϏā§āĻā§āϰā§āĻ-āĻ
ā§āϝāĻžāĻāĻžāĻāύā§āĻ)
+* [āϏāĻžāϰā§āĻāĻžāϰāĻŦāĻŋāĻšā§āύ-āĻā§āĻĄāĻā§-āϏā§āĻā§āϰā§āĻā§-āϏāĻāϝā§āĻā§āϤāĻāϰāĻŖ](#āϏāĻžāϰā§āĻāĻžāϰāĻŦāĻŋāĻšā§āύ-āĻā§āĻĄāĻā§-āϏā§āĻā§āϰā§āĻā§-āϏāĻāϝā§āĻā§āϤāĻāϰāĻŖ)
+
+## āĻāĻžāĻ āĻžāĻŽā§āĻāϤ āĻāĻŦāĻ āĻāĻžāĻ āĻžāĻŽā§āĻŦāĻŋāĻšā§āύ āĻĄā§āĻāĻž
+
+āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāϰ āϏāĻŋāϏā§āĻā§āĻŽāĻā§āϞāĻŋ āĻĄā§āĻāĻž āύāĻŋāϝāĻŧā§ āĻāĻžāĻ āĻāϰ⧠āĻāĻŦāĻ āĻāĻ āĻĄā§āĻāĻž āĻŦāĻŋāĻāĻŋāύā§āύ āĻāĻāĻžāϰ āĻāĻŦāĻ āϧāϰāĻŖā§āϰ āĻšā§ā§ āĻĨāĻžāĻā§āĨ¤ āĻāĻāĻŋ āĻāĻāĻ āϏāĻāĻā§āϝāĻž āĻĨā§āĻā§ āĻļā§āϰ⧠āĻāϰ⧠āĻĒā§āϰāĻā§āϰ āĻĒāϰāĻŋāĻŽāĻžāĻŖā§ āĻā§āĻā§āϏāĻ, āĻāĻŋāĻĄāĻŋāĻ, āĻāĻŋāϤā§āϰ āĻŦāĻž āĻāĻāĻāĻāĻŋ āĻĄā§āĻāĻž āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻĄā§āĻāĻž āϏāĻžāϧāĻžāϰāĻŖāϤ āĻĻā§āĻ āĻāĻžāĻā§ āĻŦāĻŋāĻāĻā§āϤ āĻāϰāĻž āϝāĻžāϝāĻŧ - *āĻāĻžāĻ āĻžāĻŽā§āĻāϤ* āĻĄā§āĻāĻž āĻāĻŦāĻ *āĻāĻžāĻ āĻžāĻŽā§āĻŦāĻŋāĻšā§āύ* āĻĄā§āĻāĻžāĨ¤
+
+* **āĻāĻžāĻ āĻžāĻŽā§āĻāϤ āĻĄā§āĻāĻž (Structured Data)** āĻšāϞ āĻāĻŽāύ āϧāϰāĻŖā§āϰ āĻĄā§āĻāĻž āϝāĻž āĻāĻāĻāĻŋ āϏāĻāĻā§āĻāĻžāϝāĻŧāĻŋāϤ, āĻ
āύāĻŽāύā§āϝāĻŧ āĻāĻžāĻ āĻžāĻŽā§āϝā§āĻā§āϤ, āϝāĻž āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ āĻšāϝāĻŧāύāĻž āĻāĻŦāĻ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻā§āĻŦāĻŋāϞ āĻāĻāĻžāϰ⧠āϏāĻžāĻāĻžāύ⧠āϝāĻžā§ āĻāĻŦāĻ āĻ
āύā§āϝāĻžāύā§āϝ āĻĄā§āĻāĻžāϰ āϏāĻžāĻĨā§ āĻā§āύā§āĻāĻžāĻŦā§ āϏāĻŽā§āĻĒāϰā§āĻāĻŋāϤ āĻāϰāĻž āϝāĻžā§āĨ¤ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖ āĻšāϞ āĻā§āύ⧠āĻŦā§āϝāĻā§āϤāĻŋāϰ āύāĻžāĻŽ, āĻāύā§āĻŽ āϤāĻžāϰāĻŋāĻ āĻāĻŦāĻ āĻ āĻŋāĻāĻžāύāĻž āϏāĻš āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāϰāĻŖāĨ¤
+
+* **āĻāĻžāĻ āĻžāĻŽā§āĻŦāĻŋāĻšā§āύ āĻĄā§āĻāĻž (Unstructured Data)** āĻšāϞ āĻāĻāĻāĻŋ āĻ
āϏāĻāĻā§āĻāĻžāϝāĻŧāĻŋāϤ, āύāĻŽāύā§āϝāĻŧ āĻāĻžāĻ āĻžāĻŽā§āϝā§āĻā§āϤ āĻĄā§āĻāĻž, āϝāĻž āĻāύ āĻāύ āĻāĻžāĻ āĻžāĻŽā§ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖ āĻšāϞ⧠- āϞāĻŋāĻāĻŋāϤ āύāĻĨāĻŋ āĻŦāĻž āϏā§āĻĒā§āϰā§āĻĄāĻļāĻŋāĻ āĨ¤
+
+â
āĻāϰ āĻā§ āĻā§ āĻāĻĻāĻžāĻšāϰāĻŖ āĻāĻŽāϰāĻž āĻāĻžāĻ āĻžāĻŽā§āĻāϤ āĻāĻŦāĻ āĻāĻžāĻ āĻžāĻŽā§āĻŦāĻŋāĻšā§āύ āĻĄā§āĻāĻžāϤ⧠āĻāĻžāĻŦāϤ⧠āĻĒāĻžāϰāĻŋ āϤāĻž āĻāĻŋāύā§āϤāĻž āĻāϰāĻŋāĨ¤
+
+> đ āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻāϧāĻž-āĻāĻžāĻ āĻžāĻŽā§āĻāϤ (Semi-Structured) āĻĄā§āĻāĻž āϰāϝāĻŧā§āĻā§ āϝāĻž āĻāĻžāĻ āĻžāĻŽā§āĻāϤ, āϤāĻŦā§ āϤāĻĨā§āϝā§āϰ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻā§āĻŦāĻŋāϞ āĻāĻāĻžāϰ⧠āϏāĻžāĻāĻžāύ⧠āϝāĻžā§āύāĻž āĨ¤
+
+āĻāĻāĻāĻāĻŋ āĻĄā§āĻāĻž āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāĻžāĻ āĻžāĻŽā§āĻŦāĻŋāĻšā§āύ āĻĄā§āĻāĻž (Unstructured Data) āĻšāĻŋāϏāĻžāĻŦā§ āĻŦāĻŋāĻŦā§āĻāĻŋāϤ āĻšāϝāĻŧāĨ¤
+
+āĻāϞā§āĻĒāύāĻž āĻāϰāĻŋ āĻāĻŽāϰāĻž āĻāĻāĻāĻŋ āĻŦāĻĄāĻŧ āĻŦāĻžāĻŖāĻŋāĻā§āϝāĻŋāĻ āĻāĻžāĻŽāĻžāϰā§āϰ āĻāύā§āϝ āϝāĻžāύāĻŦāĻžāĻšāύā§āϰ āĻŦāĻšāϰ⧠āĻāĻāĻāĻāĻŋ āĻĄāĻŋāĻāĻžāĻāϏ āϝā§āĻā§āϤ āĻāϰā§āĻāĻŋāĨ¤ āĻŦāĻŋāĻāĻŋāύā§āύ āϧāϰāĻŖā§āϰ āĻāĻžāĻĄāĻŧāĻŋāϰ āĻāύā§āϝ āĻŦāĻŋāĻāĻŋāύā§āύ āĻĄāĻŋāĻāĻžāĻāϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻĻāϰāĻāĻžāϰ āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ:
+
+* āĻā§āϰāĻžāĻā§āĻāϰā§āϰ āĻāύā§āϝ āĻāĻŋāĻĒāĻŋāĻāϏ āĻĄā§āĻāĻž āĻĻāϰāĻāĻžāϰ āĻšāϤ⧠āĻĒāĻžāϰ⧠āĻāĻāĻŋ āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰāĻžāϰ āĻāύā§āϝ āϝ⧠āϤāĻžāϰāĻž āϏāĻ āĻŋāĻ āĻāĻžāĻŽāĻžāϰ⧠āĻŦāĻž āĻā§āώā§āϤ⧠āĻāĻžāĻ āĻāϰāĻā§
+* āĻāĻžāϞāĻāϰāĻž āύāĻŋāϰāĻžāĻĒāĻĻā§ āĻāĻžāĻĄāĻŧāĻŋ āĻāĻžāϞāĻžāĻā§āĻā§ āĻāĻŋāύāĻž, āĻĄā§āϰāĻžāĻāĻāĻžāϰā§āϰ āĻĒāϰāĻŋāĻāϝāĻŧ āύāĻŋāĻļā§āĻāĻŋāϤāĻāϰāĻŖ āĻāĻŦāĻ āĻāϤāĻā§āώāĻŖ āĻāĻžāĻ āĻāϰāĻā§ āϤāĻž āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻžāĻĻā§āϝāϏāĻžāĻŽāĻā§āϰ⧠āĻĒāϰāĻŋāĻŦāĻšāύā§āϰ āĻā§āϰāĻžāĻāĻā§āϞāĻŋāϤ⧠āĻāĻŋāĻĒāĻŋāĻāϏ āĻĄā§āĻāĻžāϰ āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ āĻāϤāĻŋāϏāĻāĻā§āϰāĻžāύā§āϤ āĻĄā§āĻāĻžāĻ āĻĒā§āϰā§ā§āĻāύāĨ¤
+* āϰā§āĻĢā§āϰāĻŋāĻāĻžāϰā§āĻā§āĻĄ āĻā§āϰāĻžāĻā§āϰ āĻāύā§āϝ āϤāĻžāĻĒāĻŽāĻžāϤā§āϰāĻžāϰ āϤāĻĨā§āϝ āĻā§āĻŦ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āϝāĻžāϤ⧠āĻāĻžāĻŦāĻžāϰ āĻā§āĻŦ āĻāϰāĻŽ āĻŦāĻž āĻ āĻžāύā§āĻĄāĻž āύāĻž āĻšāϝāĻŧ āĻāĻŦāĻ āĻĒāϰāĻŋāĻŦāĻšāĻŖā§āϰ āϏāĻŽā§ āϤāĻž āύāώā§āĻ āύāĻž āĻšāϝāĻŧāĨ¤
+
+āĻāĻ āĻĄā§āĻāĻž āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āϝāĻĻāĻŋ āĻāĻāĻāĻāĻŋ āĻĄāĻŋāĻāĻžāĻāϏāĻāĻŋ āĻāĻāĻāĻŋ āĻā§āϰāĻžāĻā§āϰ āĻā§āϝāĻžāĻŦā§ āĻĨāĻžāĻā§, āϤāĻŦā§ āĻā§āϰā§āϞāĻžāϰ āĻĒāϰāĻŋāĻŦāϰā§āϤāύā§āϰ āϏāĻžāĻĨā§ āϏāĻžāĻĨā§ āĻĄā§āĻāĻžāĻ āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ āĻšāϤ⧠āĻĒāĻžāϰā§, āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ āϝāĻāύ āĻāĻāĻāĻŋ āϰā§āĻĢā§āϰāĻŋāĻāĻžāϰā§āĻā§āĻĄ āĻā§āϰā§āϞāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāĻŦā§, āϤāĻāύāĻ āĻļā§āϧ⧠āϤāĻžāĻĒāĻŽāĻžāϤā§āϰāĻžāϰ āĻĄā§āĻāĻž āĻĒā§āϰā§āϰāĻŖ āĻāϰāĻž āĻšāĻŦā§āĨ¤
+
+â
āĻāϰ āĻā§āύ āĻā§āύ āĻāĻāĻāĻāĻŋ āĻĄā§āĻāĻž āĻā§āϰāĻšāĻŖ āϝā§āϤ⧠āĻĒāĻžāϰā§? āĻā§āϰāĻžāĻāĻā§āϞāĻŋ āϝ⧠āϧāϰāĻŖā§āϰ āĻŦā§āĻāĻž āĻŦāĻšāύ āĻāϰāϤ⧠āĻĒāĻžāϰ⧠āϏ⧠āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāĻāĻā§ āĻāĻŋāύā§āϤāĻž āĻāϰāĻŋ āĻāĻŦāĻ āϏā§āĻāϏāĻžāĻĨā§ āϰāĻā§āώāĻŖāĻžāĻŦā§āĻā§āώāĻŖā§āϰ āĻĄā§āĻāĻž āϏāĻŽā§āĻĒāϰā§āĻā§āĻ āĻāĻžāĻŦāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤
+
+āĻāĻ āϤāĻĨā§āϝ āϝāĻžāύāĻŦāĻžāĻšāύā§āϰ āĻāĻĒāϰ āύāĻŋāϰā§āĻāϰ āĻāϰ⧠āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ āĻšāϝāĻŧ, āĻāĻŋāύā§āϤ⧠āĻāϏāĻŦ āϤāĻĨā§āϝāĻžāĻŦāϞāĻŋ āĻāϏāϞ⧠āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻžāĻāϰāĻŖā§āϰ āĻāύā§āϝ āĻāĻāĻ IoT āϏāĻžāϰā§āĻāĻŋāϏ⧠āĻĒāĻžāĻ āĻžāύ⧠āĻšāϝāĻŧāĨ¤ āĻāĻāĻāĻāĻŋ āϏāĻžāϰā§āĻāĻŋāϏāĻāĻŋāĻā§ āĻāĻ āĻāĻžāĻ āĻžāĻŽā§āĻŦāĻŋāĻšā§āύ āĻĄā§āĻāĻž āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āĻāϰāϤ⧠āĻĒāĻžāϰāϤ⧠āĻšāĻŦā§, āĻāĻāĻŋāĻā§ āĻāĻŽāύāĻāĻžāĻŦā§ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāϤ⧠āĻšāĻŦā§ āϝāĻž āĻāĻāĻŋ āĻ
āύā§āϏāύā§āϧāĻžāύ āĻŦāĻž āĻŦāĻŋāĻļā§āϞā§āώāĻŖā§āϰ āĻ
āύā§āĻŽāϤāĻŋ āĻĻā§āϝāĻŧ āĻāĻŦāĻžāϰ āĻāĻ āĻĄā§āĻāĻž āĻŦāĻŋāĻāĻŋāύā§āύ āĻāĻžāĻ āĻžāĻŽā§āϰ āϏāĻžāĻĨā§āĻ āϝā§āύ āĻāĻžāĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤
+
+### SQL āĻāĻŦāĻ NoSQL āϏā§āĻā§āϰā§āĻ
+
+āĻĄā§āĻāĻžāĻŦā§āϏāĻā§āϞāĻŋ āĻāĻŽāύ āĻĒāϰāĻŋāώā§āĻŦāĻž āϝāĻž āĻĄā§āĻāĻž āϏāĻāϰāĻā§āώāĻŖ āĻāĻŦāĻ āĻā§ā§ā§āϰāĻŋ āĻāϰāĻžāϰ āϏā§āϝā§āĻ āĻĻā§āϝāĻŧāĨ¤ āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻĻā§āĻ āĻĒā§āϰāĻāĻžāϰ āĻšā§ - SQL āĻāĻŦāĻ NoSQL
+
+#### SQL databases
+
+āĻĒā§āϰāĻĨāĻŽāĻĻāĻŋāĻā§āϰ āĻĄāĻžāĻāĻžāĻŦā§āϏāĻā§āϞ⧠āĻāĻŋāϞ āϰāĻŋāϞā§āĻļāύāĻžāϞ āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻŽā§āϝāĻžāύā§āĻāĻŽā§āύā§āĻ āϏāĻŋāϏā§āĻā§āĻŽāϏ (āĻāϰāĻĄāĻŋāĻŦāĻŋāĻāĻŽāĻāϏ), āĻŦāĻž āϰāĻŋāϞā§āĻļāύāĻžāϞ āĻĄāĻžāĻāĻžāĻŦā§āϏāĨ¤ āϏā§āĻā§āϰāĻžāĻāĻāĻžāϰā§āĻĄ āĻā§āϝā§āϝāĻŧāĻžāϰ⧠āϞā§āϝāĻžāĻā§āĻā§āϝāĻŧā§āĻ (āĻāϏāĻāĻŋāĻāĻāϞ) āĻāĻāĻžāύ⧠āĻĄā§āĻāĻž āϝā§āĻ, āĻ
āĻĒāϏāĻžāϰāĻŖ, āĻāĻĒāĻĄā§āĻ āĻŦāĻž āĻā§āϝāĻŧā§āϰāĻŋ āĻāϰāĻžāϰ āĻāύā§āϝ āϤāĻžāĻĻā§āϰ āϏāĻžāĻĨā§ āĻāύā§āĻāĻžāϰāĻ
ā§āϝāĻžāĻā§āĻ āĻāϰāĻžāϰ āĻĒāϰ⧠āĻāĻāĻŋ āĻāϏāĻāĻŋāĻāĻāϞ āĻĄā§āĻāĻžāĻŦā§āϏ āύāĻžāĻŽā§āĻ āĻĒāϰāĻŋāĻāĻŋā§āϤāĻŋ āϞāĻžāĻ āĻāϰā§āĨ¤ āĻāĻ āĻĄāĻžāĻāĻžāĻŦā§āϏāĻā§āϞ⧠āĻāĻāĻāĻŋ āϏā§āĻāĻŋāĻŽāĻž āύāĻŋāϝāĻŧā§ āĻāĻ āĻŋāϤ āϝāĻž āϏā§āĻĒā§āϰā§āĻĄāĻļā§āĻā§āϰ āĻŽāϤāĻ āĻĄā§āĻāĻž āĻā§āĻŦāĻŋāϞā§āϰ āĻāĻāĻāĻŋ āϏā§-āϏāĻāĻā§āĻāĻžāϝāĻŧāĻŋāϤ āϏā§āĻāĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻā§āĻŦāĻŋāϞ⧠āĻāĻāĻžāϧāĻŋāĻ āύāĻžāĻŽāϝā§āĻā§āϤ āĻāϞāĻžāĻŽ āϰāϝāĻŧā§āĻā§āĨ¤ āϝāĻāύ āĻĄā§āĻāĻž āϝā§āĻ āĻŦāĻž insert āĻāϰāĻž, āĻā§āĻŦāĻŋāϞ⧠āĻāĻāĻāĻŋ āϏāĻžāϰāĻŋ āϝā§āĻ āĻāϰāĻž, āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻāϞāĻžāĻŽā§ āĻŽāĻžāύ āϰāĻžāĻāĻž - āĻāϏāĻŦ āĻāϰāĻž āϝāĻžā§āĨ¤ āĻāĻāĻŋ āĻĄā§āĻāĻžāĻā§āϞāĻŋāĻā§ āĻāĻāĻāĻŋ āĻ
āϤā§āϝāύā§āϤ āĻāĻ ā§āϰ āĻāĻžāĻ āĻžāĻŽā§āϰ āĻŽāϧā§āϝ⧠āϰāĻžāĻā§ - āϝāĻĻāĻŋāĻ āĻāϞāĻžāĻŽāĻā§āϞāĻŋ āĻāĻŽāϰāĻž āĻāĻžāĻāϞ⧠āĻāĻžāϞāĻŋ āϰāĻžāĻāϤ⧠āĻĒāĻžāϰāĻŋ, āϤāĻŦā§ āĻāĻāĻāĻŋ āύāϤā§āύ āĻāϞāĻžāĻŽ āϝā§āĻā§āϤ āĻāϰāϤ⧠āĻāĻžāĻāϞ⧠āĻ
āĻŦāĻļā§āϝāĻ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āϏāĻžāϰāĻŋāϰ (ROW) āĻŽāĻžāύāĻā§āϞāĻŋ āĻĒā§āϰāĻŖ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤ āĻāĻ āĻĄā§āĻāĻžāĻŦā§āϏāĻā§āϞāĻŋ āϰāĻŋāϞā§āĻļāύāĻžāϞ - āϤāĻžāĻ āĻāĻāĻžāύ⧠āĻāĻāĻāĻŋ āĻā§āĻŦāĻŋāϞā§āϰ āĻ
āύā§āϝāĻāĻŋāϰ āϏāĻžāĻĨā§ āϏāĻŽā§āĻĒāϰā§āĻ āĻĨāĻžāĻāϤ⧠āĻĒāĻžāϰā§āĨ¤
+
+
+
+āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āϝāĻĻāĻŋ āĻā§āύ āĻāĻāĻāĻŋ āĻā§āĻŦāĻŋāϞ⧠āĻāĻŽāϰāĻž āĻā§āύ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻŦā§āϝāĻā§āϤāĻŋāĻāϤ āĻŦāĻŋāĻŦāϰāĻŖ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻŋ, āϤāĻžāĻšāϞ⧠āĻĒā§āϰāϤāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻāύā§āϝ āĻ
āĻā§āϝāύā§āϤāϰā§āĻŖ āϏā§āĻŦāϤāύā§āϤā§āϰ (UNIQUE) āĻāĻāĻĄāĻŋ āĻĨāĻžāĻāĻŦā§ āϝāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āύāĻžāĻŽ āĻāĻŦāĻ āĻ āĻŋāĻāĻžāύāĻž āϏāĻŽā§āĻŦāϞāĻŋāϤ āϏāĻžāϰāĻŋāϤ⧠āĻŦā§āϝāĻŦāĻšā§āϤ āĻšāϝāĻŧāĨ¤ āĻāĻŽāϰāĻž āϝāĻĻāĻŋ āϏā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āϏāĻŽā§āĻĒāϰā§āĻā§ āĻ
āύā§āϝāĻžāύā§āϝ āĻŦāĻŋāĻŦāϰāĻŖ āϝā§āĻŽāύ āϤāĻžāĻĻā§āϰ āĻā§āϰāϝāĻŧ āϤāĻžāϞāĻŋāĻāĻž āĻ
āύā§āϝ āĻā§āĻŦāĻŋāϞ⧠āϏāĻāϰāĻā§āώāĻŖ āĻāϰāϤ⧠āĻāĻžāĻ, āϤāĻžāĻšāϞ⧠āϏā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻāĻāĻĄāĻŋāϰ āĻāύā§āϝ āĻāĻŽāĻžāĻĻā§āϰ āύāϤā§āύ āĻā§āĻŦāĻŋāϞ⧠āĻāĻāĻāĻŋ āĻāϞāĻžāĻŽ āĻĨāĻžāĻāĻŦā§āĨ¤ āϝāĻāύ āĻāĻŽāϰāĻž āĻā§āύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§ā§āϰ āϤāĻĨā§āϝ āĻā§āĻāĻāĻŦā§, āĻāĻŽāϰāĻž āϤāĻžāĻĻā§āϰ āĻāĻāĻĄāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āϤāĻžāĻĻā§āϰ āĻŦā§āϝāĻā§āϤāĻŋāĻāϤ āϤāĻĨā§āϝ āĻāĻ āĻā§āĻŦāĻŋāϞ āĻĨā§āĻā§ āĻāĻŦāĻ āĻ
āύā§āϝ āĻā§āĻŦāĻŋāϞ āĻĨā§āĻā§ āϤāĻžāĻĻā§āϰ āĻā§āύāĻžāĻāĻžāĻāĻžāϰ āϏāĻāϞ āϤāĻĨā§āϝ āĻĒā§ā§ā§ āϝāĻžāĻŦāĨ¤
+
+āĻāϏāĻāĻŋāĻāĻāϞ āĻĄā§āĻāĻžāĻŦā§āϏāĻā§āϞāĻŋ āĻāĻžāĻ āĻžāĻŽā§āĻāϤ āĻĄā§āĻāĻž āϏāĻāϰāĻā§āώāĻŖā§āϰ āĻāύā§āϝ āĻāĻŦāĻ āϏā§āĻāĻŋāĻŽāĻžāϰ āϏāĻžāĻĨā§ āϏāĻžāĻŽāĻā§āĻāϏā§āϝ āϰāĻžāĻāĻžāϰ āĻāύā§āϝ āĻāĻĻāϰā§āĻļāĨ¤
+
+â
āĻāϏāĻāĻŋāĻāĻāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰā§āϰ āĻ
āĻāĻŋāĻā§āĻāϤāĻž āύāĻž āĻĨāĻžāĻāϞ⧠[SQL page - Wikipedia](https://wikipedia.org/wiki/SQL) āĻĨā§āĻā§ āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ āĻāĻžāύāϤ⧠āĻĒāĻžāϰāĻŦā§āĨ¤
+
+āĻāĻŋāĻā§ āĻŦāĻšā§āϞ āĻĒāϰāĻŋāĻāĻŋāϤ āĻāϏāĻāĻŋāĻāĻāϞ āĻĄā§āĻāĻžāĻŦā§āϏ āĻšāϞ⧠Microsoft SQL Server, MySQL āĻāĻŦāĻ PostgreSQL āĨ¤
+
+â
āĻāĻŋāĻā§ āĻāĻŦā§āώāĻŖāĻž āĻāϰāĻž āϝāĻžāĻ: āĻāϏāĻāĻŋāĻāĻāϞ āĻĄā§āĻāĻžāĻŦā§āϏ āĻāĻŦāĻ āĻāĻĻā§āϰ āĻāϰā§āĻŽāĻĒāϰāĻŋāϧāĻŋ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻā§āĻāĻžāύ āĻ
āϰā§āĻāύ āĻāϰāĻŋāĨ¤
+
+#### NoSQL āĻĄā§āĻāĻžāĻŦā§āϏ
+
+NoSQL āĻĄā§āĻāĻžāĻŦāϏā§āϏā§āϰ āύāĻžāĻŽā§āϰ āĻāĻā§ NO āĻŦāĻž 'āύāĻž' āϰāĻžāĻāĻžāϰ āĻāĻžāϰāĻŖāĻ āĻšāϞ⧠āϤāĻžāĻĻā§āϰ āϏā§āĻ āϏā§āĻāĻ āĻŋāϤ āĻāĻžāĻ āĻžāĻŽā§ āύā§āĻāĨ¤ āϤāĻžāϰāĻž 'āĻĄāĻā§āĻŽā§āύā§āĻ āĻĄā§āĻāĻžāĻŦā§āϏ' āύāĻžāĻŽā§āĻ āĻĒāϰāĻŋāĻāĻŋāϤ āĻāĻžāϰāĻŖ āϤāĻžāϰāĻž āĻĄāĻā§āĻŽā§āύā§āĻā§āϰ āĻŽāϤ⧠āĻ
āϏāĻāĻāĻ āĻŋāϤ āĻĄā§āĻāĻž āϏāĻāϰāĻā§āώāĻŖ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤
+
+> đ āĻāĻā§āώā§āϤā§āϰ⧠āĻā§āύ⧠āϰāĻžāĻāĻž āĻāĻžāϞ⧠āϝ⧠āĻāĻŋāĻā§ NoSQL āĻĄā§āĻāĻžāĻŦā§āϏ⧠āĻāĻŽāϰāĻž SQL āĻāϰ āĻŽāϤ āĻāϰ⧠āĻā§ā§ā§āϰāĻŋ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŦā§āĨ¤
+
+
+
+NoSQL āĻĄāĻžāĻāĻžāĻŦā§āϏā§āϰ āĻāĻāĻāĻŋ āĻĒā§āϰā§āĻŦāύāĻŋāϰā§āϧāĻžāϰāĻŋāϤ āϏā§āĻāĻŋāĻŽāĻž āύā§āĻ āϝāĻž āĻĄā§āĻāĻž āĻāĻŋāĻāĻžāĻŦā§ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻž āĻšāϝāĻŧ āϤāĻž āϏā§āĻŽāĻžāĻŦāĻĻā§āϧ āĻāϰāĻŦā§, āĻŦāϰāĻ āĻāϰ āĻĒāϰāĻŋāĻŦāϰā§āϤ⧠āĻāĻŽāϰāĻž āϏāĻžāϧāĻžāϰāĻŖāϤ JSON āĻĄāĻā§āĻŽā§āύā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āϝā§āĻā§āύ⧠āĻ
āĻŦāĻŋāĻā§āϰāĻŋāϤ āĻĄā§āĻāĻž āϏāύā§āύāĻŋāĻŦā§āĻļ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋāĨ¤ āĻāĻ āĻĄāĻā§āĻŽā§āύā§āĻāĻā§āϞ⧠āĻāĻŽāĻžāĻĻā§āϰ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāϰā§āϰ āĻĢāĻžāĻāϞā§āϰ āĻŽāϤ⧠āĻĢā§āϞā§āĻĄāĻžāϰ⧠āϏāĻāĻāĻ āĻŋāϤ āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĄāĻā§āĻŽā§āύā§āĻā§ āĻāĻŋāύā§āύ āĻāĻŋāύā§āύ āĻĢāĻŋāϞā§āĻĄ āĻĨāĻžāĻāϤ⧠āĻĒāĻžāϰ⧠- āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āϝāĻĻāĻŋ āĻāĻŽāϰāĻž āĻāĻŽāĻžāĻĻā§āϰ āĻāĻžāĻŽāĻžāϰā§āϰ āϝāĻžāύāĻŦāĻžāĻšāύ āĻĨā§āĻā§ āĻāĻāĻāĻāĻŋ āĻĄā§āĻāĻž āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻŋ, āĻāĻžāϰāĻ āĻāĻžāϰāĻ āĻāύā§āϝ āĻ
ā§āϝāĻžāĻāϏāĻŋāϞāϰā§āĻŽāĻŋāĻāĻžāϰ āĻāĻŦāĻ āĻāϤāĻŋāϰ āĻĄā§āĻāĻžāϰ āĻĢāĻŋāϞā§āĻĄ āĻĨāĻžāĻāϤ⧠āĻĒāĻžāϰā§, āĻ
āύā§āϝāĻĻā§āϰ āĻā§āϰā§āϞāĻžāϰ⧠āϤāĻžāĻĒāĻŽāĻžāϤā§āϰāĻžāϰ āĻĢāĻŋāϞā§āĻĄ āĻĨāĻžāĻāϤ⧠āĻĒāĻžāϰā§āĨ¤ āϝāĻĻāĻŋ āĻāĻŽāϰāĻž āĻāĻāĻāĻŋ āύāϤā§āύ āϧāϰāĻŖā§āϰ āĻā§āϰāĻžāĻ āϝā§āĻ āĻāϰāϤ⧠āĻāĻžāĻ, āϝā§āĻŽāύ āĻāĻāĻāĻŋ āĻŦāĻŋāϞā§āĻ-āĻāύ āϏā§āĻā§āϞ āϝā§āĻā§āϤ āĻāĻžā§āĻŋ āϝāĻž āĻāϤ⧠āĻĨāĻžāĻāĻž āĻāĻāύ āĻā§āϰā§āϝāĻžāĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§, āϤāĻžāĻšāϞ⧠āĻāĻŽāĻžāĻĻā§āϰ IoT āĻĄāĻŋāĻāĻžāĻāϏāĻāĻŋ āĻāĻ āύāϤā§āύ āĻĢāĻŋāϞā§āĻĄāĻāĻŋ āϝā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰ⧠āĻāĻŦāĻ āĻāĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āϏā§āϰ āĻā§āύ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāĻžāĻĄāĻŧāĻžāĻ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻž āϝāĻžāĻŦā§āĨ¤
+
+āĻāĻŋāĻā§ āϏā§āĻĒāϰāĻŋāĻāĻŋāϤ NoSQL database āĻšāϞ⧠Azure CosmosDB, MongoDB āĻāĻŦāĻ CouchDB āĨ¤
+
+â
āĻāĻāĻā§ āĻāĻŦā§āώāĻŖāĻž āĻāϰāĻž āϝāĻžāĻ: āύā§āĻāϏāĻāĻŋāĻāĻāϞ āĻĄā§āĻāĻžāĻŦā§āϏ āĻāĻŦāĻ āĻāĻĻā§āϰ āĻāϰā§āĻŽāĻĒāϰāĻŋāϧāĻŋ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻā§āĻāĻžāύ āĻ
āϰā§āĻāύ āĻāϰāĻŋāĨ¤
+
+āĻāĻ āĻĒāĻžāĻ ā§, āĻāĻŽāϰāĻž āĻāĻāĻāĻāĻŋ āĻĄā§āĻāĻž āϏāĻā§āĻāϝāĻŧ (Store) āĻāϰāϤ⧠NoSQL āϏā§āĻā§āϰā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦāĨ¤
+
+## GPS āĻĄā§āĻāĻž IoT Hub āĻ āĻĒā§āϰā§āϰāĻŖ
+
+āĻāϤ āĻĒāĻžāĻ ā§ āĻāĻŽāϰāĻž āĻāĻŽāĻžāĻĻā§āϰ āĻāĻāĻāĻāĻŋ āĻĄāĻŋāĻāĻžāĻāϏā§āϰ āϏāĻžāĻĨā§ āϏāĻāϝā§āĻā§āϤ āĻāĻāĻāĻŋ āĻāĻŋāĻĒāĻŋāĻāϏ āϏā§āύā§āϏāϰ āĻĨā§āĻā§ āĻāĻŋāĻĒāĻŋāĻāϏ āĻĄā§āĻāĻž āĻā§āϝāĻžāĻĒāĻāĻžāϰ āĻāϰā§āĻāĻŋāĨ¤ āĻāĻ āĻāĻāĻāĻāĻŋ āĻĄā§āĻāĻž āĻā§āϞāĻžāĻāĻĄā§ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāϤā§, āϤāĻž āĻāĻāĻāĻŋ āĻāĻāĻāĻāĻŋ āĻĒāϰāĻŋāώā§āĻŦāĻžāϤ⧠āĻĒāĻžāĻ āĻžāϤ⧠āĻšāĻŦā§āĨ¤ āĻāĻŦāĻžāϰāĻ āĻāĻŽāϰāĻž Azure IoT Hub āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦ, āĻāĻāĻ IoT āĻā§āϞāĻžāĻāĻĄ āĻĒāϰāĻŋāώā§āĻŦāĻž āϝāĻž āĻāĻŽāϰāĻž āĻāĻā§āϰ āĻĒā§āϰāĻā§āĻā§āĻā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĻāĻŋāϞāĻžāĻŽāĨ¤
+
+
+
+### āĻāĻžāĻ - GPS āĻĄā§āĻāĻž IoT Hub āĻ āĻĒā§āϰā§āϰāĻŖ
+
+1. āύāϤā§āύ āĻāĻāĻāĻŋ āĻāĻāĻāĻāĻŋ āĻšāĻžāĻŦ āĻā§āϞāϤ⧠āĻšāĻŦā§ free tier āĻāϰ āĨ¤
+
+ > â ī¸ āĻāĻā§āώā§āϤā§āϰ⧠[āĻĒā§āϰāĻā§āĻā§āĻ-⧍ āϞā§āϏāύ-ā§Ē āĻĨā§āĻā§ āĻāĻāĻāĻāĻŋ āĻšāĻžāĻŦ āϤā§āϰā§āϰ āύāĻŋāϰā§āĻĻā§āĻļāĻžāĻŦāϞāĻŋ āĻ
āύā§āϏāϰāĻŖ āĻāϰāĻž āϝāĻžāĻŦā§](../../../../2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md#create-an-iot-service-in-the-cloud) āĻĒā§āϰā§ā§āĻāύāĻŦā§āϧā§āĨ¤
+
+ āύāϤā§āύ āĻāĻāĻāĻŋ Resource Group āĻā§āϞāĻžāϰ āĻŦāĻŋāώā§āĻāĻŋ āĻŽāύ⧠āϰāĻžāĻāϤ⧠āĻšāĻŦā§, āϝā§āĻāĻŋāϰ āύāĻžāĻŽ `gps-sensor` āĻĻā§ā§āĻž āϝāĻžā§ āύāϤā§āύ IoT Hub āĻāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻāĻāύāĻŋāĻ āύāĻžāĻŽ āϝā§āĻŽāύ `gps-sensor-` āĻĻā§ā§āĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤
+
+ > đ āϝāĻĻāĻŋ āĻĒā§āϰā§āĻŦāĻŦāϰā§āϤ⧠āĻĒā§āϰāĻā§āĻā§āĻā§ āĻŦā§āϝāĻŦāĻšā§āϤ āĻāĻāĻāĻāĻŋ āĻšāĻžāĻŦ āĻĨāĻžāĻā§, āϏā§āĻāĻŋāĻ āĻĒā§āύāϰāĻžāϝāĻŧ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝāĻžāĻŦā§āĨ¤ āĻāĻā§āώā§āϤā§āϰ⧠āĻāĻāĻāĻāĻŋ āĻšāĻžāĻŦ āĻāĻŦāĻ āϰāĻŋāϏā§āϰā§āϏ āĻā§āϰā§āĻĒā§āϰ āύāĻžāĻŽ āϏāĻ āĻŋāĻāĻāĻžāĻŦā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻšāĻŦā§ āϏāĻžāϰā§āĻāĻŋāϏ āϤā§āϰāĻŋāϰ āϏāĻŽā§āĨ¤
+
+1. āĻšāĻžāĻŦā§ āĻāĻāĻāĻŋ āύāϤā§āύ āĻĄāĻŋāĻāĻžāĻāϏ āϝā§āĻ āĻāϰāĻŋ āĻāĻŦāĻ `gps-sensor` āύāĻžāĻŽ āĻĻāĻŋāĻāĨ¤ āĻāĻžāύā§āĻāĻļāύ āϏā§āĻā§āϰāĻŋāĻ āĻāĻŋ āύā§āĻ āϰāĻžāĻāĻŋ
+
+1. āĻāĻā§āϰ āϧāĻžāĻĒ āĻĨā§āĻā§ āĻĄāĻŋāĻāĻžāĻāϏ āϏāĻāϝā§āĻ āϏā§āĻā§āϰāĻŋāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āύāϤā§āύ āĻāĻāĻāĻāĻŋ āĻšāĻžāĻŦ -āĻ āĻāĻŋāĻĒāĻŋāĻāϏ āĻĄā§āĻāĻž āĻĒāĻžāĻ āĻžāϤ⧠āĻĄāĻŋāĻāĻžāĻāϏ āĻā§āĻĄ āĻāĻĒāĻĄā§āĻ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤
+
+ > â ī¸ āĻāĻā§āώā§āϤā§āϰ⧠[āĻĒā§āϰāĻā§āĻā§āĻ-⧍ āϞā§āϏāύ-ā§Ē āĻĨā§āĻā§ āĻāĻāĻāĻāĻŋ āϏāĻžāϰā§āĻāĻŋāϏā§āϰ āϏāĻžāĻĨā§ āĻĄāĻŋāĻāĻžāĻāϏ āϏāĻāϝā§āĻāύā§āϰ āύāĻŋāϰā§āĻĻā§āĻļāĻžāĻŦāϞāĻŋ ](../../../../2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md#connect-your-device-to-the-iot-service) āĻ
āύā§āϏāϰāĻŖ āĻāϰāĻž āϝāĻžāĻŦā§āĨ¤
+
+1. āϝāĻāύ āĻāĻŋāĻĒāĻŋāĻāϏ āĻĄā§āĻāĻž āĻĒā§āϰā§āϰāĻŖ āĻāϰāĻŦ, āϤāĻāύ āĻāĻāĻŋ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻŦāĻŋāύā§āϝāĻžāϏ⧠JSON āĻšāĻŋāϏāĻžāĻŦā§ āĻāϰāϤ⧠āĻšāĻŦā§:
+
+ ```json
+ {
+ "gps" :
+ {
+ "lat" : ,
+ "lon" :
+ }
+ }
+ ```
+
+1. āĻĒā§āϰāϤāĻŋ āĻŽāĻŋāύāĻŋāĻā§ āĻāĻŋāĻĒāĻŋāĻāϏ āĻĄā§āĻāĻž āĻĒāĻžāĻ āĻžāϤ⧠āĻšāĻŦā§ āϝāĻžāϤ⧠āĻĻā§āύāĻŋāĻ āĻŽā§āϝāĻžāϏā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ āϞāĻŋāĻŽāĻŋāĻ āĻļā§āώ āύāĻž āĻšā§āĨ¤
+
+āĻāĻŽāϰāĻž āϝāĻĻāĻŋ Wio āĻāĻžāϰā§āĻŽāĻŋāύāĻžāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āϰāĻŋ, āϤāĻžāĻšāϞ⧠āϏāĻŽāϏā§āϤ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āϝā§āĻ āĻāϰāϤ⧠āĻšāĻŦā§ āĻāĻŦāĻ āĻāĻāĻāĻŋ NTP āϏāĻžāϰā§āĻāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āϏāĻŽāϝāĻŧ āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰāĻžāϰ āĻĒā§āϰā§ā§āĻāύ āĻšāĻŦā§āĨ¤ āĻāϤ āĻĒāĻžāĻ āĻĨā§āĻā§ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠, āĻāĻŽāĻžāĻĻā§āϰ āĻā§āĻĄāĻāĻŋ āĻĻā§āĻŦāĻžāϰāĻž āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰāϤ⧠āĻšāĻŦā§ āϝ⧠āĻāĻāĻŋ āĻāĻŋāĻĒāĻŋāĻāϏ āϞā§āĻā§āĻļāύ āĻĒāĻžāĻ āĻžāύā§āϰ āĻāĻā§ āϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞ āĻĒā§āϰā§āĻ āĻĨā§āĻā§ āϏāĻŽāϏā§āϤ āĻĄā§āĻāĻž āĻĒāĻĄāĻŧā§āĻā§āĨ¤ JSON āĻĄāĻā§āĻŽā§āύā§āĻ āϤā§āϰāĻŋ āĻāϰāϤ⧠āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻā§āĻĄāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŋ:
+
+```cpp
+DynamicJsonDocument doc(1024);
+doc["gps"]["lat"] = gps.location.lat();
+doc["gps"]["lon"] = gps.location.lng();
+```
+āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞ āĻāĻāĻāĻāĻŋ āĻĄāĻŋāĻāĻžāĻāϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϞā§, āĻāĻāĻŋāϰ āĻāύā§āϝ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āϏāĻŽāϏā§āϤ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āĻāύāϏā§āĻāϞ āĻāϰāĻžāϰ āĻŦāĻŋāώā§āĻāĻŋ āĻŽāύ⧠āϰāĻžāĻāϤ⧠āĻšāĻŦā§āĨ¤
+
+āϰāĻžāϏā§āĻĒāĻŦā§āϰāĻŋ āĻĒāĻžāĻ āĻāĻŦāĻ āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞ āĻāĻāĻāĻāĻŋ āĻāĻāϝāĻŧ āĻĄāĻŋāĻāĻžāĻāϏā§āϰ āĻāύā§āϝ, āĻ
āĻā§āώāĻžāĻāĻļ āĻāĻŦāĻ āĻĻā§āϰāĻžāĻāĻŋāĻŽāĻžāĻāĻļā§āϰ āĻŽāĻžāύāĻā§āϞāĻŋ āĻĒā§āϤ⧠āĻāϤ āĻĒāĻžāĻ āĻĨā§āĻā§ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻā§āĻĄāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻā§āĻĄ āϏāĻš āϤāĻžāĻĻā§āϰ āϏāĻ āĻŋāĻ JSON āĻĢāϰā§āĻŽā§āϝāĻžāĻā§ āĻĒāĻžāĻ āĻžāϤ⧠āĻšāĻŦā§:
+
+```python
+message_json = { "gps" : { "lat":lat, "lon":lon } }
+print("Sending telemetry", message_json)
+message = Message(json.dumps(message_json))
+```
+
+> đ āĻĒā§āϰā§ā§āĻāύā§ā§ āϏāĻāϞ āĻā§āĻĄ [code/wio-terminal](code/wio-terminal), [code/pi](code/pi) āĻŦāĻž [code/virtual-device](code/virtual-device) āĻĢā§āϞā§āĻĄāĻžāϰ⧠āĻĒāĻžāĻā§āĻž āϝāĻžāĻŦā§ āĨ¤
+
+Run your device code and ensure messages are flowing into IoT Hub using the `az iot hub monitor-events` CLI command.
+āĻĄāĻŋāĻāĻžāĻāϏ āĻā§āĻĄāĻāĻŋ āϰāĻžāύ āĻāϰ⧠āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰāϤ⧠āĻšāĻŦā§ āϝ⧠āĻŦāĻžāϰā§āϤāĻžāĻā§āϞāĻŋ āĻāĻāĻāĻāĻŋ āĻšāĻžāĻŦā§āϰ āĻŽāϧā§āϝ⧠āĻĒā§āϰāĻŦāĻžāĻšāĻŋāϤ āĻšāĻā§āĻā§ `az iot hub monitor-events` āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§, āϏāĻŋāĻāϞāĻāĻ āĻāĻŽāĻžāύā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤
+
+## Hot, Warm, āĻāĻŦāĻ Cold Path
+
+āĻāĻāĻāĻŋ IoT āĻĄāĻŋāĻāĻžāĻāϏ āĻĨā§āĻā§ āĻā§āϞāĻžāĻāĻĄā§ āĻĒā§āϰāĻŦāĻžāĻšāĻŋāϤ āĻĄā§āĻāĻž āϏāĻŦāϏāĻŽāϝāĻŧ āϰāĻŋāϝāĻŧā§āϞ āĻāĻžāĻāĻŽā§ āĻĒā§āϰāϏā§āϏ āĻāϰāĻž āĻšāϝāĻŧ āύāĻžāĨ¤ āĻāĻŋāĻā§ āĻĄā§āĻāĻž āϰāĻŋāϝāĻŧā§āϞ āĻāĻžāĻāĻŽ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻžāĻāϰāĻŖā§āϰ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻšāϝāĻŧ, āĻāĻŋāĻā§ āĻĄā§āĻāĻž āĻ
āϞā§āĻĒ āĻāĻŋāĻā§āĻā§āώāĻŖ āĻĒāϰ⧠āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āĻāϰāĻž āϝāĻžāϝāĻŧ, āĻāĻŦāĻ āĻ
āύā§āϝāĻžāύā§āϝ āĻĄā§āĻāĻž āĻ
āύā§āĻ āĻĒāϰ⧠āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āĻāϰāϞā§āĻ āĻšā§āĨ¤ āĻŦāĻŋāĻāĻŋāύā§āύ āϏāĻŽāϝāĻŧā§ āĻĄā§āĻāĻž āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āĻāϰ⧠āĻāĻŽāύ āĻŦāĻŋāĻāĻŋāύā§āύ āĻĒāϰāĻŋāώā§āĻŦāĻžāϤ⧠āϤāĻĨā§āϝ āĻĒā§āϰāĻŦāĻžāĻšāĻā§ Hot, Warm āĻāĻŦāĻ Cold Path āĻŦāϞāĻž āĻšāϝāĻŧāĨ¤
+
+### Hot Path
+
+āĻšāĻ āĻĒāĻžāĻĨ (Hot Path) āĻāĻŽāύ āĻĄā§āĻāĻž āĻŦā§āĻāĻžāϝāĻŧ āϝāĻž āϰāĻŋāϝāĻŧā§āϞ āĻāĻžāĻāĻŽā§ āĻŦāĻž āϰāĻŋāϝāĻŧā§āϞ āĻāĻžāĻāĻŽā§āϰ āĻāĻžāĻāĻžāĻāĻžāĻāĻŋ āϏāĻŽā§ā§āĻ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻžāĻāϰāĻŖā§āϰ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻšāϝāĻŧāĨ¤ āĻāϞāĻžāϰā§āĻ āĻĻā§ā§āĻžāϰ āĻāύā§āϝ āϝā§āĻŽāύ - āϝ⧠āĻā§āύāĻ āĻāĻžāĻĄāĻŧāĻŋ āĻāĻāĻāĻŋ āĻĄāĻŋāĻĒā§āϰ āĻāĻžāĻā§ āĻāϏāĻā§ āĻ
āĻĨāĻŦāĻž āĻāĻāĻāĻŋ āϰā§āĻĢā§āϰāĻŋāĻāĻžāϰā§āĻā§āĻĄ āĻā§āϰāĻžāĻā§āϰ āϤāĻžāĻĒāĻŽāĻžāϤā§āϰāĻž āĻā§āĻŦ āĻŦā§āĻļāĻŋ āĻāĻŽāύ āĻĒāϰāĻŋāϏā§āĻĨāĻŋāϤāĻŋāϰ āĻŽā§āĻāĻžāĻŦā§āϞāĻž āĻāϰāϤ⧠āϏāϤāϰā§āĻāϤāĻžāϰ āĻāύā§āϝ āĻšāĻ āĻĒāĻžāĻĨ āĻĄā§āĻāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšā§āĨ¤
+
+āĻšāĻ āĻĒāĻžāĻĨ āĻĄā§āĻāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻāύā§āϝ, āĻā§āϞāĻžāĻāĻĄ āĻĒāϰāĻŋāώā§āĻŦāĻžāĻā§āϞāĻŋ āĻā§āĻĄ āĻĒāĻžāĻāϝāĻŧāĻžāϰ āϏāĻžāĻĨā§ āϏāĻžāĻĨā§ āĻāĻŽāĻžāĻĻā§āϰ āĻāĻā§āύā§āĻāĻā§āϞāĻŋāϤ⧠āϏāĻžāĻĄāĻŧāĻž āĻĻā§āĻŦā§āĨ¤
+
+### Warm path
+
+āĻāώā§āĻŖ āĻĒāĻĨ (Warm path) āĻŦāϞāϤ⧠āĻāĻŽāύ āϤāĻĨā§āϝāĻā§ āĻŦā§āĻāĻžāϝāĻŧ āϝāĻž āĻĒā§āϰāĻžāĻĒā§āϤāĻŋāϰ āĻĒāϰ⧠āĻ
āϞā§āĻĒ āĻāĻŋāĻā§āĻā§āώāĻŖ āϏāĻŽā§ āύāĻŋā§ā§ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āĻāϰāĻž āϝāĻžāϝāĻŧ, āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ āϰāĻŋāĻĒā§āϰā§āĻāĻŋāĻ āĻŦāĻž āϏā§āĻŦāϞā§āĻĒāĻŽā§āϝāĻŧāĻžāĻĻā§ āĻŦāĻŋāĻļā§āϞā§āώāĻŖāĨ¤ āĻāĻā§āϰ āĻĻāĻŋāύā§āϰ āϏāĻāĻā§āĻšā§āϤ āĻĄā§āĻāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻžāĻĄāĻŧāĻŋāϰ āĻŽāĻžāĻāϞā§āĻā§āϰ āĻĻā§āύāĻŋāĻ āϰāĻŋāĻĒā§āϰā§āĻā§āϰ āĻāύā§āϝ āĻāĻ āϧāϰāĻŖā§āϰ āĻĒāĻĻā§āϧāϤāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšā§āĨ¤
+
+āĻā§āϞāĻžāĻāĻĄ āϏāĻžāϰā§āĻāĻŋāϏā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāĻ āĻĄā§āĻāĻž āĻāĻŽāύāĻāĻžāĻŦā§ āϏā§āĻā§āϰ āĻāϰāĻž āĻšā§ āϝāĻžāϤ⧠āĻĻā§āϰā§āϤ āĻ
ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰāĻž āϝāĻžāϝāĻŧāĨ¤
+
+### Cold path
+
+āĻ āĻžāύā§āĻĄāĻž āĻĒāĻĨ (Cold path) āĻŦāϞāϤ⧠āĻāϤāĻŋāĻšāĻžāϏāĻŋāĻ āϤāĻĨā§āϝ āĻŦā§āĻāĻžāϝāĻŧ, āĻĻā§āϰā§āĻāĻŽā§āϝāĻŧāĻžāĻĻā§ āϤāĻĨā§āϝ āϏāĻāϰāĻā§āώāĻŖ āĻāϰ⧠āϝāĻāύāĻ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻšāϝāĻŧ āϤāĻāύ āĻŦāĻŋāĻļā§āϞā§āώāĻŖ āĻāϰāĻž āĻšāĻŦā§āĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āϝāĻžāύāĻŦāĻžāĻšāύā§āϰ āĻŦāĻžāϰā§āώāĻŋāĻ āĻŽāĻžāĻāϞā§āĻ āϰāĻŋāĻĒā§āϰā§āĻ āĻĒā§āϤ⧠āĻ āĻžāύā§āĻĄāĻž āĻĒāĻĨ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝāĻžā§ āĻ
āĻĨāĻŦāĻž āĻā§āĻŦāĻžāϞāĻžāύāĻŋ āĻāϰāĻ āĻāĻŽāĻžāύā§āϰ āĻāύā§āϝ āϏāĻŦāĻā§āϝāĻŧā§ āĻ
āύā§āĻā§āϞ āϰā§āĻ āĻā§āĻāĻā§ āĻŦā§āϰ āĻāϰāĻžāϰ āĻāύā§āϝ āϰā§āĻ āĻŦāĻŋāĻļā§āϞā§āώāĻŖ āĻāĻžāϞāĻžāϤā§āĻ āĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝāĻžā§ āĨ¤
+
+āĻā§āϞā§āĻĄ āĻĒāĻžāĻĨ āĻĄā§āĻāĻž āϏāĻžāϧāĻžāϰāĻŖāϤ data warehouse āĻ āϏāĻāϰāĻā§āώāĻŋāϤ āĻšāϝāĻŧ - āĻĄā§āĻāĻžāĻā§āϞāĻŋāϰ āĻŦāĻĄāĻŧ āĻĒāϰāĻŋāĻŽāĻžāĻŖā§ āϏāĻāϰāĻā§āώāĻŖā§āϰ āĻāύā§āϝ āĻĄāĻŋāĻāĻžāĻāύ āĻāϰāĻž āĻĄā§āĻāĻžāĻŦā§āϏ āϝāĻž āĻāĻāύāĻ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻšāĻŦā§ āύāĻž āĻāĻŦāĻ āĻĻā§āϰā§āϤ āĻāĻŦāĻ āϏāĻšāĻā§āĻ āĻā§ā§ā§āϰāĻŋ āĻāϰāĻž āϝāĻžāĻŦā§āĨ¤ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻā§āϞāĻžāĻāĻĄ āĻ
ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ⧠āύāĻŋāϝāĻŧāĻŽāĻŋāϤāĻāĻžāĻŦā§ āĻĒā§āϰāϤāĻŋāĻĻāĻŋāύ, āϏāĻĒā§āϤāĻžāĻš āĻŦāĻž āĻŽāĻžāϏ⧠āĻāĻāĻāĻŋ āύāĻŋāϝāĻŧāĻŽāĻŋāϤ āϏāĻŽāϝāĻŧā§ āĻāϞāĻŦā§ āĻāώā§āĻŖ āĻĒāĻĨā§āϰ āϏā§āĻā§āϰā§āĻ āĻĨā§āĻā§ āĻā§ā§āϝāĻžāϰāĻšāĻžāĻāϏ⧠āĻāĻ āĻĄā§āĻāĻž āϏā§āĻĨāĻžāύāĻžāύā§āϤāϰ āĻāϰāĻžāϰ āĻāĻžāĻāĨ¤
+
+â
āĻāĻ āĻĒāĻžāĻ āĻā§āϞāĻŋāϤ⧠āĻāĻŽāϰāĻž āĻāĻāύ āĻĒāϰā§āϝāύā§āϤ āϝ⧠āĻĄā§āĻāĻž āĻā§āϝāĻžāĻĒāĻāĻžāϰ āĻāϰā§āĻāĻŋ āϏ⧠āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāĻŋāύā§āϤāĻž āĻāϰāĻŋāĨ¤ āĻāĻā§āϞ⧠āĻāĻŋ hot, warm āύāĻžāĻāĻŋ cold path āĻāϰ āϤāĻĨā§āϝ?
+
+## āϏāĻžāϰā§āĻāĻžāϰāĻŦāĻŋāĻšā§āύ āĻā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻŋāĻĒāĻŋāĻāϏ āĻāĻā§āύā§āĻāĻā§āϞāĻŋ āĻĒāϰāĻŋāĻāĻžāϞāύāĻž
+
+āĻāĻāĻŦāĻžāϰ āĻāĻŽāĻžāĻĻā§āϰ āĻāĻāĻāĻāĻŋ āĻšāĻžāĻŦā§āϰ āĻŽāϧā§āϝ⧠āĻĄā§āĻāĻž āĻĒā§āϰāĻŦāĻžāĻšāĻŋāϤ āĻšāϝāĻŧā§ āĻā§āϞā§, āĻāĻā§āύā§āĻ-āĻšāĻžāĻŦ āϏāĻžāĻŽāĻā§āĻāϏā§āϝāĻĒā§āϰā§āĻŖ āĻāύā§āĻĄāĻĒāϝāĻŧā§āύā§āĻā§ āĻĒā§āϰāĻāĻžāĻļāĻŋāϤ āĻāĻā§āύā§āĻāĻā§āϞāĻŋ āĻļā§āύāĻžāϰ āĻāύā§āϝ āĻāĻŋāĻā§ āϏāĻžāϰā§āĻāĻžāϰāϞā§āϏ āĻā§āĻĄ āϞāĻŋāĻāϤ⧠āĻĒāĻžāϰāĻŦā§āĨ¤ āĻāĻāĻŋ āĻāώā§āĻŖ āĻĒāĻĨā§ āĻĄā§āĻāĻž āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻž āĻšāĻŦā§ āĻāĻŦāĻ āĻĒāϰāĻŦāϰā§āϤ⧠āĻĒāĻžāĻ ā§ āϝāĻžāϤā§āϰāĻžāϰ āĻĒā§āϰāϤāĻŋāĻŦā§āĻĻāύ āϤā§āϰ⧠āĻāϰāĻžāϰ āĻāύā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāĻŦā§āĨ¤
+
+
+
+### āĻāĻžāĻ - āϏāĻžāϰā§āĻāĻžāϰāĻŦāĻŋāĻšā§āύ āĻā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻŋāĻĒāĻŋāĻāϏ āĻāĻā§āύā§āĻāĻā§āϞāĻŋ āĻĒāϰāĻŋāĻāĻžāϞāύāĻž
+
+1. Azure Functions CLI āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻāĻāĻŋ Azure Functions āĻ
ā§āϝāĻžāĻĒ āϤā§āϰāĻŋ āĻāϰāĻŋāĨ¤ āĻĒāĻžāĻāĻĨāύ āϰāĻžāύāĻāĻžāĻāĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŋ āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĢā§āϞā§āĻĄāĻžāϰ⧠āϤā§āϰāĻŋ āĻāϰāĻŋ āϝāĻžāϰ āύāĻžāĻŽ `gps-trigger` āĻāĻŦāĻ āĻĢāĻžāĻāĻļāύ āĻ
ā§āϝāĻžāĻĒ āĻĒā§āϰāĻā§āĻā§āĻā§āϰ āύāĻžāĻŽā§āϰ āĻāύā§āϝ āĻāĻāĻ āύāĻžāĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤ Virtual environment āϤā§āϰā§āϰ āĻŦāĻŋāώā§āĻāĻŋ āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤
+
+ > â ī¸ āĻāĻā§āώā§āϤā§āϰ⧠[āĻĒā§āϰāĻā§āĻā§āĻ-⧍ āϞā§āϏāύ-ā§Ģ āĻĨā§āĻā§ āĻāĻāĻāĻāĻŋ āϏāĻžāϰā§āĻāĻŋāϏā§āϰ āϏāĻžāĻĨā§ āϏāĻžāϰā§āĻāĻžāϰāϞā§āϏ āĻāĻĒā§āϞāĻŋāĻā§āĻļāύ āϤā§āϰā§āϰ āύāĻŋāϰā§āĻĻā§āĻļāĻžāĻŦāϞāĻŋ](../../../../2-farm/lessons/5-migrate-application-to-the-cloud/README.md#create-a-serverless-application) āĻ
āύā§āϏāϰāĻŖ āĻāϰāĻž āϝāĻžāĻŦā§āĨ¤
+
+1. Add an IoT Hub event trigger that uses the IoT Hub's Event Hub compatible endpoint.
+
+ > â ī¸ āĻāĻā§āώā§āϤā§āϰ⧠[āĻĒā§āϰāĻā§āĻā§āĻ-⧍ āϞā§āϏāύ-ā§Ģ āĻĨā§āĻā§ āĻāĻāĻāĻāĻŋ āĻšāĻžāĻŦ āĻāĻā§āύā§āĻ āĻā§āϰāĻŋāĻāĻžāϰ āϤā§āϰā§āϰ āύāĻŋāϰā§āĻĻā§āĻļāĻžāĻŦāϞāĻŋ](../../../../2-farm/lessons/5-migrate-application-to-the-cloud/README.md#create-an-iot-hub-event-trigger) āĻ
āύā§āϏāϰāĻŖ āĻāϰāĻž āϝāĻžāĻŦā§āĨ¤
+
+1. āĻāĻā§āύā§āĻ āĻšāĻžāĻŦ āϏāĻžāĻŽāĻā§āĻāϏā§āϝāĻĒā§āϰā§āĻŖ āĻāύā§āĻĄāĻĒāϝāĻŧā§āύā§āĻ āϏāĻāϝā§āĻ āϏā§āĻā§āϰāĻŋāĻ āϏā§āĻ āĻāϰāϤ⧠āĻšāĻŦā§ `local.settings.json` āĻĢāĻžāĻāϞ⧠āĻāĻŦāĻ `function.json` āĻĢāĻžāĻāϞā§āϰ āĻāύā§āϝ āϏā§āĻ āĻāύā§āĻā§āϰāĻŋāϰ KEY āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤
+
+1. āĻāĻā§āώā§āϤā§āϰ⧠Azurite app āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻšāĻŦā§ local storage emulator āĻšāĻŋāϏā§āĻŦā§āĨ¤
+
+1. āĻāĻŋāĻĒāĻŋāĻāϏ āĻĄāĻŋāĻāĻžāĻāϏ āĻĨā§āĻā§ āĻāĻā§āύā§āĻ āĻā§āϰāĻšāĻŖ āĻāϰāĻā§ āĻāĻŋāύāĻž āϤāĻž āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰāϤ⧠āĻĢāĻžāĻāĻļāύ āĻ
ā§āϝāĻžāĻĒāĻāĻŋ āĻāĻžāϞāĻžāϤ⧠āĻšāĻŦā§āĨ¤ āĻāĻāĻžāύ āĻĨā§āĻā§āĻ āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰāĻž āϝāĻžāĻŦā§ āϝ⧠āĻāĻāĻāĻāĻŋ āĻĄāĻŋāĻāĻžāĻāϏāĻāĻŋ āĻāϞāĻā§ āĻāĻŦāĻ āĻāĻŋāĻĒāĻŋāĻāϏ āĻĄā§āĻāĻž āĻĒāĻžāĻ āĻžāĻā§āĻā§āĨ¤
+
+ ```output
+ Python EventHub trigger processed an event: {"gps": {"lat": 47.73481, "lon": -122.25701}}
+ ```
+
+## Azure āϏā§āĻā§āϰā§āĻ āĻ
ā§āϝāĻžāĻāĻžāĻāύā§āĻ
+
+
+
+Azure āϏā§āĻā§āϰā§āĻ āĻ
ā§āϝāĻžāĻāĻžāĻāύā§āĻ āĻāĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻāĻĻā§āĻĻā§āĻļā§āϝ⧠(General Purpose) āĻŦā§āϝāĻŦāĻšā§āϤ āϏā§āĻā§āϰā§āĻ āĻĒāϰāĻŋāώā§āĻŦāĻž āϝāĻž āĻŦāĻŋāĻāĻŋāύā§āύ āĻāĻĒāĻžāϝāĻŧā§ āĻĄā§āĻāĻž āϏāĻāϰāĻā§āώāĻŖ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻŽāϰāĻž āĻŦā§āϞāĻŦ āĻšāĻŋāϏāĻžāĻŦā§, āϏāĻžāϰāĻŋāϤā§, āĻā§āĻŦāĻŋāϞ⧠āĻŦāĻž āĻĢāĻžāĻāϞ āĻšāĻŋāϏāĻžāĻŦā§ āĻĄā§āĻāĻž āϏāĻāϰāĻā§āώāĻŖ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋāĨ¤
+
+### Blob storage
+
+*āĻŦā§āϞāĻŦ* āĻŽāĻžāύ⧠āĻšāϞ⧠āĻŦāĻžāĻāύāĻžāϰāĻŋ āĻŦāĻĄāĻŧ āĻŦāϏā§āϤ⧠(binary large objects) āϤāĻŦā§ āϝā§āĻā§āύ āĻāĻžāĻ āĻžāĻŽā§āĻŦāĻŋāĻšā§āύ āĻĄā§āĻāĻžāϰ āĻāύā§āϝ āĻāĻ āĻļāĻŦā§āĻĻ āĻŦā§āϝāĻŦāĻšā§āϤ āĻšā§āĨ¤ āĻāĻāĻāĻāĻŋ āĻĄā§āĻāĻž āϧāĻžāϰāĻŖāĻāĻžāϰ⧠JSON āĻĄāĻā§āĻŽā§āύā§āĻ āĻĨā§āĻā§ āĻļā§āϰ⧠āĻāϰ⧠āĻāĻŽā§āĻ āĻāĻŦāĻ āĻŽā§āĻāĻŋ āĻĢāĻžāĻāϞāĻā§āϞāĻŋāϤā§āĻ āĻŦā§āϞāĻŦ āϏā§āĻā§āϰā§āĻā§ āϝā§āĻā§āύ āĻĄā§āĻāĻž āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻž āϝāĻžā§āĨ¤ āĻŦā§āϞāĻŦ āϏā§āĻā§āϰā§āĻā§ *āĻāύāĻā§āĻāύāĻžāϰ* āĻāϰ āϧāĻžāϰāĻŖāĻž āϰāϝāĻŧā§āĻā§, āĻāĻā§āϞ⧠āύāĻžāĻŽāϝā§āĻā§āϤ āĻŦāĻžāĻā§āĻ/āĻĒāĻžāϤā§āϰ āϝāĻžāϰ āĻŽāϧā§āϝ⧠āĻĄā§āĻāĻž āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻž āϝāĻžā§, āĻāĻāĻāĻŋ āϰāĻŋāϞā§āĻļāύāĻžāϞ āĻĄāĻžāĻāĻžāĻŦā§āĻā§ āĻā§āĻŦāĻŋāϞā§āϰ āĻŽāϤā§āĨ¤ āĻāĻ āĻĒāĻžāϤā§āϰ⧠āĻŦā§āϞāĻŦ āϏāĻāϰāĻā§āώāĻŖā§āϰ āĻāύā§āϝ āĻāĻ āĻŦāĻž āĻāĻāĻžāϧāĻŋāĻ āĻĢā§āϞā§āĻĄāĻžāϰ āĻĨāĻžāĻāϤ⧠āĻĒāĻžāϰ⧠āĻāĻŦāĻ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĢā§āϞā§āĻĄāĻžāϰ⧠āĻ
āύā§āϝāĻžāύā§āϝ āĻĢā§āϞā§āĻĄāĻžāϰ āĻĨāĻžāĻāϤ⧠āĻĒāĻžāϰā§, āϝā§āĻāĻžāĻŦā§ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāϰā§āϰ āĻšāĻžāϰā§āĻĄāĻĄāĻŋāϏā§āĻā§ āĻĢāĻžāĻāϞ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻž āĻšāϝāĻŧāĨ¤
+
+IoT āĻĄā§āĻāĻž āϏāĻāϰāĻā§āώāĻŖ āĻāϰāϤ⧠āĻāĻŽāϰāĻž āĻāĻ āĻĒāĻžāĻ ā§ āĻŦā§āϞāĻŦ āϏā§āĻā§āϰā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦāĨ¤
+
+â
āĻāĻŋāĻā§ āĻāĻŦā§āώāĻŖāĻž āĻāϰāĻž āϝāĻžāĻ:[Azure Blob Storage](https://docs.microsoft.com/azure/storage/blobs/storage-blobs-overview?WT.mc_id=academic-17441-jabenn) āϏāĻŽā§āĻĒāϰā§āĻā§ āĻĒā§ā§ āĻāϰ⧠āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ āĻāĻžāύāĻžāϰ āĻā§āώā§āĻāĻž āĻāϰāĻŋāĨ¤
+
+### Table storage
+
+āĻā§āĻŦāĻŋāϞ āϏā§āĻā§āϰā§āĻ āĻāĻŽāĻžāĻĻā§āϰ āĻāϧāĻž āĻāĻžāĻ āĻžāĻŽā§āĻāϤ āĻĄā§āĻāĻž āϏāĻāϰāĻā§āώāĻŖ āĻāϰāϤ⧠āĻĻā§āϝāĻŧāĨ¤ āĻā§āĻŦāĻŋāϞ āϏā§āĻā§āϰā§āĻ āĻāϏāϞ⧠āĻāĻāĻāĻŋ NoSQL āĻĄāĻžāĻāĻžāĻŦā§āϏ, āϤāĻžāĻ āĻā§āĻŦāĻŋāϞā§āϰ āĻāĻāĻāĻŋ āϏāĻāĻā§āĻāĻžāϝāĻŧāĻŋāϤ āϏā§āĻ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻšāϝāĻŧ āύāĻž, āĻāĻŋāύā§āϤ⧠āĻāĻāĻŋ āĻāĻ āĻŦāĻž āĻāĻāĻžāϧāĻŋāĻ āĻā§āĻŦāĻŋāϞ⧠āĻĄā§āĻāĻž āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĄāĻŋāĻāĻžāĻāύ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§, āĻĒā§āϰāϤāĻŋāĻāĻŋ āϏāĻžāϰāĻŋāϰ āϏāĻāĻā§āĻāĻž āĻĻāĻŋāϤ⧠āĻ
āύāύā§āϝ āĻā§ (unique key) āĻĻāĻŋāϝāĻŧā§āĨ¤
+
+â
āĻāĻŋāĻā§ āĻāĻŦā§āώāĻŖāĻž āĻāϰāĻž āϝāĻžāĻ: [Azure Table Storage](https://docs.microsoft.com/azure/storage/tables/table-storage-overview?WT.mc_id=academic-17441-jabenn) āϏāĻŽā§āĻĒāϰā§āĻā§ āĻĒā§ā§ āĻāϰ⧠āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ āĻāĻžāύāĻžāϰ āĻā§āώā§āĻāĻž āĻāϰāĻŋāĨ¤
+
+### Queue storage
+
+āĻāĻŋāĻ āϏā§āĻā§āϰā§āĻ āĻāĻāĻāĻŋ āϏāĻžāϰāĻŋāϤ⧠64KB āĻāĻāĻžāϰā§āϰ āĻŦāĻžāϰā§āϤāĻž āϏāĻāϰāĻā§āώāĻŖ āĻāϰāϤ⧠āĻĻā§āϝāĻŧāĨ¤ āĻāĻŽāϰāĻž āϏāĻžāϰāĻŋāϰ āĻĒāĻŋāĻāύā§āϰ āĻĻāĻŋāĻā§ āĻŦāĻžāϰā§āϤāĻž āϝā§āĻ āĻāϰāϤ⧠āĻĒāĻžā§āϰāĻŋ āĻāĻŦāĻ āϏā§āĻā§āϞāĻŋ āĻāĻŦāĻžāϰ āϏāĻžāĻŽāύ⧠āĻĨā§āĻā§ āĻĒāĻĄāĻŧāϤ⧠āĻĒāĻžāϰāĻŋāĨ¤ Queue āĻāĻāĻžāύ⧠āĻŦāĻžāϰā§āϤāĻžāĻā§āϞāĻŋāĻā§ āĻ
āύāĻŋāϰā§āĻĻāĻŋāώā§āĻāĻāĻžāϞā§āϰ āĻāύā§āϝ āϏāĻāϰāĻā§āώāĻŖ āĻāϰ⧠āϝāϤāĻā§āώāĻŖ āϏā§āĻā§āϰā§āĻ āϏā§āĻĒā§āϏ āϰāϝāĻŧā§āĻā§, āϤāĻžāĻ āĻāĻāĻŋ āĻŦāĻžāϰā§āϤāĻžāĻā§āϞāĻŋāĻā§ āĻĻā§āϰā§āĻāĻŽā§āϝāĻŧāĻžāĻĻā§ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāϤ⧠āĻĻā§āϝāĻŧāĨ¤ āϤāĻžāϰāĻĒāϰ āϝāĻāύ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻšā§ āϤāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝāĻžā§āĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āϝāĻĻāĻŋ āĻāĻŋāĻĒāĻŋāĻāϏ āĻĄā§āĻāĻž āĻĒā§āϰāϏā§āϏ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻŽāĻžāϏāĻŋāĻ āĻāĻžāĻ āĻāĻžāϞāĻžāϤ⧠āĻšā§, āϤāĻžāĻšāϞ⧠āĻĒā§āϰāϤāĻŋāĻĻāĻŋāύ āĻāĻāĻŋāĻā§ āĻāĻ āĻŽāĻžāϏā§āϰ āĻāύā§āϝ āϏāĻžāϰāĻŋāϤ⧠āϝā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŦā§, āϤāĻžāϰāĻĒāϰ āĻŽāĻžāϏā§āϰ āĻļā§āώ⧠āϏāĻžāϰāĻŋāϰ āϏāĻŦ āĻŦāĻžāϰā§āϤāĻž āĻāĻāϏāĻžāĻĨā§ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āĻāϰāϤ⧠āĻĒāĻžāϰāĻŦā§āĨ¤
+
+â
āĻāĻŋāĻā§ āĻāĻŦā§āώāĻŖāĻž āĻāϰāĻž āϝāĻžāĻ: [Azure Queue Storage](https://docs.microsoft.com/azure/storage/queues/storage-queues-introduction?WT.mc_id=academic-17441-jabenn) āϏāĻŽā§āĻĒāϰā§āĻā§ āĻĒā§ā§ āĻāϰ⧠āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ āĻāĻžāύāĻžāϰ āĻā§āώā§āĻāĻž āĻāϰāĻŋāĨ¤
+
+### File storage
+
+āĻĢāĻžāĻāϞ āϏā§āĻā§āϰā§āĻ āĻšāϞ āĻā§āϞāĻžāĻāĻĄā§ āĻĢāĻžāĻāϞā§āϰ āϏā§āĻā§āϰā§āĻ āĻāĻŦāĻ āϝ⧠āĻā§āύāĻ āĻ
ā§āϝāĻžāĻĒ āĻŦāĻž āĻĄāĻŋāĻāĻžāĻāϏ āϏā§āĻŦā§āĻā§āϤ āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄ āĻĒā§āϰā§āĻā§āĻāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āϏāĻāϝā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻŽāϰāĻž āĻĢāĻžāĻāϞ āϏā§āĻā§āϰā§āĻā§ āĻāĻŽāĻžāĻĻā§āϰ āϤāĻĨā§āϝ āϰāĻžāĻāϤ⧠āĻĒāĻžāϰāĻŋ, āϤāĻžāϰāĻĒāϰ⧠āĻĒāĻŋāϏāĻŋ āĻŦāĻž āĻŽā§āϝāĻžāĻā§āϰ āĻĄā§āϰāĻžāĻāĻ āĻšāĻŋāϏāĻžāĻŦā§ āĻŽāĻžāĻāύā§āĻ āĻāϰāĻž āϝāĻžā§āĨ¤
+
+â
āĻāĻŋāĻā§ āĻāĻŦā§āώāĻŖāĻž āĻāϰāĻž āϝāĻžāĻ: [Azure File Storage](https://docs.microsoft.com/azure/storage/files/storage-files-introduction?WT.mc_id=academic-17441-jabenn) āϏāĻŽā§āĻĒāϰā§āĻā§ āĻĒā§ā§ āĻāϰ⧠āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ āĻāĻžāύāĻžāϰ āĻā§āώā§āĻāĻž āĻāϰāĻŋāĨ¤
+
+## āϏāĻžāϰā§āĻāĻžāϰāĻŦāĻŋāĻšā§āύ āĻā§āĻĄāĻā§ āϏā§āĻā§āϰā§āĻā§ āϏāĻāϝā§āĻā§āϤāĻāϰāĻŖ
+
+āĻāĻāĻāĻāĻŋ āĻšāĻžāĻŦ āĻĨā§āĻā§ āĻŦāĻžāϰā§āϤāĻžāĻā§āϞāĻŋ āϏāĻā§āĻāϝāĻŧ āĻāϰāϤ⧠āĻāĻŽāĻžāĻĻā§āϰ āĻĢāĻžāĻāĻļāύ āĻ
ā§āϝāĻžāĻĒāĻāĻŋāĻā§ āĻāĻāύ āĻŦā§āϞāĻŦ āϏā§āĻā§āϰā§āĻā§āϰ āϏāĻžāĻĨā§ āϏāĻāϝā§āĻā§āϤ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤ āĻāĻāĻŋ āĻāϰāĻžāϰ 2 āĻāĻŋ āĻāĻĒāĻžāϝāĻŧ āϰāϝāĻŧā§āĻā§:
+
+* āĻĢāĻžāĻāĻļāύ āĻā§āĻĄā§āϰ āĻāĻŋāϤāϰā§, āĻāĻŽāĻžāĻĻā§āϰ āĻŦā§āϞāĻŦ āϏā§āĻā§āϰā§āĻ Python SDK āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻŦā§āϞāĻŦ āϏā§āĻā§āϰā§āĻā§ āϏāĻāϝā§āĻ āĻāϰāϤ⧠āĻšāĻŦā§ āĻāĻŦāĻ āĻĄā§āĻāĻž āĻŦā§āϞāĻŦ āĻšāĻŋāϏāĻžāĻŦā§ āϰāĻžāĻāϤ⧠āĻšāĻŦā§āĨ¤
+* āĻāĻŽāĻžāĻĻā§āϰ āĻāĻāĻāĻŋ āĻāĻāĻāĻĒā§āĻ āĻĢāĻžāĻāĻļāύ āĻŦāĻžāĻāύā§āĻĄāĻŋāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻšāĻŦā§ āĻĢāĻžāĻāĻļāύā§āϰ āϰāĻŋāĻāĻžāϰā§āύ āĻā§āϝāĻžāϞ⧠āĻŦā§āϞā§āĻŦ āϏā§āĻā§āϰā§āĻā§ āĻŦāĻžāĻāύā§āĻĄ āĻāϰāϤ⧠āĻāĻŦāĻ āĻāĻā§āώā§āϤā§āϰ⧠āĻŦā§āϞāĻŦāĻāĻŋ āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤
+
+āĻāĻ āĻĒāĻžāĻ ā§, āĻāĻŽāϰāĻž āĻŦā§āϞāĻŦ āϏā§āĻā§āϰā§āĻā§āϰ āϏāĻžāĻĨā§ āĻā§āĻāĻžāĻŦā§ āϝā§āĻāĻžāϝā§āĻ āĻāϰāϤ⧠āĻšāϝāĻŧ āϤāĻž āĻĻā§āĻāϤ⧠Python SDK āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦāĨ¤
+
+
+
+āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻĢāϰāĻŽā§āϝāĻžāĻā§ āĻĄā§āĻāĻž āĻāĻāĻāĻŋ JSON āĻŦā§āϞāĻŦ āĻšāĻŋāϏāĻžāĻŦā§ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻž āĻšāĻŦā§:
+
+```json
+{
+ "device_id": ,
+ "timestamp" :