From 9dd2795a2e2fa1ab8a3ad6a3bc13e4ce1894bba5 Mon Sep 17 00:00:00 2001 From: Jim Bennett Date: Wed, 25 Aug 2021 10:38:30 -0700 Subject: [PATCH 01/35] Fixing datetime code (#295) * Update README.md * Spelling fixes * Update hardware.md * Adding IoT for beginners episode * Adding intro video * Fixing formatting of read more and self study sections. * Adding instructions for installing the ReSpeaker * Adding auth to language understanding * Adding Wio terminal timer setting * Update config.h * Fixing links and images * Increasing version numbers for SD card fix * Adding SD card requirement * speech and translations * Adding more on translations * All Wio Terminal now working except playing audio * Adding more details on virtual environments. * Fixing tracking links * Update app.py --- .../code-server/temperature-sensor-server/app.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/2-farm/lessons/1-predict-plant-growth/code-server/temperature-sensor-server/app.py b/2-farm/lessons/1-predict-plant-growth/code-server/temperature-sensor-server/app.py index 697984b8..7a4d11ff 100644 --- a/2-farm/lessons/1-predict-plant-growth/code-server/temperature-sensor-server/app.py +++ b/2-farm/lessons/1-predict-plant-growth/code-server/temperature-sensor-server/app.py @@ -5,7 +5,7 @@ import paho.mqtt.client as mqtt from os import path import csv -import datetime +from datetime import datetime id = '' From d36a9f35cd18c2fee719ab88a84253e0ecd79f48 Mon Sep 17 00:00:00 2001 From: Flex Zhong Date: Thu, 26 Aug 2021 23:11:24 +0800 Subject: [PATCH 02/35] improve zh-cn translation (#292) * Update pi-sensor.zh-cn.md * Update pi-actuator.zh-cn.md * Update pi-actuator.zh-cn.md * Update pi-sensor.zh-cn.md * Update pi-actuator.hi.md * Update pi-actuator.md * Update pi-sensor.zh-cn.md Co-authored-by: Jim Bennett --- .../3-sensors-and-actuators/pi-actuator.md | 2 +- .../translations/pi-actuator.hi.md | 2 +- .../translations/pi-actuator.zh-cn.md | 60 +++++++++---------- .../translations/pi-sensor.zh-cn.md | 46 +++++++------- 4 files changed, 55 insertions(+), 55 deletions(-) diff --git a/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md b/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md index 78e78cc6..745ca899 100644 --- a/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md +++ b/1-getting-started/lessons/3-sensors-and-actuators/pi-actuator.md @@ -85,7 +85,7 @@ Program the nightlight. > 💁 This code should be indented to the same level as the `print('Light level:', light)` line to be inside the while loop! - > 💁 When sending digital values to actuators, a 0 value is 0v, and a 1 value is the max voltage for the device. For the Raspberry Pi with Grove sensors and actuators, the 1 voltage is 3.3V. + > 💁 When sending digital values to actuators, a 0 value is 0V, and a 1 value is the max voltage for the device. For the Raspberry Pi with Grove sensors and actuators, the 1 voltage is 3.3V. 1. From the VS Code Terminal, run the following to run your Python app: 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 index 55e747a0..73f52e2c 100644 --- 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 @@ -85,7 +85,7 @@ > 💁 ⤇⤏ ⤕āĨ‹ā¤Ą ⤕āĨ‹ `print('Light level:', light)` ā¤˛ā¤žā¤‡ā¤¨ ⤕āĨ‡ ā¤¸ā¤Žā¤žā¤¨ ⤏āĨā¤¤ā¤° ā¤Ē⤰ ā¤‡ā¤‚ā¤ĄāĨ‡ā¤‚ā¤Ÿ ⤕ā¤ŋā¤¯ā¤ž ā¤œā¤žā¤¨ā¤ž ā¤šā¤žā¤šā¤ŋā¤, while loop ⤕āĨ‡ ⤅⤂ā¤Ļ⤰ ā¤šāĨ‹ā¤¨ā¤ž ā¤šā¤žā¤šā¤ŋā¤! - > 💁 ā¤ā¤•āĨā¤ŸāĨā¤¯āĨ‚ā¤ā¤Ÿā¤°āĨā¤¸ ⤕āĨ‹ ā¤Ąā¤ŋ⤜ā¤ŋ⤟⤞ ā¤Žā¤žā¤¨ ⤭āĨ‡ā¤œā¤¤āĨ‡ ā¤¸ā¤Žā¤¯, 0 ā¤Žā¤žā¤¨ 0v ā¤šāĨ‹ā¤¤ā¤ž ā¤šāĨˆ, ⤔⤰ 1 ā¤Žā¤žā¤¨ ā¤Ąā¤ŋā¤ĩā¤žā¤‡ā¤¸ ⤕āĨ‡ ⤞ā¤ŋā¤ ⤅⤧ā¤ŋā¤•ā¤¤ā¤Ž ā¤ĩāĨ‹ā¤˛āĨā¤ŸāĨ‡ā¤œ ā¤šāĨ‹ā¤¤ā¤ž ā¤šāĨˆāĨ¤ ⤗āĨā¤°āĨ‹ā¤ĩ ⤏āĨ‡ā¤‚⤏⤰ ⤔⤰ ā¤ā¤•āĨā¤šāĨā¤ā¤Ÿā¤°āĨā¤¸ ⤕āĨ‡ ā¤¸ā¤žā¤Ĩ ā¤°ā¤žā¤¸āĨā¤Ēā¤ŦāĨ‡ā¤°āĨ€ ā¤Ēā¤žā¤ˆ ⤕āĨ‡ ⤞ā¤ŋā¤, 1 ā¤ĩāĨ‹ā¤˛āĨā¤ŸāĨ‡ā¤œ 3.3V ā¤šāĨˆāĨ¤ + > 💁 ā¤ā¤•āĨā¤ŸāĨā¤¯āĨ‚ā¤ā¤Ÿā¤°āĨā¤¸ ⤕āĨ‹ ā¤Ąā¤ŋ⤜ā¤ŋ⤟⤞ ā¤Žā¤žā¤¨ ⤭āĨ‡ā¤œā¤¤āĨ‡ ā¤¸ā¤Žā¤¯, 0 ā¤Žā¤žā¤¨ 0V ā¤šāĨ‹ā¤¤ā¤ž ā¤šāĨˆ, ⤔⤰ 1 ā¤Žā¤žā¤¨ ā¤Ąā¤ŋā¤ĩā¤žā¤‡ā¤¸ ⤕āĨ‡ ⤞ā¤ŋā¤ ⤅⤧ā¤ŋā¤•ā¤¤ā¤Ž ā¤ĩāĨ‹ā¤˛āĨā¤ŸāĨ‡ā¤œ ā¤šāĨ‹ā¤¤ā¤ž ā¤šāĨˆāĨ¤ ⤗āĨā¤°āĨ‹ā¤ĩ ⤏āĨ‡ā¤‚⤏⤰ ⤔⤰ ā¤ā¤•āĨā¤šāĨā¤ā¤Ÿā¤°āĨā¤¸ ⤕āĨ‡ ā¤¸ā¤žā¤Ĩ ā¤°ā¤žā¤¸āĨā¤Ēā¤ŦāĨ‡ā¤°āĨ€ ā¤Ēā¤žā¤ˆ ⤕āĨ‡ ⤞ā¤ŋā¤, 1 ā¤ĩāĨ‹ā¤˛āĨā¤ŸāĨ‡ā¤œ 3.3V ā¤šāĨˆāĨ¤ 1. ā¤ĩāĨ€ā¤ā¤¸ ⤕āĨ‹ā¤Ą ⤟⤰āĨā¤Žā¤ŋ⤍⤞ ⤏āĨ‡, ⤅ā¤Ēā¤¨ā¤ž ā¤Ēā¤žā¤¯ā¤Ĩ⤍ ⤐ā¤Ē ā¤šā¤˛ā¤žā¤¨āĨ‡ ⤕āĨ‡ ⤞ā¤ŋā¤ ⤍ā¤ŋā¤ŽāĨā¤¨ā¤˛ā¤ŋ⤖ā¤ŋ⤤ ā¤šā¤˛ā¤žā¤ā¤: diff --git a/1-getting-started/lessons/3-sensors-and-actuators/translations/pi-actuator.zh-cn.md b/1-getting-started/lessons/3-sensors-and-actuators/translations/pi-actuator.zh-cn.md index 24b8541e..98207602 100644 --- a/1-getting-started/lessons/3-sensors-and-actuators/translations/pi-actuator.zh-cn.md +++ b/1-getting-started/lessons/3-sensors-and-actuators/translations/pi-actuator.zh-cn.md @@ -1,50 +1,50 @@ # åŧ€å‘一ä¸Ē夜ၝ - æ ‘čŽ“æ´ž -在čŋ™ä¸Ēéƒ¨åˆ†įš„č¯žį¨‹ä¸­īŧŒäŊ äŧšæŠŠä¸€ä¸ĒLEDåŠ åˆ°æ ‘čŽ“æ´žä¸ŠåšļäŊŋį”¨åŽƒæĨ创åģē一ä¸Ēå¤œį¯ã€‚ +在čŋ™ä¸Ēéƒ¨åˆ†įš„č¯žį¨‹ä¸­īŧŒäŊ äŧšæŠŠä¸€ä¸Ē LED åŠ åˆ°æ ‘čŽ“æ´žä¸ŠåšļäŊŋį”¨åŽƒæĨ创åģē一ä¸Ēå¤œį¯ã€‚ ## įĄŦäģļ įŽ°åœ¨å¤œį¯éœ€čρ䏀ä¸Ēæ‰§čĄŒå™¨ã€‚ -čŋ™ä¸Ēæ‰§čĄŒå™¨æ˜¯**LED**īŧŒä¸€ä¸Ē[发光ä猿žįŽĄ](https://wikipedia.org/wiki/Light-emitting_diode)īŧŒåŊ“į”ĩæĩé€ščŋ‡åރæ—ļäŧšå‘光。čŋ™æ˜¯ä¸€ä¸Ē有两ä¸Ē打åŧ€æˆ–者兺闭įŠļæ€įš„æ•°å­—æ‰§čĄŒå™¨īŧŒå‘送一ä¸Ē1å€ŧæŠŠį¯æ‰“åŧ€īŧŒå‘送0æŠŠį¯å…ŗé—­ã€‚čŋ™ä¸ĒLED是一ä¸Ē外部Groveæ‰§čĄŒå™¨īŧŒč€Œä¸”需čρčĸĢčŋžæŽĨåˆ°æ ‘čŽ“æ´žä¸Šįš„GroveåŸēįĄ€æ‰Šåą•æŋ。 +čŋ™ä¸Ēæ‰§čĄŒå™¨æ˜¯ **LED**īŧŒä¸€ä¸Ē[发光ä猿žįŽĄ](https://wikipedia.org/wiki/Light-emitting_diode)īŧŒåŊ“į”ĩæĩé€ščŋ‡åރæ—ļäŧšå‘光。čŋ™æ˜¯ä¸€ä¸Ē有两ä¸Ē打åŧ€æˆ–者兺闭įŠļæ€įš„æ•°å­—æ‰§čĄŒå™¨īŧŒå‘送一ä¸Ē 1 å€ŧæŠŠį¯æ‰“åŧ€īŧŒå‘送 0 å€ŧæŠŠį¯å…ŗé—­ã€‚čŋ™ä¸Ē LED 是一ä¸Ē外部 Grove æ‰§čĄŒå™¨īŧŒč€Œä¸”需čρčĸĢčŋžæŽĨåˆ°æ ‘čŽ“æ´žä¸Šįš„ Grove åŸēįĄ€æ‰Šåą•æŋ。 čŋ™ä¸Ēå¤œį¯įš„é€ģčž‘į”¨äŧĒäģŖį čĄ¨į¤ē是īŧš ```output æŖ€æŸĨ光ᅧᭉįē§ã€‚ -åĻ‚æžœå…‰į…§å°äēŽ300 - 打åŧ€LED +åĻ‚æžœå…‰į…§å°äēŽ 300 + 打åŧ€ LED åĻ则 - å…ŗé—­LED + å…ŗé—­ LED ``` -### čŋžæŽĨLED +### čŋžæŽĨ LED -Grove LED äŊœä¸ē一ä¸Ēæ¨Ąå—å‡ēįŽ°īŧŒäģĨ及一įŗģ列可䞛äŊ é€‰æ‹Šéĸœč‰˛įš„LED。 +Grove LED äŊœä¸ē一ä¸Ēæ¨Ąå—å‡ēįŽ°īŧŒäģĨ及一įŗģ列可䞛äŊ é€‰æ‹Šéĸœč‰˛įš„ LED。 -#### äģģåŠĄ - čŋžæŽĨLED +#### äģģåŠĄ - čŋžæŽĨ LED -čŋžæŽĨLED。 +čŋžæŽĨ LED。 ![一ä¸Ēgrove LED](../../../../images/grove-led.png) -1. 选拊äŊ æœ€å–œæŦĸįš„LEDį„ļ后把åŧ•č„šæ’åˆ°LEDæ¨Ąå—įš„ä¸¤ä¸Ē洞里éĸ。 +1. 选拊äŊ æœ€å–œæŦĸįš„ LED į„ļ后把åŧ•č„šæ’åˆ° LED æ¨Ąå—įš„ä¸¤ä¸Ē洞里éĸ。 - LED是发光ä猿žįŽĄīŧŒč€Œä¸”ä猿žįŽĄæ˜¯åĒå…čŽ¸į”ĩæĩå•ä¸Ē斚向通čŋ‡įš„į”ĩå­čŽžå¤‡ã€‚čŋ™æ„å‘ŗLED需čρčĸĢčŋžæŽĨåœ¨æ­ŖįĄŽįš„æ–šå‘īŧŒä¸į„ļå°ąä¸äŧšåˇĨäŊœã€‚ + LED 是发光ä猿žįŽĄīŧŒč€Œä¸”ä猿žįŽĄæ˜¯åĒå…čŽ¸į”ĩæĩå•ä¸Ē斚向通čŋ‡įš„į”ĩå­čŽžå¤‡ã€‚čŋ™æ„å‘ŗ LED 需čρčĸĢčŋžæŽĨåœ¨æ­ŖįĄŽįš„æ–šå‘īŧŒä¸į„ļå°ąä¸äŧšåˇĨäŊœã€‚ - LEDåŧ•č„šä¸­įš„ä¸€ä¸Ēæ˜¯æ­Ŗæžåŧ•脚īŧŒåĻ一ä¸Ēæ˜¯č´Ÿæžåŧ•č„šã€‚LEDä¸æ˜¯åŽŒå…¨įš„åœ†åŊĸīŧŒč€Œä¸”åœ¨ä¸€čžšæ˜¯æœ‰äē›åšŗįš„。čŋ™į•Ĩåšŗįš„ä¸€čžšæ˜¯č´Ÿæžåŧ•č„šã€‚åŊ“äŊ čŋžæŽĨLED到čŋ™ä¸Ēæ¨Ąå—įš„æ—ļ候īŧŒéœ€čĻįĄŽäŋåœ†åŊĸčŋ™čžšįš„åŧ•č„šæ˜¯čŋžæŽĨåˆ°æ¨Ąå—ä¸Šå¤–čžšæ ‡į€ **+** įš„æ’å­”īŧŒč€Œæ‰åšŗįš„čŋ™čžšæ˜¯čŋžæŽĨ到靠čŋ‘æ¨Ąå—ä¸­é—´įš„æ’å­”ã€‚ + LED åŧ•č„šä¸­įš„ä¸€ä¸Ēæ˜¯æ­Ŗæžåŧ•脚īŧŒåĻ一ä¸Ēæ˜¯č´Ÿæžåŧ•č„šã€‚LED ä¸æ˜¯åŽŒå…¨įš„åœ†åŊĸīŧŒč€Œä¸”åœ¨ä¸€čžšæ˜¯æœ‰äē›åšŗįš„。čŋ™į•Ĩåšŗįš„ä¸€čžšæ˜¯č´Ÿæžåŧ•č„šã€‚åŊ“äŊ čŋžæŽĨ LED 到čŋ™ä¸Ēæ¨Ąå—įš„æ—ļ候īŧŒéœ€čĻįĄŽäŋåœ†åŊĸčŋ™čžšįš„åŧ•č„šæ˜¯čŋžæŽĨåˆ°æ¨Ąå—ä¸Šå¤–čžšæ ‡į€ **+** įš„æ’å­”īŧŒč€Œæ‰åšŗįš„čŋ™čžšæ˜¯čŋžæŽĨ到靠čŋ‘æ¨Ąå—ä¸­é—´įš„æ’å­”ã€‚ -1. LEDæ¨Ąå—æœ‰ä¸€ä¸Ēå…čŽ¸äŊ æŽ§åˆļäēŽåēĻįš„æ—‹čŊŦ按钎īŧŒį”¨ä¸€ä¸Ē小十字čžē丝čĩˇå­é€†æ—ļ针旋čŊŦ厃拧到头æĨ厌全打åŧ€åŽƒã€‚ +1. LED æ¨Ąå—æœ‰ä¸€ä¸Ēå…čŽ¸äŊ æŽ§åˆļäēŽåēĻįš„æ—‹čŊŦ按钎īŧŒį”¨ä¸€ä¸Ē小十字čžē丝čĩˇå­é€†æ—ļ针旋čŊŦ厃拧到头æĨ厌全打åŧ€åŽƒã€‚ -1. 把Groveįēŋįŧ†įš„一įĢ¯æ’åˆ°LEDæ¨Ąå—įš„æ’å­”ä¸­īŧŒčŋ™ä¸ĒåĒčƒŊäģŽä¸€ä¸Ē斚向插å…Ĩ。 +1. 把 Grove įēŋįŧ†įš„一įĢ¯æ’åˆ° LED æ¨Ąå—įš„æ’å­”ä¸­īŧŒčŋ™ä¸ĒåĒčƒŊäģŽä¸€ä¸Ē斚向插å…Ĩ。 -1. åœ¨æ ‘čŽ“æ´žæ–­į”ĩįš„æƒ…å†ĩ下īŧŒæŠŠGroveįēŋįŧ†įš„åĻ一į̝čŋžæŽĨåˆ°æ ‘čŽ“æ´žä¸Šæ’į€įš„GroveåŸēįĄ€æ‰Šåą•æŋæ ‡į€ **D5** įš„æ•°å­—æ’å­”ã€‚čŋ™ä¸Ē插孔在靠čŋ‘GPIOåŧ•č„šįš„ä¸€æŽ’īŧŒåˇĻ数įŦŦäēŒä¸Ē。 +1. åœ¨æ ‘čŽ“æ´žæ–­į”ĩįš„æƒ…å†ĩ下īŧŒæŠŠ Grove įēŋįŧ†įš„åĻ一į̝čŋžæŽĨåˆ°æ ‘čŽ“æ´žä¸Šæ’į€įš„ Grove åŸēįĄ€æ‰Šåą•æŋæ ‡į€ **D5** įš„æ•°å­—æ’å­”ã€‚čŋ™ä¸Ē插孔在靠čŋ‘ GPIO åŧ•č„šįš„ä¸€æŽ’īŧŒåˇĻ数įŦŦäēŒä¸Ē。 ![čŋžæŽĨ到D5æ’å­”įš„Grove LED](../../../../images/pi-led.png) ## įŧ–å†™å¤œį¯į¨‹åē -įŽ°åœ¨å¤œį¯å¯äģĨᔍGrove光ᅧäŧ æ„Ÿå™¨å’ŒGrove LEDæĨįŧ–᠁äē†ã€‚ +įŽ°åœ¨å¤œį¯å¯äģĨᔍ Grove 光ᅧäŧ æ„Ÿå™¨å’Œ Grove LED æĨįŧ–᠁äē†ã€‚ ### äģģåŠĄ - įŧ–å†™å¤œį¯į¨‹åē @@ -52,26 +52,26 @@ Grove LED äŊœä¸ē一ä¸Ēæ¨Ąå—å‡ēįŽ°īŧŒäģĨ及一įŗģ列可䞛äŊ é€‰æ‹Šéĸœč‰˛įš„LED 1. 打åŧ€æ ‘čŽ“æ´žåšļį­‰åž…å¯åŠ¨åŽŒæˆã€‚ -1. į›´æŽĨåœ¨æ ‘čŽ“æ´žä¸Šæˆ–č€…é€ščŋ‡čŋœį¨‹SSHæ‰Šåą•īŧŒæ‰“åŧ€äŊ åœ¨čŋ™ä¸ĒäŊœä¸šä¸Šä¸€éƒ¨åˆ†åˆ›åģēįš„VS Codeä¸­įš„å¤œį¯éĄšį›Žã€‚ +1. į›´æŽĨåœ¨æ ‘čŽ“æ´žä¸Šæˆ–č€…é€ščŋ‡čŋœį¨‹ SSH æ‰Šåą•īŧŒæ‰“åŧ€äŊ åœ¨čŋ™ä¸ĒäŊœä¸šä¸Šä¸€éƒ¨åˆ†åˆ›åģēįš„ VS Code ä¸­įš„å¤œį¯éĄšį›Žã€‚ -1. 把下éĸįš„äģŖį åŠ åˆ°`app.py`文äģļ中æĨå¯ŧå…Ĩ一ä¸Ē需čĻįš„å‡Ŋ数åē“。čŋ™ä¸€čĄŒéœ€čĻåŠ åœ¨æ–‡äģļéĄļ部īŧŒåœ¨å…ļäģ–`import`äģŖį čĄŒä¸‹éĸ。 +1. 把下éĸįš„äģŖį åŠ åˆ° `app.py` 文äģļ中æĨå¯ŧå…Ĩ一ä¸Ē需čĻįš„å‡Ŋ数åē“。čŋ™ä¸€čĄŒéœ€čĻåŠ åœ¨æ–‡äģļéĄļ部īŧŒåœ¨å…ļäģ– `import` äģŖį čĄŒä¸‹éĸ。 ```python from grove.grove_led import GroveLed ``` - `from grove.grove_led import GroveLed`蝭åĨäģŽGrove Pythonå‡Ŋ数åē“中å¯ŧå…Ĩäē†`GroveLED`。čŋ™ä¸Ēå‡Ŋ数åē“中有和Grove LEDäē¤äē’įš„äģŖį ã€‚ + `from grove.grove_led import GroveLed` 蝭åĨäģŽ Grove Python å‡Ŋ数åē“中å¯ŧå…Ĩäē† `GroveLED`。čŋ™ä¸Ēå‡Ŋ数åē“中有和 Grove LED äē¤äē’įš„äģŖį ã€‚ -1. 把下éĸįš„äģŖį åŠ åˆ°`light_sensor`åŖ°æ˜Žäš‹åŽæĨ创åģē一ä¸ĒįŽĄį†LEDįš„įąģįš„åŽžäž‹īŧš +1. 把下éĸįš„äģŖį åŠ åˆ° `light_sensor` åŖ°æ˜Žäš‹åŽæĨ创åģē一ä¸ĒįŽĄį† LED įš„įąģįš„åŽžäž‹īŧš ```python led = GroveLed(5) ``` - `led = GroveLed(5)`čŋ™ä¸€čĄŒåˆ›åģēäē†ä¸€ä¸ĒčŋžæŽĨ到 **D5** åŧ•č„šįš„`GroveLED`įąģįš„åŽžäž‹īŧŒ**D5** äšŸå°ąæ˜¯LEDčŋžæŽĨįš„é‚Ŗä¸Ē数字Groveåŧ•č„šã€‚ + `led = GroveLed(5)` čŋ™ä¸€čĄŒåˆ›åģēäē†ä¸€ä¸ĒčŋžæŽĨ到 **D5** åŧ•č„šįš„ `GroveLED` įąģįš„åŽžäž‹īŧŒ**D5** äšŸå°ąæ˜¯ LED čŋžæŽĨįš„é‚Ŗä¸Ē数字 Grove åŧ•č„šã€‚ - > 💁 æ‰€æœ‰įš„æ’å­”éƒŊæœ‰å”¯ä¸€įš„åŧ•č„šåˇīŧŒåŧ•脚0、2、4和6æ˜¯æ¨Ąæ‹Ÿåŧ•脚īŧŒåŧ•脚5、16、18、22、24和26是数字åŧ•č„šã€‚ + > 💁 æ‰€æœ‰įš„æ’å­”éƒŊæœ‰å”¯ä¸€įš„åŧ•č„šåˇīŧŒåŧ•脚 0、2、4 和 6 æ˜¯æ¨Ąæ‹Ÿåŧ•脚īŧŒåŧ•脚 5、16、18、22、24 和 26 是数字åŧ•č„šã€‚ -1. 在`while`åžĒįŽ¯ä¸­åĸžåР䏀ä¸Ē判断īŧŒåœ¨`time.sleep`䚋前æĨæŖ€æŸĨ光ᅧᭉįē§åšļ控åˆļLED打åŧ€æˆ–者兺闭īŧš +1. 在 `while` åžĒįŽ¯ä¸­åĸžåР䏀ä¸Ē判断īŧŒåœ¨ `time.sleep` 䚋前æĨæŖ€æŸĨ光ᅧᭉįē§åšļ控åˆļ LED 打åŧ€æˆ–者兺闭īŧš ```python if light < 300: @@ -80,13 +80,13 @@ Grove LED äŊœä¸ē一ä¸Ēæ¨Ąå—å‡ēįŽ°īŧŒäģĨ及一įŗģ列可䞛äŊ é€‰æ‹Šéĸœč‰˛įš„LED led.off() ``` - čŋ™å—äģŖį æŖ€æŸĨäē†`light`įš„å€ŧīŧŒåĻ‚æžœå°äēŽ300å°ąč°ƒį”¨`GroveLED`įąģįš„`on`æ–šæŗ•īŧŒæĨ发送一ä¸Ē数字å€ŧ1到LEDīŧŒæŠŠåŽƒį‚šäēŽã€‚åĻ‚æžœ`light`å€ŧ大äēŽæˆ–į­‰äēŽ300īŧŒå°ąč°ƒį”¨`off`æ–šæŗ•īŧŒå‘送一ä¸Ē数字å€ŧ0įģ™LEDīŧŒæŠŠåŽƒå…ŗé—­ã€‚ + čŋ™å—äģŖį æŖ€æŸĨäē† `light` įš„å€ŧīŧŒåĻ‚æžœå°äēŽ 300 å°ąč°ƒį”¨ `GroveLED` įąģįš„ `on` æ–šæŗ•īŧŒæĨ发送一ä¸Ē数字å€ŧ 1 到 LEDīŧŒæŠŠåŽƒį‚šäēŽã€‚åĻ‚æžœ `light` å€ŧ大äēŽæˆ–į­‰äēŽ 300īŧŒå°ąč°ƒį”¨ `off` æ–šæŗ•īŧŒå‘送一ä¸Ē数字å€ŧ 0 įģ™ LEDīŧŒæŠŠåŽƒå…ŗé—­ã€‚ - > 💁 čŋ™æŽĩäģŖį éœ€čĻæ”žåˆ°whileåžĒįŽ¯é‡ŒéĸīŧŒįŧŠčŋ›åˆ°å’Œ`print('Light level:', light)`行一ä¸Ēæ°´åšŗã€‚ + > 💁 čŋ™æŽĩäģŖį éœ€čĻæ”žåˆ° while åžĒįŽ¯é‡ŒéĸīŧŒįŧŠčŋ›åˆ°å’Œ `print('Light level:', light)` 行一ä¸Ēæ°´åšŗã€‚ - > 💁 åŊ“发送数字å€ŧåˆ°æ‰§čĄŒå™¨įš„æ—ļ候īŧŒ0å€ŧå°ąæ˜¯0vīŧŒ1å€ŧå°ąæ˜¯čŽžå¤‡įš„æœ€å¤§į”ĩ压。寚äēŽæ’į€Groveäŧ æ„Ÿå™¨å’Œæ‰§čĄŒå™¨įš„æ ‘čŽ“æ´žč€Œč¨€īŧŒ1įš„į”ĩåŽ‹å°ąæ˜¯3.3V。 + > 💁 åŊ“发送数字å€ŧåˆ°æ‰§čĄŒå™¨įš„æ—ļ候īŧŒ0 å€ŧå°ąæ˜¯ 0VīŧŒ1 å€ŧå°ąæ˜¯čŽžå¤‡įš„æœ€å¤§į”ĩ压。寚äēŽæ’į€ Grove äŧ æ„Ÿå™¨å’Œæ‰§čĄŒå™¨įš„æ ‘čŽ“æ´žč€Œč¨€īŧŒ1 įš„į”ĩåŽ‹å°ąæ˜¯ 3.3V。 -1. äģŽVS Codeįģˆį̝īŧŒčŋčĄŒä¸‹éĸįš„å‘Ŋä줿ĨčŋčĄŒäŊ įš„Pythonåē”ᔍīŧš +1. äģŽ VS Code įģˆį̝īŧŒčŋčĄŒä¸‹éĸįš„å‘Ŋä줿ĨčŋčĄŒäŊ įš„ Python åē”ᔍīŧš ```sh python3 app.py @@ -104,12 +104,12 @@ Grove LED äŊœä¸ē一ä¸Ēæ¨Ąå—å‡ēįŽ°īŧŒäģĨ及一įŗģ列可䞛äŊ é€‰æ‹Šéĸœč‰˛įš„LED Light level: 290 ``` -1. éŽæŒĄå’Œæ­åŧ€å…‰į…§äŧ æ„Ÿå™¨īŧŒäŧšč§‚å¯Ÿåˆ°å…‰į…§į­‰įē§į­‰äēŽ300或更小æ—ļLEDäŧšį‚šäēŽīŧŒåĻ‚æžœå…‰į…§į­‰įē§æ¯”300大LEDå°ąäŧšå…ŗé—­ã€‚ +1. éŽæŒĄå’Œæ­åŧ€å…‰į…§äŧ æ„Ÿå™¨īŧŒäŧšč§‚å¯Ÿåˆ°å…‰į…§į­‰įē§į­‰äēŽ 300 或更小æ—ļ LED äŧšį‚šäēŽīŧŒåĻ‚æžœå…‰į…§į­‰įē§æ¯” 300 大 LED å°ąäŧšå…ŗé—­ã€‚ - > 💁 åĻ‚æžœLEDæ˛Ąæœ‰į‚šäēŽīŧŒįĄŽäŋåŽƒæ˜¯æ­ŖįĄŽæ–šå‘čŋžæŽĨįš„īŧŒč€Œä¸”æ—‹čŊŦæŒ‰é’Žæ˜¯čŽžįŊŽæˆå…¨åŧ€įš„。 + > 💁 åĻ‚æžœ LED æ˛Ąæœ‰į‚šäēŽīŧŒįĄŽäŋåŽƒæ˜¯æ­ŖįĄŽæ–šå‘čŋžæŽĨįš„īŧŒč€Œä¸”æ—‹čŊŦæŒ‰é’Žæ˜¯čŽžįŊŽæˆå…¨åŧ€įš„。 ![čŋžæŽĨåˆ°æ ‘čŽ“æ´žįš„LEDéšį€å…‰į…§į­‰įē§æ”šå˜į‚šäēŽå’Œå…ŗé—­](../../../../images/pi-running-assignment-1-1.gif) -> 💁 äŊ å¯äģĨ在[code-actuator/pi](../code-actuator/pi)文äģļ多里扞到čŋ™äģŊäģŖį ã€‚ +> 💁 äŊ å¯äģĨ在 [code-actuator/pi](../code-actuator/pi) 文äģļ多里扞到čŋ™äģŊäģŖį ã€‚ 😀 äŊ įš„å¤œį¯į¨‹åēå°ąæˆåŠŸäē†īŧ diff --git a/1-getting-started/lessons/3-sensors-and-actuators/translations/pi-sensor.zh-cn.md b/1-getting-started/lessons/3-sensors-and-actuators/translations/pi-sensor.zh-cn.md index 12d85e52..4c808af2 100644 --- a/1-getting-started/lessons/3-sensors-and-actuators/translations/pi-sensor.zh-cn.md +++ b/1-getting-started/lessons/3-sensors-and-actuators/translations/pi-sensor.zh-cn.md @@ -4,13 +4,13 @@ ## įĄŦäģļ -čŋ™čŠ‚č¯žį¨‹įš„äŧ æ„Ÿå™¨æ˜¯äŊŋᔍ[光į”ĩä猿žįŽĄ](https://wikipedia.org/wiki/Photodiode)æĨæŠŠå…‰į…§čŊŦ化ä¸ēį”ĩ子äŋĄåˇįš„光ᅧäŧ æ„Ÿå™¨ã€‚čŋ™æ˜¯ä¸€ä¸Ē发送äģŽ0到1,000整数å€ŧįš„æ¨Ąæ‹Ÿäŧ æ„Ÿå™¨īŧŒčĄ¨į¤ē光ᅧå€ŧįš„į›¸å¯šé‡č€Œä¸å¯šåē”äģģäŊ•比åĻ‚[勒克斯īŧˆluxīŧ‰](https://wikipedia.org/wiki/Lux)įš„æ ‡å‡†čŽĄé‡å•äŊã€‚ +čŋ™čŠ‚č¯žį¨‹įš„äŧ æ„Ÿå™¨æ˜¯äŊŋᔍ[光į”ĩä猿žįŽĄ](https://wikipedia.org/wiki/Photodiode)æĨæŠŠå…‰į…§čŊŦ化ä¸ēį”ĩ子äŋĄåˇįš„光ᅧäŧ æ„Ÿå™¨ã€‚čŋ™æ˜¯ä¸€ä¸Ē发送äģŽ 0 到 1,000 整数å€ŧįš„æ¨Ąæ‹Ÿäŧ æ„Ÿå™¨īŧŒčĄ¨į¤ē光ᅧå€ŧįš„į›¸å¯šé‡č€Œä¸å¯šåē”äģģäŊ•比åĻ‚[勒克斯īŧˆluxīŧ‰](https://wikipedia.org/wiki/Lux)įš„æ ‡å‡†čŽĄé‡å•äŊã€‚ -čŋ™ä¸Ē光ᅧäŧ æ„Ÿå™¨æ˜¯ä¸€ä¸Ē外部Groveäŧ æ„Ÿå™¨īŧŒéœ€čρčĸĢčŋžæŽĨåˆ°æ ‘čŽ“æ´žä¸Šįš„GroveåŸēįĄ€æ‰Šåą•æŋ。 +čŋ™ä¸Ē光ᅧäŧ æ„Ÿå™¨æ˜¯ä¸€ä¸Ē外部 Grove äŧ æ„Ÿå™¨īŧŒéœ€čρčĸĢčŋžæŽĨåˆ°æ ‘čŽ“æ´žä¸Šįš„ Grove åŸēįĄ€æ‰Šåą•æŋ。 ### čŋžæŽĨ光ᅧäŧ æ„Ÿå™¨ -ᔍæĨæŖ€æĩ‹å…‰į…§į­‰įē§įš„Grove光ᅧäŧ æ„Ÿå™¨éœ€čρčĸĢčŋžæŽĨåˆ°æ ‘čŽ“æ´žä¸Šã€‚ +ᔍæĨæŖ€æĩ‹å…‰į…§į­‰įē§įš„ Grove 光ᅧäŧ æ„Ÿå™¨éœ€čρčĸĢčŋžæŽĨåˆ°æ ‘čŽ“æ´žä¸Šã€‚ #### äģģåŠĄ - čŋžæŽĨ光ᅧäŧ æ„Ÿå™¨ @@ -18,15 +18,15 @@ ![一ä¸Ē grove 光ᅧäŧ æ„Ÿå™¨](../../../../images/grove-light-sensor.png) -1. 把Groveįēŋįŧ†įš„一įĢ¯æ’åˆ°å…‰į…§äŧ æ„Ÿå™¨æ¨Ąå—įš„æ’å­”ä¸­īŧŒčŋ™ä¸ĒåĒčƒŊäģŽä¸€ä¸Ē斚向插å…Ĩ。 +1. 把 Grove įēŋįŧ†įš„一įĢ¯æ’åˆ°å…‰į…§äŧ æ„Ÿå™¨æ¨Ąå—įš„æ’å­”ä¸­īŧŒčŋ™ä¸ĒåĒčƒŊäģŽä¸€ä¸Ē斚向插å…Ĩ。 -1. åœ¨æ ‘čŽ“æ´žæ–­į”ĩįš„æƒ…å†ĩ下īŧŒæŠŠGroveįēŋįŧ†įš„åĻ一į̝čŋžæŽĨåˆ°æ ‘čŽ“æ´žä¸Šæ’į€įš„GroveåŸēįĄ€æ‰Šåą•æŋæ ‡į€ **A0** įš„æ¨Ąæ‹Ÿæ’å­”ã€‚čŋ™ä¸Ē插孔在靠čŋ‘GPIOåŧ•č„šįš„ä¸€æŽ’īŧŒåŗæ•°įŦŦäēŒä¸Ē。 +1. åœ¨æ ‘čŽ“æ´žæ–­į”ĩįš„æƒ…å†ĩ下īŧŒæŠŠ Grove įēŋįŧ†įš„åĻ一į̝čŋžæŽĨåˆ°æ ‘čŽ“æ´žä¸Šæ’į€įš„ Grove åŸēįĄ€æ‰Šåą•æŋæ ‡į€ **A0** įš„æ¨Ąæ‹Ÿæ’å­”ã€‚čŋ™ä¸Ē插孔在靠čŋ‘ GPIO åŧ•č„šįš„ä¸€æŽ’īŧŒåŗæ•°įŦŦäēŒä¸Ē。 -![插在A0æ’å­”įš„grove光ᅧäŧ æ„Ÿå™¨](../../../../images/pi-light-sensor.png) +![插在 A0 æ’å­”įš„ grove 光ᅧäŧ æ„Ÿå™¨](../../../../images/pi-light-sensor.png) ## įŧ–写光ᅧäŧ æ„Ÿå™¨į¨‹åē -įŽ°åœ¨čŽžå¤‡å¯äģĨᔍGrove光ᅧäŧ æ„Ÿå™¨æĨįŧ–᠁äē†ã€‚ +įŽ°åœ¨čŽžå¤‡å¯äģĨᔍ Grove 光ᅧäŧ æ„Ÿå™¨æĨįŧ–᠁äē†ã€‚ ### äģģåŠĄ - įŧ–写光ᅧäŧ æ„Ÿå™¨į¨‹åē @@ -34,30 +34,30 @@ 1. 打åŧ€æ ‘čŽ“æ´žåšļį­‰åž…å¯åŠ¨åŽŒæˆã€‚ -1. į›´æŽĨåœ¨æ ‘čŽ“æ´žä¸Šæˆ–č€…é€ščŋ‡čŋœį¨‹SSHæ‰Šåą•īŧŒæ‰“åŧ€äŊ åœ¨čŋ™ä¸ĒäŊœä¸šä¸Šä¸€éƒ¨åˆ†åˆ›åģēįš„VS Codeä¸­įš„å¤œį¯éĄšį›Žã€‚ +1. į›´æŽĨåœ¨æ ‘čŽ“æ´žä¸Šæˆ–č€…é€ščŋ‡čŋœį¨‹SSHæ‰Šåą•īŧŒæ‰“åŧ€äŊ åœ¨čŋ™ä¸ĒäŊœä¸šä¸Šä¸€éƒ¨åˆ†åˆ›åģēįš„ VS Code ä¸­įš„å¤œį¯éĄšį›Žã€‚ -1. 打åŧ€`app.py`文äģļåšļ删除里éĸįš„æ‰€æœ‰äģŖį ã€‚ +1. 打åŧ€ `app.py` 文äģļåšļ删除里éĸįš„æ‰€æœ‰äģŖį ã€‚ -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`。čŋ™ä¸Ēå‡Ŋ数åē“里有和Grove光ᅧäŧ æ„Ÿå™¨äē¤äē’įš„äģŖį īŧŒåœ¨čŽžįŊŽæ ‘čŽ“æ´žįš„æ—ļå€™å°ąåˇ˛įģå…¨åą€åމ誅äē†ã€‚ + `import time` 蝭åĨå¯ŧå…Ĩäē† `time` æ¨Ąå—īŧŒåœ¨čŋ™ä¸ĒäŊœä¸šįš„后éĸäŧšį”¨åˆ°čŋ™ä¸Ēæ¨Ąå—ã€‚ + `from grove.grove_light_sensor_v1_2 import GroveLightSensor` 蝭åĨäģŽ Grove Python å‡Ŋ数åē“å¯ŧå…Ĩäē† `GroveLightSensor`。čŋ™ä¸Ēå‡Ŋ数åē“里有和 Grove 光ᅧäŧ æ„Ÿå™¨äē¤äē’įš„äģŖį īŧŒåœ¨čŽžįŊŽæ ‘čŽ“æ´žįš„æ—ļå€™å°ąåˇ˛įģå…¨åą€åމ誅äē†ã€‚ + 1. 在上éĸäģŖį įš„后éĸåĸžåР䏋éĸįš„äģŖį æĨ创åģē一ä¸ĒįŽĄį†å…‰į…§äŧ æ„Ÿå™¨įš„įąģįš„åŽžäž‹īŧš ```python light_sensor = GroveLightSensor(0) ``` - `light_sensor = GroveLightSensor(0)`čŋ™ä¸€čĄŒåˆ›åģēäē†ä¸€ä¸ĒčŋžæŽĨ到 **A0** åŧ•č„šįš„`GroveLightSensor`įąģįš„åŽžäž‹īŧŒ**A0** äšŸå°ąæ˜¯å…‰į…§äŧ æ„Ÿå™¨čŋžæŽĨįš„é‚Ŗä¸Ēåŧ•č„šã€‚ - -1. 在上éĸįš„äģŖį åŽéĸåĸžåР䏀ä¸Ē无限åžĒįŽ¯äģŖį æĨčŽˇå–å…‰į…§äŧ æ„Ÿå™¨æ•°å€ŧåšļ打印到įģˆį̝īŧš + `light_sensor = GroveLightSensor(0)` čŋ™ä¸€čĄŒåˆ›åģēäē†ä¸€ä¸ĒčŋžæŽĨ到 **A0** åŧ•č„šįš„ `GroveLightSensor` įąģįš„åŽžäž‹īŧŒ**A0** äšŸå°ąæ˜¯å…‰į…§äŧ æ„Ÿå™¨čŋžæŽĨįš„é‚Ŗä¸Ēåŧ•č„šã€‚ + +1. 在上éĸįš„äģŖį åŽéĸåĸžåР䏀æŽĩ无限åžĒįŽ¯äģŖį īŧŒæĨčŽˇå–å…‰į…§äŧ æ„Ÿå™¨æ•°å€ŧåšļ打印到įģˆį̝īŧš ```python while True: @@ -65,15 +65,15 @@ print('Light level:', light) ``` - äŊŋᔍ`GroveLightSensor`įąģįš„`light`åąžæ€§å¯äģĨæĨčŽˇå– 0-1023 įš„åŊ“å‰å…‰į…§į­‰įē§å€ŧīŧŒčŋ™ä¸Ēåąžæ€§äģŽåŧ•脚č¯ģå–æ¨Ąæ‹Ÿé‡īŧŒį„ļ后čŋ™ä¸Ēå€ŧäŧščĸĢæ‰“印到įģˆįĢ¯ã€‚ - -1. 在`loop`įš„įģ“å°žåĸžåР䏀ä¸Ē1į§’įš„įŸ­æš‚äŧ‘įœ īŧŒå› ä¸ē光ᅧᭉįē§ä¸éœ€čĻä¸€į›´ä¸æ–­åœ°č¯ģ取。一ä¸Ēäŧ‘įœ å¯äģĨå‡å°‘čŽžå¤‡įš„čƒŊæēæļˆč€—。 + äŊŋᔍ `GroveLightSensor` įąģįš„ `light` åąžæ€§å¯äģĨæĨčŽˇå– 0-1023 įš„åŊ“å‰å…‰į…§į­‰įē§å€ŧīŧŒčŋ™ä¸Ēåąžæ€§äģŽåŧ•脚č¯ģå–æ¨Ąæ‹Ÿé‡īŧŒį„ļ后čŋ™ä¸Ēå€ŧäŧščĸĢæ‰“印到įģˆįĢ¯ã€‚ + +1. 在 `loop` įš„įģ“å°žåĸžåР䏀ä¸Ē 1 į§’įš„įŸ­æš‚äŧ‘įœ īŧŒå› ä¸ē光ᅧᭉįē§ä¸éœ€čĻä¸€į›´ä¸æ–­åœ°č¯ģ取。一ä¸Ēäŧ‘įœ å¯äģĨå‡å°‘čŽžå¤‡įš„čƒŊæēæļˆč€—。 ```python time.sleep(1) ``` - -1. äģŽVS Codeįģˆį̝īŧŒčŋčĄŒä¸‹éĸįš„å‘Ŋä줿ĨčŋčĄŒäŊ įš„Pythonåē”ᔍīŧš + +1. äģŽ VS Code įģˆį̝īŧŒčŋčĄŒä¸‹éĸįš„å‘Ŋä줿ĨčŋčĄŒäŊ įš„ Python åē”ᔍīŧš ```sh python3 app.py @@ -91,6 +91,6 @@ Light level: 290 ``` -> 💁 äŊ å¯äģĨ在[code-sensor/pi](../code-sensor/pi)文äģļ多扞到čŋ™äģŊäģŖį ã€‚ +> 💁 äŊ å¯äģĨ在 [code-sensor/pi](../code-sensor/pi) 文äģļ多扞到čŋ™äģŊäģŖį ã€‚ -😀 įģ™äŊ įš„å¤œį¯åĸžåР䏀ä¸Ēäŧ æ„Ÿå™¨į¨‹åēå°ąæˆåŠŸäē†īŧ \ No newline at end of file +😀 įģ™äŊ įš„å¤œį¯åĸžåР䏀ä¸Ēäŧ æ„Ÿå™¨į¨‹åēå°ąæˆåŠŸäē†īŧ From 7e8108391c20f78b6fe4fd1576274e00720ba16d Mon Sep 17 00:00:00 2001 From: "Mohammad Iftekher (Iftu) Ebne Jalal" Date: Wed, 8 Sep 2021 05:30:04 +0600 Subject: [PATCH 03/35] [Bn Translation] Visualize location data (#302) * Create README.bn.md * Update README.bn.md * Create assignment.bn.md * Delete .dummy.md * Fixed Title * Updated with recent translations --- .../translations/.dummy.md | 9 - .../translations/README.bn.md | 340 ++++++++++++++++++ .../translations/assignment.bn.md | 13 + translations/README.bn.md | 2 +- 4 files changed, 354 insertions(+), 10 deletions(-) delete mode 100644 3-transport/lessons/3-visualize-location-data/translations/.dummy.md create mode 100644 3-transport/lessons/3-visualize-location-data/translations/README.bn.md create mode 100644 3-transport/lessons/3-visualize-location-data/translations/assignment.bn.md diff --git a/3-transport/lessons/3-visualize-location-data/translations/.dummy.md b/3-transport/lessons/3-visualize-location-data/translations/.dummy.md deleted file mode 100644 index 6e7db247..00000000 --- a/3-transport/lessons/3-visualize-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/3-visualize-location-data/translations/README.bn.md b/3-transport/lessons/3-visualize-location-data/translations/README.bn.md new file mode 100644 index 00000000..bc90168c --- /dev/null +++ b/3-transport/lessons/3-visualize-location-data/translations/README.bn.md @@ -0,0 +1,340 @@ +# āϞ⧋āϕ⧇āĻļāύ āĻĄā§‡āϟāĻž āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ + +![A sketchnote overview of this lesson](../../../../sketchnotes/lesson-13.jpg) + +> āĻ¸ā§āϕ⧇āϚāύ⧋āϟāϟāĻŋ āϤ⧈āϰ⧀ āĻ•āϰ⧇āϛ⧇āύ [Nitya Narasimhan](https://github.com/nitya)āĨ¤ āĻŦ⧜ āϏāĻ‚āĻ¸ā§āĻ•āϰāϪ⧇ āĻĻ⧇āĻ–āĻžāϰ āϜāĻ¨ā§āϝ āĻ›āĻŦāĻŋāϟāĻŋāϤ⧇ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ + +## āϞ⧇āĻ•āϚāĻžāϰ-āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āϕ⧁āχāϜ + +[āϞ⧇āĻ•āϚāĻžāϰ-āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āϕ⧁āχāϜ](https://brave-island-0b7c7f50f.azurestaticapps.net/quiz/25) + +## āϏ⧂āϚāύāĻž + +āĻ—āϤ āĻĒāĻžāϠ⧇ āφāĻŽāϰāĻž āĻļāĻŋāϖ⧇āĻ›āĻŋ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰāĻŦāĻŋāĻšā§€āύ āϕ⧋āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ¸ā§āĻŸā§‹āϰ⧇āϜ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ⧇ āĻ•ā§āϞāĻžāωāĻĄā§‡ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāϤ⧇ āφāĻŽāĻžāĻĻ⧇āϰāϕ⧇ āϏ⧇āĻ¨ā§āϏāϰ āĻĨ⧇āϕ⧇ āϜāĻŋāĻĒāĻŋāĻāϏ āĻĄā§‡āϟāĻž āĻĒ⧇āϤ⧇ āĻšāϝāĻŧāĨ¤ āĻāĻ–āύ āφāĻŽāϰāĻž āĻĻ⧇āĻ–āĻŦā§‹ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻāĻ•āϟāĻŋ Azure āĻŽā§āϝāĻžāĻĒ⧇ āϏ⧇āχ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāϗ⧁āϞāĻŋ āĻĻ⧇āĻ–āĻžāύ⧋ āϝāĻžāϝāĻŧāĨ¤ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āĻ“āϝāĻŧ⧇āĻŦ āĻĒ⧇āĻœā§‡ āĻāĻ•āϟāĻŋ āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻļāĻŋāĻ–āĻŦ, GeoJSON āĻĄā§‡āϟāĻž āĻĢāϰāĻŽā§āϝāĻžāϟ āĻāĻŦāĻ‚ āφāĻŽāĻžāĻĻ⧇āϰāϕ⧇ āĻŽā§āϝāĻžāĻĒ⧇ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰāĻž āϏāĻŽāĻ¸ā§āϤ āϜāĻŋāĻĒāĻŋāĻāϏ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟ āĻĒā§āϞāϟ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāϟāĻŋ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϤāĻž āĻļāĻŋāĻ–āĻŦāĨ¤ + +āĻāχ āϞ⧇āϏāύ⧇ āφāĻŽāϰāĻž āĻĻ⧇āĻ–āĻŦā§‹āσ + +* [āĻĄā§‡āϟāĻž āĻ­āĻŋāĻ¸ā§āϝ⧁⧟āĻžāϞāĻžāχāĻœā§‡āĻļāύ āϕ⧀ ?](#āĻĄā§‡āϟāĻž-āĻ­āĻŋāĻ¸ā§āϝ⧁⧟āĻžāϞāĻžāχāĻœā§‡āĻļāύ-āϕ⧀) +* [āĻŽā§āϝāĻžāĻĒ āϏāĻžāĻ°ā§āĻ­āĻŋāϏ](#āĻŽā§āϝāĻžāĻĒ-āϏāĻžāĻ°ā§āĻ­āĻŋāϏ) +* [Azure Maps āϰāĻŋāϏ⧋āĻ°ā§āϏ āϤ⧈āϰ⧀ āĻ•āϰāĻž](#Azure-Maps-āϰāĻŋāϏ⧋āĻ°ā§āϏ-āϤ⧈āϰ⧀-āĻ•āϰāĻž) +* [āĻ“ā§Ÿā§‡āĻŦ āĻĒ⧇āχāĻœā§‡ āĻŽā§āϝāĻžāĻĒ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ](#āĻ“ā§Ÿā§‡āĻŦ-āĻĒ⧇āχāĻœā§‡-āĻŽā§āϝāĻžāĻĒ-āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ) +* [GeoJSON āĻĢāϰāĻŽā§āϝāĻžāϟ](#geojson-āĻĢāϰāĻŽā§āϝāĻžāϟ) +* [GeoJSON āĻĻā§āĻŦāĻžāϰāĻž āĻŽā§āϝāĻžāĻĒ⧇ āϜāĻŋāĻĒāĻŋāĻāϏ āĻĄā§‡āϟāĻž āĻĒā§āϞāϟ āĻ•āϰāĻž](#GeoJSON-āĻĻā§āĻŦāĻžāϰāĻž-āĻŽā§āϝāĻžāĻĒ⧇-āϜāĻŋāĻĒāĻŋāĻāϏ-āĻĄā§‡āϟāĻž-āĻĒā§āϞāϟ-āĻ•āϰāĻž) + +> 💁 āĻāχ āϞ⧇āϏāύ⧇ HTML āĻāĻŦāĻ‚ JavaScript āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻĨāĻžāĻ•āĻŦ⧇āĨ¤ āĻāχ āĻ˛ā§āϝāĻžāĻ‚āĻ—ā§ā§Ÿā§‡āϜāϗ⧁āϞ⧋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ“ā§Ÿā§‡āĻŦ āĻĄā§‡āĻ­āϞāĻžāĻĒāĻŽā§‡āĻ¨ā§āϟ āĻŦāĻŋāĻˇā§Ÿā§‡ āφāϰ⧋ āϜāĻžāύāϤ⧇ āϚāĻžāχāϞ⧇ [Web development for beginners](https://github.com/microsoft/Web-Dev-For-Beginners) āĻ•āĻžāϰāĻŋāĻ•ā§āϝ⧁āϞāĻžāĻŽ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ + +## āĻĄā§‡āϟāĻž āĻ­āĻŋāĻ¸ā§āϝ⧁⧟āĻžāϞāĻžāχāĻœā§‡āĻļāύ āϕ⧀ + +āĻĄā§‡āϟāĻž āĻĻ⧃āĻļā§āϝāĻžā§Ÿāύ āĻŦāĻž āĻ­āĻŋāĻ¸ā§āϝ⧁⧟āĻžāϞāĻžāχāĻœā§‡āĻļāύ, āύāĻžāĻŽ āĻĨ⧇āϕ⧇āχ āĻŦā§‹āĻāĻž āϝāĻžā§Ÿ, āĻĄā§‡āϟāĻž āĻ­āĻŋāϜ⧁āϝāĻŧāĻžāϞāĻžāχāϜ āĻŦāĻž āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰāĻž āĻšāϝāĻŧ āĻāĻŽāύ āωāĻĒāĻžāϝāĻŧ⧇ āϝāĻž āĻŽāĻžāύ⧁āώ⧇āϰ āĻĒāĻ•ā§āώ⧇ āĻŦā§‹āĻāĻž āϏāĻšāϜ āĻšā§ŸāĨ¤ āĻāϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖāϤ āϚāĻžāĻ°ā§āϟ āĻāĻŦāĻ‚ āĻ—ā§āϰāĻžāĻĢ⧇āϰ āϏāĻžāĻĨ⧇ āϝ⧁āĻ•ā§āϤ āĻĨāĻžāϕ⧇, āĻŽāĻžāύ⧁āώāϕ⧇ āϕ⧇āĻŦāϞ āϤāĻĨā§āϝ āωāĻĒāĻžāĻ¤ā§āϤāϕ⧇ āφāϰāĻ“ āĻ­āĻžāϞāĻ­āĻžāĻŦ⧇ āĻŦ⧁āĻāϤ⧇ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰāĻžāϰ āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ, āϤāĻžāĻĻ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāĻ¨ā§€ā§Ÿ āϏāĻŋāĻĻā§āϧāĻžāĻ¨ā§āϤ āύāĻŋāϤ⧇āĻ“ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰ⧇āĨ¤ + +āĻāĻ•āϟāĻŋ āϏāĻšāϜ āωāĻĻāĻžāĻšāϰāĻŖ āύāĻŋāχ- āĻļ⧁āϰ⧁āϰ āĻĻāĻŋāϕ⧇āϰ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻœā§‡āĻ•ā§āĻŸā§‡ āφāĻŽāϰāĻž āĻŽāĻžāϟāĻŋāϰ āφāĻ°ā§āĻĻā§āϰāϤāĻž āϏāĻ‚āĻ—ā§āϰāĻš āĻ•āϰ⧇āĻ›āĻŋ āĨ¤ ā§§āϞāĻž āϜ⧁āύ ⧍ā§Ļ⧍⧧ -āĻāϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāϤāĻŋ āϘāĻŖā§āϟāĻžāϝāĻŧ āĻŽāĻžāϟāĻŋāϰ āφāĻ°ā§āĻĻā§āϰāϤāĻžāϰ āϤāĻĨā§āϝ⧇āϰ āĻāĻ•āϟāĻŋ āĻŸā§‡āĻŦāĻŋāϞ āύāĻŋāĻŽā§āύāϰ⧂āĻĒ : + +| āϏāĻŽā§Ÿ | āĻŽāĻžāύ | +| ---------------- | ------: | +| 01/06/2021 00:00 | 257 | +| 01/06/2021 01:00 | 268 | +| 01/06/2021 02:00 | 295 | +| 01/06/2021 03:00 | 305 | +| 01/06/2021 04:00 | 325 | +| 01/06/2021 05:00 | 359 | +| 01/06/2021 06:00 | 398 | +| 01/06/2021 07:00 | 410 | +| 01/06/2021 08:00 | 429 | +| 01/06/2021 09:00 | 451 | +| 01/06/2021 10:00 | 460 | +| 01/06/2021 11:00 | 452 | +| 01/06/2021 12:00 | 420 | +| 01/06/2021 13:00 | 408 | +| 01/06/2021 14:00 | 431 | +| 01/06/2021 15:00 | 462 | +| 01/06/2021 16:00 | 432 | +| 01/06/2021 17:00 | 402 | +| 01/06/2021 18:00 | 387 | +| 01/06/2021 19:00 | 360 | +| 01/06/2021 20:00 | 358 | +| 01/06/2021 21:00 | 354 | +| 01/06/2021 22:00 | 356 | +| 01/06/2021 23:00 | 362 | + +āĻāĻ•āϜāύ āϏāĻžāϧāĻžāϰāĻŖ āĻŽāĻžāύ⧁āώ āĻšāĻŋāϏāĻžāĻŦ⧇, āĻāχ āĻĄā§‡āϟāĻž āĻŦā§‹āĻāĻž āĻ•āĻ āĻŋāύ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻāϟāĻŋ āϕ⧋āύ āĻ…āĻ°ā§āĻĨ āĻ›āĻžāĻĄāĻŧāĻž āϏāĻ‚āĻ–ā§āϝāĻžāϰ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻžāĻšā§€āϰ āĻŽāĻžāĻ¤ā§āϰāĨ¤ āĻāχ āĻĄā§‡āϟāĻž āĻ­āĻŋāĻœā§āϝ⧁āϝāĻŧāĻžāϞāĻžāχāϜ āĻ•āϰāĻžāϰ āĻĒā§āϰāĻĨāĻŽ āĻĒāĻĻāĻ•ā§āώ⧇āĻĒ āĻšāĻŋāϏāĻžāĻŦ⧇, āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āϞāĻžāχāύ āϚāĻžāĻ°ā§āĻŸā§‡ āĻĒā§āϞāϟ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇: + +![A line chart of the above data](../../../../images/chart-soil-moisture.png) + +āĻāχ āϞāĻžāχāύ āϚāĻžāĻ°ā§āϟāϟāĻŋ āφāϰ⧋ āωāĻ¨ā§āύāϤ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇ āϝāĻĻāĻŋ āφāĻŽāϰāĻž āĻŽāĻžāϟāĻŋāϰ āφāĻ°ā§āĻĻā§āϰāϤāĻžāϰ āĻŽāĻžāύ 450 āĻšāϞ⧇, āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āϜāϞ āĻŦā§āϝāĻŦāĻ¸ā§āĻĨāĻž āϚāĻžāϞ⧁ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ āĻāϟāĻŋ āĻŦā§‹āĻāĻžāϤ⧇ āĻāĻ•āϟāĻŋ āϞāĻžāχāύ āĻŸā§‡āύ⧇ āĻĻāĻŋāχāĨ¤ + +![A line chart of soil moisture with a line at 450](../../../../images/chart-soil-moisture-relay.png) + +āĻāχ āϚāĻžāĻ°ā§āϟāϟāĻŋ āϖ⧁āĻŦ āϤāĻžāĻĄāĻŧāĻžāϤāĻžāĻĄāĻŧāĻŋ āĻĻ⧇āĻ–āĻžāϝāĻŧ āϝ⧇ āĻŽāĻžāϟāĻŋāϰ āφāĻ°ā§āĻĻā§āϰāϤāĻžāϰ āĻŽāĻžāĻ¤ā§āϰāĻž āĻ•āϤ āĻ›āĻŋāϞ āĻāĻŦāĻ‚ āĻ āĻŋāĻ• āϕ⧋āύ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟ āĻĨ⧇āϕ⧇ āϏ⧇āϚ āĻŦā§āϝāĻŦāĻ¸ā§āĻĨāĻž āϚāĻžāϞ⧁ āĻšā§Ÿā§‡āĻ›āĻŋāϞāĨ¤ + +āĻĄā§‡āϟāĻž āĻ­āĻŋāĻœā§āϝ⧁āϝāĻŧāĻžāϞāĻžāχāϜ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āϚāĻžāĻ°ā§āϟāχ āĻāĻ•āĻŽāĻžāĻ¤ā§āϰ āĻšāĻžāϤāĻŋāϝāĻŧāĻžāϰ āύāϝāĻŧāĨ¤ āφāχāĻ“āϟāĻŋ āĻĄāĻŋāĻ­āĻžāχāϏāϗ⧁āϞāĻŋ āϝ⧇āϗ⧁āϞāĻŋ āφāĻŦāĻšāĻžāĻ“āϝāĻŧāĻž āĻŸā§āĻ°ā§āϝāĻžāĻ• āĻ•āϰ⧇ āϏ⧇āϗ⧁āϞāĻŋāϤ⧇ āĻ“āϝāĻŧ⧇āĻŦ āĻ…ā§āϝāĻžāĻĒāϏ āĻŦāĻž āĻŽā§‹āĻŦāĻžāχāϞ āĻ…ā§āϝāĻžāĻĒ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇ āϝāĻž āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻĒā§āϰāϤ⧀āĻ• āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāĻŦāĻšāĻžāĻ“āϝāĻŧāĻžāϰ āĻ…āĻŦāĻ¸ā§āĻĨāĻž āϝ⧇āĻŽāύ āĻŽā§‡āϘāϞāĻž āĻĻāĻŋāύ⧇āϰ āϜāĻ¨ā§āϝ āĻŽā§‡āĻ˜ā§‡āϰ āĻĒā§āϰāϤ⧀āĻ•, āĻŦ⧃āĻˇā§āϟāĻŋāϰ āĻĻāĻŋāύ⧇āϰ āϜāĻ¨ā§āϝ āĻŦ⧃āĻˇā§āϟāĻŋāϰ āϚāĻŋāĻšā§āύ āχāĻ¤ā§āϝāĻžāĻĻāĻŋāĨ¤ āĻĄā§‡āϟāĻž āĻ­āĻŋāĻœā§āϝ⧁āϝāĻŧāĻžāϞāĻžāχāϜ āĻ•āϰāĻžāϰ āĻ…āύ⧇āĻ• āωāĻĒāĻžāϝāĻŧ āφāϛ⧇, āĻ•āĻŋāϛ⧁ āĻŦ⧇āĻļ āϏāĻŋāϰāĻŋ⧟āĻžāϏ, āφāĻŦāĻžāϰ āĻ•āĻŋāϛ⧁ āĻ…āύ⧇āĻ• āĻŽāϜāĻžāϰāĨ¤ + +✅ āφāĻŽāϰāĻž āĻĄā§‡āϟāĻž āĻ­āĻŋāĻœā§āϝ⧁āϝāĻŧāĻžāϞāĻžāχāĻœā§‡āĻļāύ⧇āϰ āϝ⧇āϏāĻŦ āωāĻĒāĻžāϝāĻŧ āχāϤ⧋āĻŽāĻ§ā§āϝ⧇ āĻĻ⧇āϖ⧇āĻ›āĻŋ, āϏ⧇ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϚāĻŋāĻ¨ā§āϤāĻž āĻ•āϰāĻŋāĨ¤ āϕ⧋āύ āĻĒāĻĻā§āϧāϤāĻŋāϗ⧁āϞāĻŋ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āĻāĻŦāĻ‚ āĻĻā§āϰ⧁āϤāϤāĻŽ āϏāĻŋāĻĻā§āϧāĻžāĻ¨ā§āϤ āύ⧇āĻ“āϝāĻŧāĻžāϰ āϏ⧁āϝ⧋āĻ— āĻĻā§‡ā§Ÿ ? + +āĻ­āĻžāϞ⧋ āĻ­āĻŋāĻœā§āϝ⧁āϝāĻŧāĻžāϞāĻžāχāĻœā§‡āĻļāύāϗ⧁āϞāĻŋ āĻŽāĻžāύ⧁āώāϕ⧇ āĻĻā§āϰ⧁āϤ āϏāĻŋāĻĻā§āϧāĻžāĻ¨ā§āϤ āύāĻŋāϤ⧇ āϏāĻšāĻžā§ŸāϤāĻž āĻ•āϰ⧇āĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻļāĻŋāĻ˛ā§āĻĒ āϝāĻ¨ā§āĻ¤ā§āϰāĻĒāĻžāϤāĻŋ āĻĨ⧇āϕ⧇ āϏāĻŦ āϧāϰāύ⧇āϰ āϰāĻŋāĻĄāĻŋāĻ‚ āĻ¸ā§āĻ•ā§āϰāĻŋāύ⧇ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϞ⧇, āĻāϗ⧁āϞ⧋ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ āĻ•āϰāĻž āĻ•āĻ āĻŋāύāĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āϝāĻĻāĻŋ āφāĻŽāϰāĻž āϝ⧇āϕ⧋āύ āϏāĻŽāĻ¸ā§āϝāĻžāϜāύāĻ• āĻĒāϰāĻŋāĻ¸ā§āĻĨāĻŋāϤāĻŋāϤ⧇ āĻāĻ•āϟāĻŋ āϞāĻžāϞ āĻŦāĻžāϤāĻŋ āĻœā§āĻŦāĻžāϞāĻžāχ, āϤāĻžāĻšāϞ⧇ āĻāĻ•āϜāύ āĻŽāĻžāύ⧁āώ āϏāĻšāĻœā§‡ āϏāĻŋāĻĻā§āϧāĻžāĻ¨ā§āϤ āύāĻŋāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ + +āϜāĻŋāĻĒāĻŋāĻāϏ āĻĄā§‡āϟāĻž āύāĻŋā§Ÿā§‡ āĻ•āĻžāϜ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āϏāĻŦāĻšā§‡ā§Ÿā§‡ āĻ¸ā§āĻĒāĻˇā§āϟ āĻĻ⧃āĻļā§āϝāĻžāϝāĻŧāύ āĻšāϞ⧋ āĻāĻ•āϟāĻŋ āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰ⧇ āĻĄā§‡āϟāĻž āĻĒā§āϞāϟ āĻ•āϰāĻžāĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ āĻĄā§‡āϞāĻŋāĻ­āĻžāϰāĻŋ āĻŸā§āϰāĻžāĻ• āĻāϰ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻŽ āĻĻ⧇āĻ–āĻžāύ⧋ āĻāĻ•āϟāĻŋ āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰ, āĻāĻ•āϟāĻŋ āĻ•āĻžāϰāĻ–āĻžāύāĻžāϰ āĻļā§āϰāĻŽāĻŋāĻ•āĻĻ⧇āϰ āĻŸā§āϰāĻžāĻ• āĻ•āĻ–āύ āφāϏāĻŦ⧇ āϤāĻž āĻĻ⧇āĻ–āϤ⧇ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āϝāĻĻāĻŋ āĻāχ āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰāϟāĻŋ āϤāĻžāĻĻ⧇āϰ āĻŦāĻ°ā§āϤāĻŽāĻžāύ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāύ⧇ āĻŸā§āϰāĻžāϕ⧇āϰ āĻļ⧁āϧ⧁ āĻ›āĻŦāĻŋ āĻĻ⧇āĻ–āĻžāύ⧋āϰ āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ āĻŸā§āϰāĻžāϕ⧇āϰ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āϤāĻĨā§āϝ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϧāĻžāϰāĻŖāĻž āĻĻ⧇āϝāĻŧ, āϤāĻžāĻšāϞ⧇ āĻĒā§āϞāĻžāĻ¨ā§āĻŸā§‡āϰ āĻļā§āϰāĻŽāĻŋāĻ•āϰāĻž āϏ⧇āχ āĻ…āύ⧁āϝāĻžāϝāĻŧā§€ āĻĒāϰāĻŋāĻ•āĻ˛ā§āĻĒāύāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āϝāĻĻāĻŋ āϤāĻžāϰāĻž āϤāĻžāĻĻ⧇āϰ āĻ•āĻžāϰāĻ–āĻžāύāĻžāϰ āĻ•āĻžāĻ›āĻžāĻ•āĻžāĻ›āĻŋ āĻāĻ•āϟāĻŋ āϰ⧇āĻĢā§āϰāĻŋāϜāĻžāϰ⧇āĻŸā§‡āĻĄ āĻŸā§āϰāĻžāĻ• āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϝāĻŧ āϤāĻŦ⧇ āϤāĻžāϰāĻž āĻĻā§āϰ⧁āϤ āĻĒā§āϰāĻ¸ā§āϤ⧁āϤāĻŋ āύāĻŋāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ + +## āĻŽā§āϝāĻžāĻĒ āϏāĻžāĻ°ā§āĻ­āĻŋāϏ + +āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰ āύāĻŋā§Ÿā§‡ āĻ•āĻžāϜ āĻ•āϰāĻž āĻŦ⧇āĻļ āϚāĻŋāĻ¤ā§āϤāĻžāĻ•āĻ°ā§āώāĻ• āĻāĻ•āϟāĻŋ āĻ•āĻžāϜāĨ¤ āĻŽā§āϝāĻžāĻĒ⧇āϰ āϜāĻ¨ā§āϝ āĻ…āύ⧇āĻ•āϗ⧁āϞ⧋ āϏāĻžāĻ°ā§āĻ­āĻŋāϏ āϝ⧇āĻŽāύ Bing āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰ, āϞāĻŋāĻĢāϞ⧇āϟ, āĻ“āĻĒ⧇āύ āĻ¸ā§āĻŸā§āϰāĻŋāϟ āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰ āĻāĻŦāĻ‚ āϗ⧁āĻ—āϞ āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰ āĻĨ⧇āϕ⧇ āĻŦ⧇āϛ⧇ āύ⧇āĻ“āϝāĻŧāĻž āϝāĻžāϝāĻŧāĨ¤ āĻāχ āϞ⧇āϏāύ⧇ āφāĻŽāϰāĻž [Azure Maps](https://azure.microsoft.com/services/azure-maps/?WT.mc_id=academic-17441-jabenn) āύāĻŋā§Ÿā§‡ āφāϰ⧋ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āϜāĻžāύāĻŦā§‹ āĻāĻŦāĻ‚ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻĄā§‡āϟāĻž āĻĒā§āϞāϟ āĻ•āϰāĻž āĻšāĻŦ⧇ āϤāĻž āĻļāĻŋāĻ–āĻŦā§‹ + +![The Azure Maps logo](../../../../images/azure-maps-logo.png) + +Azure āĻŽā§āϝāĻžāĻĒ āĻšāϞ⧋ āĻ­ā§‚-āĻ¸ā§āĻĨāĻžāύāĻŋāĻ• āĻĒāϰāĻŋāώ⧇āĻŦāĻž āĻāĻŦāĻ‚ SDK- āĻāϰ āĻāĻ•āϟāĻŋ āϏāĻ‚āĻ—ā§āϰāĻš āϝāĻž āĻ“āϝāĻŧ⧇āĻŦ āĻāĻŦāĻ‚ āĻŽā§‹āĻŦāĻžāχāϞ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϗ⧁āϞāĻŋāϕ⧇ āϭ⧌āĻ—āϞāĻŋāĻ• āĻĒā§āϰ⧇āĻ•ā§āώāĻžāĻĒāϟ āϏāϰāĻŦāϰāĻžāĻš āĻ•āϰāϤ⧇ āύāϤ⧁āύ āĻŽā§āϝāĻžāĻĒāĻŋāĻ‚ āĻĄā§‡āϟāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ āĻĄā§‡āϭ⧇āϞāĻĒāĻžāϰāĻĻ⧇āϰ āϏ⧁āĻ¨ā§āĻĻāϰ, āχāĻ¨ā§āϟāĻžāϰ⧇āĻ•ā§āϟāĻŋāĻ­ āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰ āϤ⧈āϰāĻŋāϰ āϜāĻ¨ā§āϝ āĻŸā§āϝ⧁āϞ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϝāĻŧ āϝāĻž āϏ⧁āĻĒāĻžāϰāĻŋāĻļāĻ•ā§ƒāϤ āĻŸā§āϰāĻžāĻĢāĻŋāĻ• āϰ⧁āϟ āĻĒā§āϰāĻĻāĻžāύ, āĻŸā§āϰāĻžāĻĢāĻŋāĻ• āϘāϟāύāĻž āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϤāĻĨā§āϝ āĻĒā§āϰāĻĻāĻžāύ, āĻ…āĻ­ā§āϝāĻ¨ā§āϤāϰ⧀āĻŖ āύ⧇āĻ­āĻŋāϗ⧇āĻļāύ, āĻ…āύ⧁āϏāĻ¨ā§āϧāĻžāύ āĻ•ā§āώāĻŽāϤāĻž, āωāĻšā§āϚāϤāĻž āϤāĻĨā§āϝ, āφāĻŦāĻšāĻžāĻ“āϝāĻŧāĻž āĻĒāϰāĻŋāώ⧇āĻŦāĻž āĻāĻŦāĻ‚ āφāϰāĻ“ āĻ…āύ⧇āĻ• āĻ•āĻŋāϛ⧁ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ + +✅ āĻāĻ–āĻžāύ⧇ āĻ•āĻŋāϛ⧁ [āϕ⧋āĻĄ āĻ¸ā§āϝāĻžāĻŽā§āĻĒāϞ](https://docs.microsoft.com/samples/browse?WT.mc_id=academic-17441-jabenn&products=azure-maps) āĻ°ā§Ÿā§‡āϛ⧇ āϝāĻž āφāĻŽāϰāĻž āĻāĻ•ā§āϏāĻĒ⧇āϰāĻŋāĻŽā§‡āĻ¨ā§āϟ āĻ•āϰ⧇ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ + +āφāĻŽāϰāĻž āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύāĻ­āĻžāĻŦ⧇ āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ, āϝ⧇āĻŽāύāσ āĻĢāĻžāρāĻ•āĻž āĻ•ā§āϝāĻžāύāĻ­āĻžāϏ, āϟāĻžāχāϞāϏ, āĻ¸ā§āϝāĻžāĻŸā§‡āϞāĻžāχāϟ āχāĻŽā§‡āϜ, āϰāĻžāĻ¸ā§āϤāĻž āϏāĻš āĻ¸ā§āϝāĻžāĻŸā§‡āϞāĻžāχāϟ āχāĻŽā§‡āϜ, āĻ—ā§āϰ⧇āĻ¸ā§āϕ⧇āϞ āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰ, āωāĻšā§āϚāϤāĻž āĻĻ⧇āĻ–āĻžāύ⧋āϰ āϜāĻ¨ā§āϝ āĻ›āĻžāϝāĻŧāĻžāĻŽāϝāĻŧ āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰ, āϰāĻžāϤ⧇āϰ āĻĻ⧃āĻļā§āϝ⧇āϰ āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰ āĻāĻŦāĻ‚ āĻšāĻžāχ-āĻ•āύāĻŸā§āϰāĻžāĻ¸ā§āϟ āχāĻ¤ā§āϝāĻžāĻĻāĻŋ āĨ¤ [Azure Event Grid](https://azure.microsoft.com/services/event-grid/?WT.mc_id=academic-17441-jabenn) āĻāϰ āϏāĻžāĻĨ⧇ āĻāϕ⧀āĻ­ā§‚āϤ āĻ•āϰ⧇ āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰ⧇ āϰāĻŋāϝāĻŧ⧇āϞ-āϟāĻžāχāĻŽ āφāĻĒāĻĄā§‡āϟ āĻĒ⧇āϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āφāĻŽāĻžāĻĻ⧇āϰ āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰ⧇āϰ āφāϚāϰāĻŖ āĻāĻŦāĻ‚ āĻ­āĻŋāĻ¸ā§āϝ⧁⧟āĻžāϞ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āύāĻŋ⧟āĻ¨ā§āĻ¤ā§āϰāĻŖ āϝ⧁āĻ•ā§āϤ āĻ•āϰ⧇, āϝ⧇āĻŽāύāσ pinch, drag āĻāĻŦāĻ‚ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰāĻžāϰ āĻŽāϤ⧋ āĻ…āĻĒāĻžāϰ⧇āĻļāύ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡āĨ¤ āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰ⧇āϰ āϰ⧂āĻĒ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāϤ⧇, āφāĻŽāϰāĻž āĻŦāĻžāĻŦāϞ, āϞāĻžāχāύ, āĻŦāĻšā§āϭ⧁āϜ, āĻšāĻŋāϟāĻŽā§āϝāĻžāĻĒ āĻāĻŦāĻ‚ āφāϰāĻ“ āĻ…āύ⧇āĻ• āĻ•āĻŋāϛ⧁ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āϕ⧋āύ āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰāϟāĻŋ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āĻ•āϰāĻŦā§‹ āϤāĻž āφāĻŽāĻžāĻĻ⧇āϰ SDK āĻāϰ āĻĒāĻ›āĻ¨ā§āĻĻ⧇āϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇āĨ¤ + +[REST API](https://docs.microsoft.com/javascript/api/azure-maps-rest/?WT.mc_id=academic-17441-jabenn&view=azure-maps-typescript-latest) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāĻŽāϰāĻž Azure Maps APIs āĻāĻ•āϏ⧇āϏ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āĻāĻ›āĻžā§œāĻžāĻ“ āĻāϟāĻŋāϰ [Web SDK](https://docs.microsoft.com/azure/azure-maps/how-to-use-map-control?WT.mc_id=academic-17441-jabenn) āĻŦāĻž āĻŽā§‹āĻŦāĻžāχāϞ⧇āϰ āϜāĻ¨ā§āϝ [Android SDK](https://docs.microsoft.com/azure/azure-maps/how-to-use-android-map-control-library?WT.mc_id=academic-17441-jabenn&pivots=programming-language-java-android) āφāĻŽāϰāĻž āĻ•āĻžāĻœā§‡ āϞāĻžāĻ—āĻžāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ + +āĻāχ āĻĒāĻžāϠ⧇, āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰ āφāρāĻ•āϤ⧇ āĻāĻŦāĻ‚ āφāĻŽāĻžāĻĻ⧇āϰ āϏ⧇āĻ¨ā§āϏāϰ⧇āϰ āϜāĻŋāĻĒāĻŋāĻāϏ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāύ⧇āϰ āĻĒāĻĨ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰāϤ⧇ āĻ“āϝāĻŧ⧇āĻŦ SDK āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦā§‹āĨ¤ + +## Azure Maps āϰāĻŋāϏ⧋āĻ°ā§āϏ āϤ⧈āϰ⧀ āĻ•āϰāĻž + +āφāĻŽāĻžāĻĻ⧇āϰ āĻĒā§āϰāĻĨāĻŽ āϧāĻžāĻĒ āĻšāϞ āĻāĻ•āϟāĻŋ Azure Maps āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āϟ āϤ⧈āϰāĻŋ āĻ•āϰāĻžāĨ¤ + +### āĻ•āĻžāϜ - Azure Maps āϰāĻŋāϏ⧋āĻ°ā§āϏ āϤ⧈āϰ⧀ āĻ•āϰāĻž + +1. āϟāĻžāĻ°ā§āĻŽāĻŋāύāĻžāϞ āĻŦāĻž āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĒā§āϰāĻŽā§āĻĒāϟ āĻĨ⧇āϕ⧇ āύāĻŋāĻŽā§āύ⧇āϰ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϰāĻžāύ āĻ•āϰ⧇ `gps-sensor` āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻ—ā§āϰ⧁āĻĒ⧇ Azure Maps āϰāĻŋāϏ⧋āĻ°ā§āϏ āϤ⧈āϰ⧀ āĻ•āϰāĻŋāĨ¤ + + ```sh + az maps account create --name gps-sensor \ + --resource-group gps-sensor \ + --accept-tos \ + --sku S1 + ``` + + āĻāϟāĻŋ Azure Maps āϰāĻŋāϏ⧋āĻ°ā§āϏ āϤ⧈āϰ⧀ āĻ•āϰāĻŦ⧇ āϝāĻžāϰ āύāĻžāĻŽ `gps-sensor` āĨ¤ āĻāĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ `S1` tier āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšāĻšā§āϛ⧇ āϝāĻž āĻāĻ•āϟāĻŋ paid tier āϝāĻžāϤ⧇ āĻ…āύ⧇āĻ•āϗ⧁āϞ⧋ āĻĢā§€āϚāĻžāϰ āĻĨāĻžāϕ⧇āĨ¤ + + > 💁 Azure Maps āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āĻ–āϰāϚ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϜāĻžāύāϤ⧇, [Azure Maps pricing page](https://azure.microsoft.com/pricing/details/azure-maps/?WT.mc_id=academic-17441-jabenn) āĻĒ⧜āϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ + +1. āĻŽā§āϝāĻžāĻĒ⧇āϰ āϜāĻ¨ā§āϝ API key āĻĒā§āĻ°ā§Ÿā§‹āϜāύāĨ¤ āύ⧀āĻšā§‡āϰ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĻāĻŋā§Ÿā§‡ āϤāĻž āĻĒāĻžāĻ“ā§ŸāĻž āϝāĻžāĻŦ⧇āσ + + ```sh + az maps account keys list --name gps-sensor \ + --resource-group gps-sensor \ + --output table + ``` + + āĻāĻ–āĻžāύ⧇ `PrimaryKey` āĻ­ā§āϝāĻžāϞ⧁āϟāĻŋ āĻ•āĻĒāĻŋ āĻ•āϰ⧇ āύāĻŋāϤ⧇ āĻšāĻŦ⧇āĨ¤ + +## āĻ“ā§Ÿā§‡āĻŦ āĻĒ⧇āχāĻœā§‡ āĻŽā§āϝāĻžāĻĒ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ + +āĻāĻ–āύ āφāĻŽāϰāĻž āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻĒāĻĻāĻ•ā§āώ⧇āĻĒ āύāĻŋāϤ⧇ āĻĒāĻžāϰāĻŋ āϝāĻž āĻšāϞ⧋ āĻāĻ•āϟāĻŋ āĻ“āϝāĻŧ⧇āĻŦ āĻĒ⧇āĻœā§‡ āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰāĻžāĨ¤ āϛ⧋āϟ āĻ“āϝāĻŧ⧇āĻŦ āĻ…ā§āϝāĻžāĻĒ⧇āϰ āϜāĻ¨ā§āϝ āĻŽāĻžāĻ¤ā§āϰ āĻāĻ•āϟāĻŋ `html` āĻĢāĻžāχāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦā§‹; āϤāĻŦ⧇ āĻāĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻŽāύ⧇ āϰāĻžāĻ–āϤ⧇ āĻšāĻŦ⧇ āϝ⧇ āĻāĻ•āϟāĻŋ āωāĻ¤ā§āĻĒāĻžāĻĻāύ āĻļāĻŋāĻ˛ā§āĻĒ āĻŦāĻž āĻĻāϞāĻ—āϤ āĻĒāϰāĻŋāĻŦ⧇āĻļ⧇, āĻ“āϝāĻŧ⧇āĻŦ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ⧇ āϏāĻŽā§āĻ­āĻŦāϤ āφāϰ⧋ āĻ•āĻŋāϛ⧁ āϚāϞāĻŽāĻžāύ āĻ…āĻ‚āĻļ āĻĨāĻžāĻ•āĻŦ⧇! + +### Task - āĻ“ā§Ÿā§‡āĻŦ āĻĒ⧇āχāĻœā§‡ āĻŽā§āϝāĻžāĻĒ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ + +1. āĻāĻ–āύ index.html āύāĻžāĻŽā§‡ āĻāĻ•āϟāĻŋ āĻĢāĻžāχāϞ āϤ⧈āϰ⧀ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϞ⧋āĻ•āĻžāϞ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ⧇āϰ āϕ⧋āύ āĻĢā§‹āĻ˛ā§āĻĄāĻžāϰ⧇ āĨ¤ HTML āĻŽāĻžāĻ°ā§āĻ•-āφāĻĒ āĻĻāĻŋā§Ÿā§‡ āĻŽā§āϝāĻžāĻĒ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻŋāσ + + ```html + + + + + + +
+ + + ``` + + āĻŽā§āϝāĻžāĻĒāϟāĻŋ `myMap` `div` āĻ āϤ⧈āϰ⧀ āĻšāĻŦ⧇ āĨ¤ āĻĒ⧇āχāĻœā§‡āϰ āĻĒā§āϰāĻ¸ā§āĻĨ āĻāĻŦāĻ‚ āωāĻšā§āϚāϤāĻž āĻ āĻŋāĻ• āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ•āĻŋāϛ⧁ HTML āĻ¸ā§āϟāĻžāχāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϞ⧇āχ āĻšāĻŦ⧇āĨ¤ + + > 🎓`div` āĻāĻ•āϟāĻŋ āĻ“āϝāĻŧ⧇āĻŦ āĻĒ⧇āĻœā§‡āϰ āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻ­āĻžāĻ— āĻŦāĻž āĻ…āĻ‚āĻļ āϝ⧇āϟāĻŋāϤ⧇ āφāĻŽāϰāĻž āύāĻžāĻŽ āĻāĻŦāĻ‚ āĻ¸ā§āϟāĻžāχāϞ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ āϏāĻšāĻœā§‡āχ āĨ¤ + +1. āĻļ⧁āϰ⧁āϤ⧇āχ `` āĻŸā§āϝāĻžāϗ⧇āϰ āĻ…āϧ⧀āύ⧇ āĻāĻ•āϟāĻŋ āĻāĻ•ā§āϏāϟāĻžāĻ°ā§āύāĻžāϞ style sheet āϝ⧁āĻ•ā§āϤ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āĻŽā§āϝāĻžāĻĒ āϏ⧁āĻ¨ā§āĻĻāϰāĻ­āĻžāĻŦ⧇ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ⧇āϰ āϜāĻ¨ā§āϝāĨ¤ āĻāĻ›āĻžā§œāĻžāĻ“ āĻŽā§āϝāĻžāĻĒ⧇āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āύāĻŋ⧟āĻ¨ā§āĻ¤ā§āϰāĻŖ āĻ•āϰāϤ⧇, āĻāĻ•āϟāĻŋ āĻŦāĻžāĻšā§āϝāĻŋāĻ• script āĻĢāĻžāχāϞ āĻĻāϰāĻ•āĻžāϰ āϝāĻž āφāĻŽāϰāĻž Web SDK āĻĨ⧇āϕ⧇ āĻĒāĻžāĻŦ: + + ```html + + + ``` + + āĻāχ āĻ¸ā§āϟāĻžāχāϞ āĻļā§€āĻŸā§‡ āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰāϟāĻŋ āϕ⧇āĻŽāύ āĻĻ⧇āĻ–āĻžāϝāĻŧ āϏ⧇āϟāĻŋāϰ āϏ⧇āϟāĻŋāĻ‚āϏ āϰāϝāĻŧ⧇āϛ⧇ āĻāĻŦāĻ‚ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āĻĢāĻžāχāϞ⧇ āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰ āϞ⧋āĻĄ āĻ•āϰāĻžāϰ āϕ⧋āĻĄ āϰāϝāĻŧ⧇āϛ⧇āĨ¤ āĻāχ āϕ⧋āĻĄ āϝ⧋āĻ— āĻ•āϰāĻžāϰ āĻ•āĻžāϜāϟāĻŋ C++ āĻ āĻšā§‡āĻĄāĻžāϰ āĻĢāĻžāχāϞ āĻŦāĻž āĻĒāĻžāχāĻĨāύ āĻŽāĻĄāĻŋāωāϞ āχāĻŽā§āĻĒā§‹āĻ°ā§āϟ āĻ•āϰāĻžāϰ āĻ…āύ⧁āϰ⧂āĻĒāĨ¤ + +1. āĻāĻŦāĻžāϰ āύāĻŋāĻŽā§āύ⧇āϰ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āĻŦā§āϞāĻ• āϝ⧋āĻ— āĻ•āϰāĻŋ + + ```javascript + + ``` + + āĻāĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ `` āĻāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ API key āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ Azure Maps āĻāĻ•āĻžāωāĻ¨ā§āĻŸā§‡āϰāĨ¤ + + āϝāĻĻāĻŋ āφāĻŽāϰāĻž `index.html` āĻĒ⧇āϜāϟāĻŋ āĻŦā§āϰāĻžāωāϜāĻžāϰ⧇ āĻ“āĻĒ⧇āύ āĻ•āϰāĻŋ, āϤāĻžāĻšāϞ⧇ āφāĻŽāϰāĻž āĻŽā§āϝāĻžāĻĒ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāĻŦ āϝāĻž Seattle āĻ…āĻžā§āϚāϞ⧇ āĻĢā§‹āĻ•āĻžāϏ āĻ•āϰ⧇āĨ¤ + + ![A map showing Seattle, a city in Washington State, USA](../../../../images/map-image.png) + + ✅ āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāϤ⧇ āϜ⧁āĻŽ āĻāĻŦāĻ‚ āϕ⧇āĻ¨ā§āĻĻā§āϰ⧇āϰ āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋāϗ⧁āϞāĻŋ āύāĻŋāϝāĻŧ⧇ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻŋāĨ¤ āφāĻŽāϰāĻž āĻ…āĻ•ā§āώāĻžāĻ‚āĻļ āĻāĻŦāĻ‚ āĻĻā§āϰāĻžāϘāĻŋāĻŽāĻžāĻ‚āĻļ⧇āϰ āϏāĻžāĻĨ⧇ āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻ¸ā§āĻĨāĻžāύāĻžāĻ™ā§āĻ• āϝ⧋āĻ— āĻ•āϰ⧇ āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰ⧇ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āϞāĻ•ā§āĻˇā§āϝ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦā§‹āĨ¤ + +> 💁 Web apps āύāĻŋā§Ÿā§‡ āĻ•āĻžāϜ āĻ•āϰāĻž āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻāĻ•āϟāĻŋ āĻ­āĻžāϞ⧋ āωāĻĒāĻžā§Ÿ āĻšāϞ⧋ [http-server](https://www.npmjs.com/package/http-server) āϕ⧇ āϞ⧋āĻ•āĻžāϞāĻŋ āχāĻ¨ā§āϏāϟāϞ āĻ•āϰāĻžāĨ¤ āϤāĻŦ⧇ āφāĻŽāĻžāĻĻ⧇āϰāϕ⧇ [node.js](https://nodejs.org/) āĻāĻŦāĻ‚ [npm](https://www.npmjs.com/) āχāĻ¨ā§āϏāϟāϞ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āφāϗ⧇āχāĨ¤ āĻāϗ⧁āϞ⧋ āχāύāĻ¸ā§āϟāϞ āĻšāϝāĻŧ⧇ āϗ⧇āϞ⧇, `index.html` āĻĢāĻžāχāϞ⧇ āύ⧇āĻ­āĻŋāϗ⧇āϟ āĻ•āϰ⧇, ` http-server` āϟāĻžāχāĻĒ āĻ•āϰāϞ⧇ āĻ“āϝāĻŧ⧇āĻŦ āĻ…ā§āϝāĻžāĻĒāϟāĻŋ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻĨāĻžāύ⧀āϝāĻŧ āĻ“āϝāĻŧ⧇āĻŦ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āϖ⧁āϞāĻŦ⧇ [http://127.0.0.1:8080/](http://127.0.0.1:8080/) āĨ¤ + +## GeoJSON āĻĢāϰāĻŽā§āϝāĻžāϟ + +āĻāĻ–āύ āϝ⧇āĻšā§‡āϤ⧁ āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ⧇āϰ āϏāĻžāĻĨ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻ“āϝāĻŧ⧇āĻŦ āĻ…ā§āϝāĻžāĻĒāϟāĻŋ āϰāϝāĻŧ⧇āϛ⧇, āφāĻŽāĻžāĻĻ⧇āϰāϕ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻ¸ā§āĻŸā§‹āϰ⧇āϜ āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āϟ āĻĨ⧇āϕ⧇ āϜāĻŋāĻĒāĻŋāĻāϏ āĻĄā§‡āϟāĻž āĻŦ⧇āϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āĻāĻŦāĻ‚ āĻāϟāĻŋ āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰ⧇āϰ āωāĻĒāϰ⧇ āĻŽāĻžāĻ°ā§āĻ•āĻžāϰ⧇āϰ āĻāĻ•āϟāĻŋ āĻ¸ā§āϤāϰ⧇ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āφāĻŽāϰāĻž āĻāϟāĻŋ āĻ•āϰāĻžāϰ āφāϗ⧇, [GeoJSON](https://wikipedia.org/wiki/GeoJSON) āĻĢāĻ°ā§āĻŽā§āϝāĻžāϟāϟāĻŋ āĻĻ⧇āĻ–āĻŋ āϝāĻž Azure āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰ⧇āϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧāĨ¤ + +[GeoJSON](https://geojson.org/) āĻšāϞ āĻāĻ•āϟāĻŋ āĻ“āĻĒ⧇āύ āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ JSON āĻ¸ā§āĻĒ⧇āϏāĻŋāĻĢāĻŋāϕ⧇āĻļāύ āϝāĻž āϭ⧌āĻ—ā§‹āϞāĻŋāĻ•-āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĄā§‡āϟāĻž āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĄāĻŋāϜāĻžāχāύ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ āĻŦāĻŋāĻļ⧇āώ āĻĢāĻ°ā§āĻŽā§āϝāĻžāϟāĻŋāĻ‚ āϏāĻšāĨ¤ āφāĻŽāϰāĻž [geojson.io](https://geojson.io) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āύāĻŽā§āύāĻž āĻĄā§‡āϟāĻž āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧇ āĻāϟāĻŋ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϜāĻžāύāϤ⧇ āĻĒāĻžāĻ°ā§āϰāĻŋ, āϝāĻž GeoJSON āĻĢāĻžāχāϞāϗ⧁āϞāĻŋ āĻĄāĻŋāĻŦāĻžāĻ— āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻĻāϰāĻ•āĻžāϰ⧀ āĻŸā§āϝ⧁āϞāĨ¤ + +GeoJSON āĻĄā§‡āϟāĻžāϰ āĻāĻ•āϟāĻŋ āύāĻŽā§āύāĻž āĻĢāĻžāχāϞāσ + +```json +{ + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + -2.10237979888916, + 57.164918677004714 + ] + } + } + ] +} +``` + +āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻļ⧇āώ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ āĻšāϞ āĻĄā§‡āϟāĻžāϕ⧇ āĻāĻ•āϟāĻŋ 'āĻĢāĻŋāϚāĻžāϰāĻ•āϞ⧇āĻ•āĻļāύ' āĻāϰ āĻŽāĻ§ā§āϝ⧇ 'āĻĢāĻŋāϚāĻžāϰ' āĻšāĻŋāϏ⧇āĻŦ⧇ āύ⧇āĻ¸ā§āϟ āĻ•āϰāĻžāĨ¤ āϏ⧇āχ āĻŦāĻ¸ā§āϤ⧁āϰ āĻŽāĻ§ā§āϝ⧇ āĻ…āĻ•ā§āώāĻžāĻ‚āĻļ āĻāĻŦāĻ‚ āĻĻā§āϰāĻžāϘāĻŋāĻŽāĻžāĻ‚āĻļ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻ•āĻžāϰ⧀ 'āĻ¸ā§āĻĨāĻžāύāĻžāĻ™ā§āĻ•' āĻāϰ 'āĻœā§āϝāĻžāĻŽāĻŋāϤāĻŋ' āĻĒāĻžāĻ“āϝāĻŧāĻž āϝāĻžāĻŦ⧇āĨ¤ + +✅ GeoJSON āϤ⧈āϰāĻŋ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ, āĻŦāĻ¸ā§āϤ⧁āϰ āĻŽāĻ§ā§āϝ⧇ 'āĻ…āĻ•ā§āώāĻžāĻ‚āĻļ' āĻāĻŦāĻ‚ 'āĻĻā§āϰāĻžāϘāĻŋāĻŽāĻžāĻ‚āĻļ' āĻāϰ āĻ•ā§āϰāĻŽāϟāĻŋāϰ āĻĻāĻŋāϕ⧇ āĻŽāύ⧋āϝ⧋āĻ— āĻĻāĻŋāϤ⧇ āĻšāĻŦ⧇ āύ⧟āϤ⧋ āĻŽāĻžāύ āĻ…āύ⧁āϝāĻžā§Ÿā§€ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāύ āϝ⧇āĻ–āĻžāύ⧇ āĻĻ⧇āĻ–āĻž āωāϚāĻŋāϤ, āϏ⧇āĻ–āĻžāύ⧇ āϤāĻž āωāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻŋāϤ āĻšāĻŦ⧇ āύāĻž! GeoJSON āĻĒāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ `lon,lat` āĻāχ āĻ•ā§āϰāĻŽāĻžāύ⧁āϏāĻžāϰ⧇ āĻĄā§‡āϟāĻž āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰāϤ⧇ āĻšā§Ÿ , `lat,lon` āĻĢāϰāĻŽā§āϝāĻžāĻŸā§‡ āύāϝāĻŧāĨ¤ + +`āĻœā§āϝāĻžāĻŽāĻŋāϤāĻŋ` āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϧāϰāύ⧇āϰ āĻšāϤ⧇ āĻĒāĻžāϰ⧇, āϝ⧇āĻŽāύ āĻāĻ•āĻ• āĻŦāĻŋāĻ¨ā§āĻĻ⧁ āĻŦāĻž āĻŦāĻšā§āϭ⧁āϜāĨ¤ āĻāχ āωāĻĻāĻžāĻšāϰāϪ⧇, āφāĻŽāϰāĻž āĻ•āĻžāϜ āĻ•āϰāĻ›āĻŋ āĻŦāĻŋāĻ¨ā§āĻĻ⧁ āύāĻŋā§Ÿā§‡ āϝāĻžāϰ āĻĻ⧁āϟāĻŋ āĻ¸ā§āĻĨāĻžāύāĻžāĻ™ā§āĻ•āσ āĻĻā§āϰāĻžāϘāĻŋāĻŽāĻžāĻ‚āĻļ āĻāĻŦāĻ‚ āĻ…āĻ•ā§āώāĻžāĻ‚āĻļ āĻ°ā§Ÿā§‡āϛ⧇āĨ¤ + +✅ Azure Maps āϏāĻ•āϞ GeoJSON āĻāĻŦāĻ‚ āĻāϰ āϏāĻžāĻĨ⧇ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āĻ•āĻŋāϛ⧁ [āωāĻ¨ā§āύāϤ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ](https://docs.microsoft.com/azure/azure-maps/extend-geojson?WT.mc_id=academic-17441-jabenn) āϏāĻžāĻĒā§‹āĻ°ā§āϟ āĻ•āϰ⧇ āϝ⧇āĻŽāύāσ āĻŦ⧃āĻ¤ā§āϤ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻœā§āϝāĻžāĻŽāĻŋāϤāĻŋāĻ• āĻ—āĻ āύ āφāρāĻ•āĻžāϰ āĻ•ā§āώāĻŽāϤāĻžāĨ¤ + +## GeoJSON āĻĻā§āĻŦāĻžāϰāĻž āĻŽā§āϝāĻžāĻĒ⧇ āϜāĻŋāĻĒāĻŋāĻāϏ āĻĄā§‡āϟāĻž āĻĒā§āϞāϟ āĻ•āϰāĻž + +āĻāĻ–āύ āφāĻŽāϰāĻž āφāϗ⧇āϰ āĻĒāĻžāϠ⧇ āϝ⧇ āĻ¸ā§āĻŸā§‹āϰ⧇āϜāϟāĻŋ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĻ›āĻŋāϞāĻžāĻŽ āϏ⧇āĻ–āĻžāύ āĻĨ⧇āϕ⧇ āĻĄā§‡āϟāĻž āĻ—ā§āϰāĻšāĻŖ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāĻ¸ā§āϤ⧁āϤāĨ¤ āĻāϗ⧁āϞ⧋ āĻŦā§āϞāĻŦ āĻ¸ā§āĻŸā§‹āϰ⧇āĻœā§‡ āĻŦ⧇āĻļ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻĢāĻžāχāϞ āĻšāĻŋāϏāĻžāĻŦ⧇ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāĻž āĻšā§Ÿā§‡āϛ⧇ āϝāĻžāϤ⧇ āφāĻŽāĻžāĻĻ⧇āϰāϕ⧇ āĻĢāĻžāχāϞāϗ⧁āϞāĻŋ āĻĒ⧁āύāϰ⧁āĻĻā§āϧāĻžāϰ āĻ•āϰāϤ⧇ āĻšā§Ÿ āĻāĻŦāĻ‚ āϏ⧇āϗ⧁āϞāĻŋ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϝāĻžāϤ⧇ Azure Maps āϏ⧇āχ āĻĄā§‡āϟāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ + +### āĻ•āĻžāϜ - āĻ“āϝāĻŧ⧇āĻŦ āĻĒ⧇āϜ āĻĨ⧇āϕ⧇ āĻāĻ•āϏ⧇āϏ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ¸ā§āĻŸā§‹āϰ⧇āϜ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰāĻž + +āφāĻŽāϰāĻž āϝāĻĻāĻŋ āĻĄā§‡āϟāĻž āφāύāϤ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻ¸ā§āĻŸā§‹āϰ⧇āĻœā§‡ āĻ•āϞ āĻ•āϰāĻŋ, āϤāĻŦ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻŦā§āϰāĻžāωāϜāĻžāϰ⧇āϰ āĻ•āύāϏ⧋āϞ⧇ āĻ…āύ⧇āĻ• āĻāϰāϰ āĻĻ⧇āϖ⧇ āĻ…āύ⧇āϕ⧇āχ āĻ…āĻŦāĻžāĻ• āĻšāĻ‡ā§Ÿā§‡ āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻāϰ āĻ•āĻžāϰāĻŖ āĻšāϞ āĻāχ āĻ¸ā§āĻŸā§‹āϰ⧇āĻœā§‡ [CORS](https://developer.mozilla.org/docs/Web/HTTP/CORS) āĻāϰ āϜāĻ¨ā§āϝ āφāĻŽāĻžāĻĻ⧇āϰāϕ⧇ āĻĒāĻžāĻ°ā§āĻŽāĻŋāĻļāύ āϏ⧇āϟ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϝāĻžāϤ⧇ āĻŦāĻžāχāϰ⧇āϰ āĻ“āϝāĻŧ⧇āĻŦ āĻ…ā§āϝāĻžāĻĒāϏ āĻĨ⧇āϕ⧇ āĻĄā§‡āϟāĻž āĻāĻ•āϏ⧇āϏ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ + +> 🎓 CORS āĻāϰ āĻĒā§‚āĻ°ā§āĻŖāϰ⧂āĻĒ āĻšāϞ⧋ "Cross-Origin Resource Sharing" āĻāĻŦāĻ‚ āϏāĻžāϧāĻžāϰāĻŖāϤ āύāĻŋāϰāĻžāĻĒāĻ¤ā§āϤāĻžāϜāύāĻŋāϤ āĻ•āĻžāϰāϪ⧇ Azure āĻ āĻāϟāĻŋ āĻ¸ā§āĻĒāĻˇā§āϟāĻ­āĻžāĻŦ⧇ āϏ⧇āϟ āĻ•āϰāĻž āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤ āϝ⧇āϏāĻ•āϞ āϏāĻžāχāϟāϗ⧁āϞāĻŋāϕ⧇ āĻĄā§‡āϟāĻž āĻāĻ•āϏ⧇āϏ āĻ•āϰāĻžāϰ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻā§‡ā§ŸāĻžāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āύ⧇āχ, āϤāĻž āφāĻŽāϰāĻž āĻāĻ–āĻžāύ āĻĨ⧇āϕ⧇ āύāĻŋ⧟āĻ¨ā§āĻ¤ā§āϰāĻŖ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ + +1. āύāĻŋāĻŽā§āύ⧇āϰ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϰāĻžāύ āĻ•āϰ⧇ CORS āϚāĻžāϞ⧁ āĻ•āϰāĻŋ: + + ```sh + az storage cors add --methods GET \ + --origins "*" \ + --services b \ + --account-name \ + --account-key + ``` + + āĻāĻ–āĻžāύ⧇ `` āĻāϰ āϜāĻžā§ŸāĻ—āĻžā§Ÿ āφāĻŽāĻžāĻĻ⧇āϰ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻ¸ā§āĻŸā§‹āϰ⧇āϜāϟāĻŋāϰ āύāĻžāĻŽ āĻĻāĻŋāϤ⧇ āĻšāĻŦ⧇ āĻāĻŦāĻ‚ `` āĻāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āĻ¸ā§āĻŸā§‹āϰ⧇āϜ āĻāĻ•āĻžāωāĻ¨ā§āĻŸā§‡āϰ key āĻĻāĻŋāϤ⧇ āĻšāĻŦ⧇āĨ¤ + + āĻāχ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϝ⧇āϕ⧋āύ⧋ āĻ“āϝāĻŧ⧇āĻŦāϏāĻžāχāϟāϕ⧇ (āĻ“āϝāĻŧāĻžāχāĻ˛ā§āĻĄāĻ•āĻžāĻ°ā§āĻĄ `*` āϚāĻŋāĻšā§āύ āĻŽāĻžāύ⧇ āĻšāϞ⧋ 'āϝ⧇āϕ⧋āύ⧋') āφāĻŽāĻžāĻĻ⧇āϰ āĻ¸ā§āĻŸā§‹āϰ⧇āϜ āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āϟ āĻĨ⧇āϕ⧇ āĻāĻ•āϟāĻŋ *GET* āĻ…āύ⧁āϰ⧋āϧ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻ⧇āϝāĻŧ, āĻ…āĻ°ā§āĻĨāĻžā§Ž āĻĄā§‡āϟāĻž āĻĒāĻžāĻ“ā§ŸāĻžāϰ āϏ⧁āϝ⧋āĻ— āĻ•āϰ⧇ āĻĻā§‡ā§ŸāĨ¤ āφāϰ `--services b` āĻŽāĻžāύ⧇ āĻšāϞ⧋ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻŦā§āϞāĻŦāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āĻāχ āϏ⧇āϟāĻŋāĻ‚ āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰāĻž āĻšāĻšā§āϛ⧇āĨ¤ + +### āĻ•āĻžāϜ - āĻ¸ā§āĻŸā§‹āϰ⧇āϜ āĻĨ⧇āϕ⧇ āϜāĻŋāĻĒāĻŋāĻāϏ āĻĄā§‡āϟāĻž āϞ⧋āĻĄ āĻ•āϰāĻž + +1. `init` āĻĢāĻžāĻ‚āĻļāύ⧇āϰ āϏāĻŦāϗ⧁āϞ⧋ āĻ•āύāĻŸā§‡āĻ¨ā§āϟāϕ⧇ āύāĻŋāĻŽā§āύ⧇āϰ āϕ⧋āĻĄ āĻĻāĻŋā§Ÿā§‡ āϰāĻŋāĻĒā§āϞ⧇āϏ āĻ•āϰ⧇ āĻĻāĻŋāχāσ + + ```javascript + fetch("https://.blob.core.windows.net/gps-data/?restype=container&comp=list") + .then(response => response.text()) + .then(str => new window.DOMParser().parseFromString(str, "text/xml")) + .then(xml => { + let blobList = Array.from(xml.querySelectorAll("Url")); + blobList.forEach(async blobUrl => { + loadJSON(blobUrl.innerHTML) + }); + }) + .then( response => { + map = new atlas.Map('myMap', { + center: [-122.26473, 47.73444], + zoom: 14, + authOptions: { + authType: "subscriptionKey", + subscriptionKey: "", + + } + }); + map.events.add('ready', function () { + var source = new atlas.source.DataSource(); + map.sources.add(source); + map.layers.add(new atlas.layer.BubbleLayer(source)); + source.add(features); + }) + }) + ``` + + āφāϰ `` āĻāϰ āϜāĻžā§ŸāĻ—āĻžā§Ÿ āφāĻŽāĻžāĻĻ⧇āϰ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻ¸ā§āĻŸā§‹āϰ⧇āĻœā§‡āϰ āύāĻžāĻŽāϟāĻŋ āĻĻāĻŋāϤ⧇ āĻšāĻŦ⧇ āφāϰ `` āĻāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ API key āĻĻāĻŋāϤ⧇ āĻšāĻŦ⧇ Azure Maps āĻāĻ•āĻžāωāĻ¨ā§āϟ āĻāϰ āĨ¤ + + āĻāĻ–āĻžāύ⧇ āĻŦ⧇āĻļ āĻ•āĻŋāϛ⧁ āϘāϟāύāĻž āϘāϟāϛ⧇āĨ¤ āĻĒā§āϰāĻĨāĻŽā§‡, āϕ⧋āĻĄāϟāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āĻ¸ā§āĻŸā§‹āϰ⧇āϜ āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āĻŸā§‡āϰ āύāĻžāĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āύāĻŋāĻ°ā§āĻŽāĻŋāϤ āĻāĻ•āϟāĻŋ āχāωāφāϰāĻāϞ āĻāĻ¨ā§āĻĄāĻĒāϝāĻŧ⧇āĻ¨ā§āϟ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻŦā§āϞāĻŦ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āĻĨ⧇āϕ⧇ āϜāĻŋāĻĒāĻŋāĻāϏ āĻĄā§‡āϟāĻž āύāĻŋāϝāĻŧ⧇ āφāϏ⧇āĨ¤ āĻāχ āχāωāφāϰāĻāϞ `gps-data` āĻĨ⧇āϕ⧇ āĻĒ⧁āύāϰ⧁āĻĻā§āϧāĻžāϰ āĻ•āϰ⧇, āϰāĻŋāϏ⧋āĻ°ā§āϏ⧇āϰ āϧāϰāύ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ (`restype=container`) āĻāĻŦāĻ‚ āϏāĻŽāĻ¸ā§āϤ āĻŦā§āϞāĻŦ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϤāĻĨā§āϝ āϤāĻžāϞāĻŋāĻ•āĻžāϭ⧁āĻ•ā§āϤ āĻ•āϰ⧇āĨ¤ āĻāχ āϤāĻžāϞāĻŋāĻ•āĻžāϟāĻŋ āĻŦā§āϞāĻŦāϗ⧁āϞāĻŋ āύāĻŋāĻœā§‡āϰāĻž āϰāĻŋāϟāĻžāĻ°ā§āύ āĻĻ⧇āĻŦ⧇ āύāĻž, āϤāĻŦ⧇ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻŦā§āϞāĻŦ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ URL āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰāĻŦ⧇ āϝāĻž āĻŦā§āϞāĻŦ āĻĄā§‡āϟāĻž āϞ⧋āĻĄ āĻ•āϰāϤ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ + + > 💁 āĻāχ āχāωāφāϰāĻāϞāϟāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āĻŦā§āϰāĻžāωāϜāĻžāϰ⧇ āϏāĻŽāĻ¸ā§āϤ āĻŦā§āϞāĻŦ⧇āϰ āĻŦāĻŋāώāĻĻ āĻŦāĻŋāĻŦāϰāĻŖ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻĒā§āϰāϤāĻŋāϟāĻŋ āφāχāĻŸā§‡āĻŽā§‡āϰ āĻāĻ•āϟāĻŋ `Url` āĻĒā§āϰāĻĒāĻžāĻ°ā§āϟāĻŋ āĻĨāĻžāĻ•āĻŦ⧇, āϝāĻžāϰ āĻĻā§āĻŦāĻžāϰāĻž āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āĻŦā§āϰāĻžāωāϜāĻžāϰ⧇āĻ“ āĻŦā§āϞāĻŦ⧇āϰ āĻŦāĻŋāώāϝāĻŧāĻŦāĻ¸ā§āϤ⧁ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ + + āĻāχ āϕ⧋āĻĄāϟāĻŋ āϤāĻžāϰāĻĒāϰ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻŦā§āϞāĻŦ āϞ⧋āĻĄ āĻ•āϰ⧇, āĻāĻ•āϟāĻŋ `loadJSON` āĻĢāĻžāĻ‚āĻļāύ āĻ•āϞ āĻ•āϰ⧇, āϝāĻž āĻĒāϰāĻŦāĻ°ā§āϤ⧀āϤ⧇ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšāĻŦ⧇āĨ¤ āĻāϟāĻŋ āϤāĻ–āύ āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰ⧇āϰ āύāĻŋāϝāĻŧāĻ¨ā§āĻ¤ā§āϰāĻŖ āϤ⧈āϰāĻŋ āĻ•āϰ⧇ āĻāĻŦāĻ‚ `ready` āχāϭ⧇āĻ¨ā§āĻŸā§‡ āϕ⧋āĻĄ āϝ⧋āĻ— āĻ•āϰ⧇āĨ¤ āĻ“āϝāĻŧ⧇āĻŦ āĻĒ⧇āĻœā§‡ āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰ āĻĒā§āϰāĻĻāĻ°ā§āĻļāĻŋāϤ āĻšāϞ⧇ āĻāχ āχāϭ⧇āĻ¨ā§āϟāϕ⧇ āĻ•āϞ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ + + āĻĒā§āϰāĻ¸ā§āϤ⧁āϤāĻ•ā§ƒāϤ āχāϭ⧇āĻ¨ā§āϟāϟāĻŋ āĻāĻ•āϟāĻŋ Azure Maps āĻĄā§‡āϟāĻž āĻ‰ā§ŽāϏ āϤ⧈āϰāĻŋ āĻ•āϰ⧇ - āĻāĻ•āϟāĻŋ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āϝāĻž GeoJSON āĻĄā§‡āϟāĻž āϧāĻžāϰāĻŖ āĻ•āϰ⧇ āϝāĻž āĻĒāϰ⧇ āĻĒāĻĒ⧁āϞ⧇āĻŸā§‡āĻĄ āĻšāĻŦ⧇āĨ¤ āĻāχ āĻĄā§‡āϟāĻž āϏ⧋āĻ°ā§āϏāϟāĻŋ āϤāĻ–āύ āĻāĻ•āϟāĻŋ āĻŦāĻžāĻŦāϞ āĻŦāĻž āĻŦ⧁āĻĻāĻŦ⧁āĻĻ āĻ¸ā§āϤāϰ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšāϝāĻŧ - āĻāϟāĻŋ GeoJSON āĻāϰ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻŦāĻŋāĻ¨ā§āĻĻ⧁āϕ⧇ āϕ⧇āĻ¨ā§āĻĻā§āϰ āĻ•āϰ⧇ āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰ⧇ āĻŦ⧃āĻ¤ā§āϤ⧇āϰ āĻāĻ•āϟāĻŋ āϏ⧇āϟ āϤ⧈āϰ⧀ āĻ•āϰ⧇āĨ¤ + +1. `loadJSON` āĻĢāĻžāĻ‚āĻļāύāϟāĻŋ `init` āĻĢāĻžāĻ‚āĻļāύ⧇āϰ āύ⧀āĻšā§‡ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āĻŦā§āϞāĻ• āĻšāĻŋāϏ⧇āĻŦ⧇ āϝ⧋āĻ— āĻ•āϰāĻŋāσ + + ```javascript + var map, features; + + function loadJSON(file) { + var xhr = new XMLHttpRequest(); + features = []; + xhr.onreadystatechange = function () { + if (xhr.readyState === XMLHttpRequest.DONE) { + if (xhr.status === 200) { + gps = JSON.parse(xhr.responseText) + features.push( + new atlas.data.Feature(new atlas.data.Point([parseFloat(gps.gps.lon), parseFloat(gps.gps.lat)])) + ) + } + } + }; + xhr.open("GET", file, true); + xhr.send(); + } + ``` + + āĻāχ āĻĢāĻžāĻ‚āĻļāύāϟāĻŋ āĻĢ⧇āϚ āϰ⧁āϟāĻŋāύ āĻĻā§āĻŦāĻžāϰāĻž āĻ•āϞ āĻ•āϰ⧇, JSON āĻĄā§‡āϟāĻžāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ āĻ•āϰāĻž āĻšāϝāĻŧ āĻāĻŦāĻ‚ āĻāϟāĻŋāϕ⧇ āϜāĻŋāĻ“āĻœā§‡āϏāύ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻĻā§āϰāĻžāϘāĻŋāĻŽāĻžāĻ‚āĻļ āĻāĻŦāĻ‚ āĻ…āĻ•ā§āώāĻžāĻ‚āĻļ āĻ¸ā§āĻĨāĻžāύāĻžāĻ™ā§āĻ• āĻšāĻŋāϏāĻžāĻŦ⧇ āϰ⧂āĻĒāĻžāĻ¨ā§āϤāϰāĻŋāϤ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ + āĻāĻ•āĻŦāĻžāϰ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ āĻ•āϰāĻž āĻšāϞ⧇, āĻĄā§‡āϟāĻž āĻāĻ•āϟāĻŋ āϜāĻŋāĻ“āĻœā§‡āϏāύ `āĻĢāĻŋāϚāĻžāϰ` āĻāϰ āĻ…āĻ‚āĻļ āĻšāĻŋāϏāĻžāĻŦ⧇ āϏ⧇āϟ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰāϟāĻŋ āϚāĻžāϞ⧁ āĻšāĻŦ⧇ āĻāĻŦāĻ‚ āĻĄā§‡āϟāĻž āĻĒā§āϞāϟāĻŋāĻ‚ āĻāϰ āĻĒāĻĨ⧇ āϛ⧋āϟ āϛ⧋āϟ āĻŦāĻžāĻŦāϞ āωāĻĒāĻ¸ā§āĻĨāĻŋāϤ āĻšāĻŦ⧇āσ + +1. āĻŦā§āϰāĻžāωāϜāĻžāϰ⧇ HTML āĻĒ⧇āχāϜāϟāĻŋ āϞ⧋āĻĄ āĻ•āϰāĻŋāĨ¤ āĻāϟāĻŋ āĻĒā§āϰāĻĨāĻŽā§‡ āĻŽā§āϝāĻžāĻĒ āϞ⧋āĻĄ āĻ•āϰāĻŦ⧇, āϤāĻžāϰāĻĒāϰ āϏāĻ•āϞ āϜāĻŋāĻĒāĻŋāĻāϏ āĻĄā§‡āϟāĻž āĻ¸ā§āĻŸā§‹āϰ⧇āϜ āĻĨ⧇āϕ⧇ āϏāĻ‚āĻ—ā§āϰāĻš āĻ•āϰ⧇ āϤāĻž āĻŽā§āϝāĻžāĻĒ⧇ āĻĒā§āϞāϟ āĻ•āϰ⧇ āĻĻāĻŋāĻŦ⧇āĨ¤ + + ![A map of Saint Edward State Park near Seattle, with circles showing a path around the edge of the park](../../../../images/map-path.png) + +> 💁 āϏāĻ•āϞ āϕ⧋āĻĄ āĻĒāĻžāĻ“ā§ŸāĻž āϝāĻžāĻŦ⧇ āĻāĻ–āĻžāύ⧇ [code](./code) āĻĢā§‹āĻ˛ā§āĻĄāĻžāϰāϟāĻŋāϤ⧇ āĨ¤ + +--- + +## 🚀 āĻšā§āϝāĻžāϞ⧇āĻžā§āϜ + +āĻāĻ•āϟāĻŋ āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰ⧇ āĻŽāĻžāĻ°ā§āĻ•āĻžāϰ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻĄā§‡āϟāĻž āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻžāϟāĻž āĻŦ⧇āĻļ āĻŦ⧜ āĻāĻ•āϟāĻŋ āϏāĻžāĻĢāĻ˛ā§āϝāĨ¤ āϟāĻžāχāĻŽāĻ¸ā§āĻŸā§āϝāĻžāĻŽā§āĻĒāĻĄ JSON āĻĢāĻžāχāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ…ā§āϝāĻžāύāĻŋāĻŽā§‡āĻļāύ āϝ⧁āĻ•ā§āϤ āĻ•āϰāϤ⧇ āĻāĻŦāĻ‚ āϏāĻŽāϝāĻŧ⧇āϰ āϏāĻžāĻĨ⧇ āϚāĻŋāĻšā§āύāĻŋāϤāĻ•āĻžāϰ⧀āĻĻ⧇āϰ āĻĒāĻĨ āĻĻ⧇āĻ–āĻžāύ⧋āϰ āϜāĻ¨ā§āϝ āĻāχ āĻ“āϝāĻŧ⧇āĻŦ āĻ…ā§āϝāĻžāĻĒāϟāĻŋāϰ āϕ⧀ āφāϰ⧋ āωāĻ¨ā§āύ⧟āύ āϘāϟāĻžāύ⧋ āϝāĻžā§Ÿ? āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āĻ…ā§āϝāĻžāύāĻŋāĻŽā§‡āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ [āĻ•āĻŋāϛ⧁ āύāĻŽā§āύāĻž](https://azuremapscodesamples.azurewebsites.net/) āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϞāĨ¤ + +## āϞ⧇āĻ•āϚāĻžāϰ-āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āϕ⧁āχāϜ + +[āϞ⧇āĻ•āϚāĻžāϰ-āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āϕ⧁āχāϜ](https://brave-island-0b7c7f50f.azurestaticapps.net/quiz/26) + +## āϰāĻŋāĻ­āĻŋāω āĻāĻŦāĻ‚ āĻ¸ā§āĻŦ-āĻ…āĻ§ā§āϝ⧟āύ + +IoT āĻĄāĻŋāĻ­āĻžāχāϏ āύāĻŋā§Ÿā§‡ āĻ•āĻžāϜ āĻ•āϰāĻžāϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ Azure Maps āϖ⧁āĻŦāχ āĻ­āĻžāϞ⧋ āĻāĻ•āϟāĻŋ āĻŸā§āϝ⧁āϞāĨ¤ + +* [Azure Maps documentation āύāĻŋā§Ÿā§‡ Microsoft docs](https://docs.microsoft.com/azure/azure-maps/tutorial-iot-hub-maps?WT.mc_id=academic-17441-jabenn) āĻĨ⧇āϕ⧇ āĻĒā§œā§‡ āχāωāϜ āϕ⧇āχāϏ āϗ⧁āϞ⧋ āφāĻŽāϰāĻž āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ +* āĻāĻ›āĻžā§œāĻžāĻ“ Azure Maps āύāĻŋā§Ÿā§‡ āφāĻŽāĻžāĻĻ⧇āϰ āĻœā§āĻžāĻžāύ āφāϰ⧋ āĻŦāĻžā§œāĻžāύ⧋āϰ āϜāĻ¨ā§āϝ āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āϜāĻ¨ā§āϝ [route finding app āϤ⧈āϰ⧀ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ Azure Maps self-guided learning module āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇](https://docs.microsoft.com/learn/modules/create-your-first-app-with-azure-maps/?WT.mc_id=academic-17441-jabenn) āĨ¤ + +## āĻāϏāĻžāχāύāĻŽā§‡āĻ¨ā§āϟ + +[āĻ…ā§āϝāĻžāĻĒ āĻĄā§‡āĻĒā§āϞ⧟ āĻ•āϰāĻž](assignment.bn.md) diff --git a/3-transport/lessons/3-visualize-location-data/translations/assignment.bn.md b/3-transport/lessons/3-visualize-location-data/translations/assignment.bn.md new file mode 100644 index 00000000..e2ed9527 --- /dev/null +++ b/3-transport/lessons/3-visualize-location-data/translations/assignment.bn.md @@ -0,0 +1,13 @@ +# āĻ…ā§āϝāĻžāĻĒ āĻĄā§‡āĻĒā§āϞ⧟ āĻ•āϰāĻž + +## āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻžāĻŦāϞ⧀ + +āφāĻŽāĻžāĻĻ⧇āϰ āĻ…ā§āϝāĻžāĻĒāϟāĻŋ āĻĄā§‡āĻĒā§āϞ⧟ āĻ•āϰāĻžāϰ āĻŦ⧇āĻļ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āωāĻĒāĻžāϝāĻŧ āϰāϝāĻŧ⧇āϛ⧇ āϝāĻžāϤ⧇ āφāĻŽāϰāĻž āĻāϟāĻŋ āϏāĻžāϰāĻž āĻŦāĻŋāĻļā§āĻŦ⧇āϰ āϏāĻžāĻĨ⧇ āĻļā§‡ā§ŸāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āĻ—āĻŋāϟāĻšāĻžāĻŦ āĻĒ⧇āχāϜ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻŦāĻž āϕ⧋āύ āϏāĻžāĻ°ā§āĻ­āĻŋāϏ āĻĒā§āϰ⧋āĻ­āĻžāχāĻĄāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāĻ“ āϝāĻžā§ŸāĨ¤ āĻāϟāĻŋ āĻ•āϰāĻžāϰ āĻāĻ•āϟāĻŋ āĻĻ⧁āĻ°ā§āĻĻāĻžāĻ¨ā§āϤ āωāĻĒāĻžāϝāĻŧ āĻšāϞ Azure Static Web Apps āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāĨ¤ āĻāχāĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻ“āϝāĻŧ⧇āĻŦ āĻ…ā§āϝāĻžāĻĒ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āĻāĻŦāĻ‚ [āĻāχ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻžāĻŦāϞ⧀](https://github.com/Azure/static-web-apps-cli) āĻ…āύ⧁āϏāϰāĻŖ āĻ•āϰ⧇ āĻ…āĻĨāĻŦāĻž [āĻāχ āĻ­āĻŋāĻĄāĻŋāĻ“āϗ⧁āϞāĻŋ](https://www.youtube.com/watch?v=ADVGIXciYn8&list=PLlrxD0HtieHgMPeBaDQFx9yNuFxx6S1VG&index=3) āĻĻ⧇āϖ⧇ āĻāϟāĻŋāϕ⧇ āĻ•ā§āϞāĻžāωāĻĄā§‡ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ + +āĻ…ā§āϝāĻžāϜ⧁āϰ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻ“āϝāĻŧ⧇āĻŦ āĻ…ā§āϝāĻžāĻĒāϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āĻāĻ•āϟāĻŋ āϏ⧁āĻŦāĻŋāϧāĻž āĻšāϞ āϝ⧇ āφāĻŽāϰāĻž āĻĒā§‹āĻ°ā§āϟāĻžāϞ⧇ āϝ⧇āϕ⧋āύ API āϕ⧀ āϞ⧁āĻ•āĻŋāϝāĻŧ⧇ āϰāĻžāĻ–āϤ⧇ āĻĒāĻžāϰāĻŋ, āϤāĻžāχ āφāĻŽāĻžāĻĻ⧇āϰ āϏāĻžāĻŦāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒāĻļāύ āϕ⧀ āϕ⧇ āĻāĻ•āϟāĻŋ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ āĻšāĻŋāϏāĻžāĻŦ⧇ āϰāĻŋāĻĢā§āϝāĻžāĻ•ā§āϟāϰ āĻ•āϰāĻžāϰ āĻāĻŦāĻ‚ āĻ•ā§āϞāĻžāωāĻĄā§‡ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāĻžāϰ āĻāχ āϏ⧁āϝ⧋āĻ—āϟāĻŋ āύāĻŋāϤ⧇ āĻĒāĻžāϰāĻŦā§‹ āφāĻŽāϰāĻžāĨ¤ + +## āĻāϏāĻžāχāύāĻŽā§‡āĻ¨ā§āϟ āĻŽā§‚āĻ˛ā§āϝāĻžā§Ÿāύ āĻŽāĻžāύāĻĻāĻ¨ā§āĻĄ + +| āĻ•ā§āϰāĻžāχāĻŸā§‡āϰāĻŋ⧟āĻž | āĻĻ⧃āĻˇā§āϟāĻžāĻ¨ā§āϤāĻŽā§‚āϞāĻ• (āϏāĻ°ā§āĻŦā§‹āĻ¤ā§āϤāĻŽ) | āĻĒāĻ°ā§āϝāĻžāĻĒā§āϤ (āĻŽāĻžāĻāĻžāϰāĻŋ) | āωāĻ¨ā§āύāϤāĻŋ āĻĒā§āϰāϝāĻŧā§‹āϜāύ (āύāĻŋāĻŽā§āύāĻŽāĻžāύ) | +| --------- | ------------------ | -------------- | -------------------- | +| |āĻāĻ•āϟāĻŋ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ⧀ āĻ“āϝāĻŧ⧇āĻŦ āĻ…ā§āϝāĻžāĻĒāϕ⧇ āĻāĻ•āϟāĻŋ GitHub āϰ⧇āĻĒā§‹āϤ⧇ āωāĻĒāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻž āĻšāϞ⧋, āϝāĻžāϰ āϏāĻžāĻŦāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒāĻļāύ āϕ⧀ āĻ•ā§āϞāĻžāωāĻĄā§‡ āϏāĻ‚āϰāĻ•ā§āώāĻŋāϤ āĻĨāĻžāϕ⧇ āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻ•āϞ āĻ•āϰāĻž āĻšāϝāĻŧ | āĻāĻ•āϟāĻŋ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ⧀ āĻ“āϝāĻŧ⧇āĻŦ āĻ…ā§āϝāĻžāĻĒ āĻāĻ•āϟāĻŋ GitHub āϰ⧇āĻĒā§‹āϤ⧇ āωāĻĒāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻž āĻšāϞ⧋, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāϰ āϏāĻžāĻŦāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒāĻļāύ āϕ⧀ āĻ•ā§āϞāĻžāωāĻĄā§‡ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāĻž āĻšā§ŸāύāĻŋ | āĻ“āϝāĻŧ⧇āĻŦ āĻ…ā§āϝāĻžāĻĒāϟāĻŋāϤ⧇ āĻŦāĻžāĻ— āφāϛ⧇ āĻŦāĻž āϏāĻ āĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰāϛ⧇āύāĻž | diff --git a/translations/README.bn.md b/translations/README.bn.md index 675f9d94..535547b4 100644 --- a/translations/README.bn.md +++ b/translations/README.bn.md @@ -87,7 +87,7 @@ | 10 | [āĻĢāĻžāĻ°ā§āĻŽ](../2-farm) | āωāĻĻā§āĻ­āĻŋāĻĻ⧇āϰ āύāĻŋāϰāĻžāĻĒāĻ¤ā§āϤāĻž āύāĻŋāĻļā§āϚāĻŋāϤāĻ•āϰāĻŖ | āφāχāĻ“āϟāĻŋ āϤ⧇ āύāĻŋāϰāĻžāĻĒāĻ¤ā§āϤāĻž āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϜāĻžāύāĻž āĻāĻŦāĻ‚ Key āĻ“ Certificate āĻāϰ āϏāĻžāĻšāĻžāĻ¯ā§āϝ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āωāĻĻā§āĻ­āĻŋāĻĻāϟāĻŋāϕ⧇ āϕ⧀āĻ­āĻžāĻŦ⧇ āϏ⧁āϰāĻ•ā§āώāĻŋāϤ āϰāĻžāĻ–āĻž āϝāĻžāϝāĻŧ āϤāĻž āĻļ⧇āĻ–āĻž | [āωāĻĻā§āĻ­āĻŋāĻĻ⧇āϰ āύāĻŋāϰāĻžāĻĒāĻ¤ā§āϤāĻž āύāĻŋāĻļā§āϚāĻŋāϤāĻ•āϰāĻŖ](../2-farm/lessons/6-keep-your-plant-secure/translations/README.bn.md) | | 11 | [āĻĒāϰāĻŋāĻŦāĻšāύ](../3-transport) | āϞ⧋āϕ⧇āĻļāύ āĻŸā§āĻ°ā§āϝāĻžāĻ•āĻŋāĻ‚ | āφāχāĻ“āϟāĻŋ āĻĄāĻŋāĻ­āĻžāχāϏ⧇ āϜāĻŋāĻĒāĻŋāĻāϏ āϞ⧋āϕ⧇āĻļāύ āĻŸā§āĻ°ā§āϝāĻžāĻ•āĻŋāĻ‚ āĻļ⧇āĻ–āĻž | [āϞ⧋āϕ⧇āĻļāύ āĻŸā§āĻ°ā§āϝāĻžāĻ•āĻŋāĻ‚](../3-transport/lessons/1-location-tracking/translations/README.bn.md) | | 12 | [āĻĒāϰāĻŋāĻŦāĻšāύ](../3-transport) | āϞ⧋āϕ⧇āĻļāύ āĻĄā§‡āϟāĻž āϏāĻ‚āϰāĻ•ā§āώāĻŖ | āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āϏāĻŽā§Ÿā§‡ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ āĻŦāĻž āϚāĻŋāĻ¤ā§āϰāĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āĻĄā§‡āϟāĻž āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ (Visualization) āĻāϰ āϜāĻ¨ā§āϝ āφāχāĻ“āϟāĻŋ āĻĄā§‡āϟāĻž āϕ⧀āĻ­āĻžāĻŦ⧇ āĻ¸ā§āĻŸā§‹āϰ āĻ•āϰāĻž āϝāĻžā§Ÿ āϤāĻž āϜāĻžāύāĻž | [āϞ⧋āϕ⧇āĻļāύ āĻĄā§‡āϟāĻž āϏāĻ‚āϰāĻ•ā§āώāĻŖ](../3-transport/lessons/2-store-location-data/translations/README.bn.md) | -| 13 | [āĻĒāϰāĻŋāĻŦāĻšāύ](../3-transport) | Visualize location data |āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰ⧇ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāύ⧇āϰ āĻĄā§‡āϟāĻž āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰāĻž āĻāĻŦāĻ‚ āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰāϗ⧁āϞāĻŋ āϕ⧀āĻ­āĻžāĻŦ⧇ ⧍āϟāĻŋ āĻŽāĻžāĻ¤ā§āϰāĻžāϝāĻŧ āĻŦāĻžāĻ¸ā§āϤāĻŦ āĻ¤ā§āϰāĻŋāĻŽāĻžāĻ¤ā§āϰāĻŋāĻ• āĻŦāĻŋāĻļā§āĻŦ⧇āϰ āωāĻĒāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇ āϏ⧇ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻœā§āĻžāĻžāύ āĻ…āĻ°ā§āϜāύ | [Visualize location data](../3-transport/lessons/3-visualize-location-data/README.md) | +| 13 | [āĻĒāϰāĻŋāĻŦāĻšāύ](../3-transport) | āϞ⧋āϕ⧇āĻļāύ āĻĄā§‡āϟāĻž āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ |āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰ⧇ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāύ⧇āϰ āĻĄā§‡āϟāĻž āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰāĻž āĻāĻŦāĻ‚ āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰāϗ⧁āϞāĻŋ āϕ⧀āĻ­āĻžāĻŦ⧇ ⧍āϟāĻŋ āĻŽāĻžāĻ¤ā§āϰāĻžāϝāĻŧ āĻŦāĻžāĻ¸ā§āϤāĻŦ āĻ¤ā§āϰāĻŋāĻŽāĻžāĻ¤ā§āϰāĻŋāĻ• āĻŦāĻŋāĻļā§āĻŦ⧇āϰ āωāĻĒāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇ āϏ⧇ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻœā§āĻžāĻžāύ āĻ…āĻ°ā§āϜāύ | [āϞ⧋āϕ⧇āĻļāύ āĻĄā§‡āϟāĻž āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ](../3-transport/lessons/3-visualize-location-data/translations/README.bn.md) | | 14 | [āĻĒāϰāĻŋāĻŦāĻšāύ](../3-transport) | Geofences | Geofences āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϜāĻžāύāĻž āĻāĻŦāĻ‚ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϏāĻžāĻĒā§āϞāĻžāχ āĻšā§‡āχāύ⧇āϰ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻĒāĻ°ā§āϝāĻžā§Ÿā§‡āϰ āĻŦāĻžāĻšāύāϗ⧁āϞ⧋ āϝāĻ–āύ āĻ—āĻ¨ā§āϤāĻŦā§āϝ⧇āϰ āĻ•āĻžāĻ›āĻžāĻ•āĻžāĻ›āĻŋ āĻĒ⧌āρāĻ›āĻžā§Ÿ āϤāĻ–āύ āĻāϞāĻžāĻ°ā§āϟ āĻĻā§‡ā§ŸāĻž āϝāĻžā§Ÿ āϤāĻž āĻļ⧇āĻ–āĻž | [Geofences](../3-transport/lessons/4-geofences/README.md) | | 15 | [āĻ‰ā§ŽāĻĒāĻžāĻĻāύ](../4-manufacturing) | Train a fruit quality detector | āĻ•ā§āϞāĻžāωāĻĄā§‡āϰ āĻ›āĻŦāĻŋ āĻļā§āϰ⧇āĻŖāĻŋāĻŦāĻĻā§āϧāĻ•āϰāĻŖ āĻŽāĻĄā§‡āϞāϕ⧇ (Image Classifier) āĻĢāϞ⧇āϰ āĻŽāĻžāύ āϏāύāĻžāĻ•ā§āϤ āĻ•āϰāϤ⧇ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŋāϤ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϏ⧇ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϜāĻžāύāĻž | [Train a fruit quality detector](../4-manufacturing/lessons/1-train-fruit-detector/README.md) | | 16 | [āĻ‰ā§ŽāĻĒāĻžāĻĻāύ](../4-manufacturing) | Check fruit quality from an IoT device | āφāχāĻ“āϟāĻŋ āĻĄāĻŋāĻ­āĻžāχāϏ⧇ āĻĢāϞ⧇āϰ āϗ⧁āĻŖāĻ—āϤ āĻŽāĻžāύ āϏāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀ āĻŦā§āϝāĻŦāĻšāĻžāϰ | [Check fruit quality from an IoT device](../4-manufacturing/lessons/2-check-fruit-from-device/README.md) | From fa208424d253ed3eb90fee00badd716a7ed43217 Mon Sep 17 00:00:00 2001 From: Jim Bennett Date: Fri, 10 Sep 2021 11:05:44 -0700 Subject: [PATCH 04/35] Case fix (#307) * Update README.md * Spelling fixes * Update hardware.md * Adding IoT for beginners episode * Adding intro video * Fixing formatting of read more and self study sections. * Adding instructions for installing the ReSpeaker * Adding auth to language understanding * Adding Wio terminal timer setting * Update config.h * Fixing links and images * Increasing version numbers for SD card fix * Adding SD card requirement * speech and translations * Adding more on translations * All Wio Terminal now working except playing audio * Adding more details on virtual environments. * Fixing tracking links * Update app.py * Changing casing for case sensitive OSes --- .../1-introduction-to-iot/translations/virtual-device.pt.md | 6 +++--- .../translations/virtual-device.zh-cn.md | 2 +- .../lessons/1-introduction-to-iot/virtual-device.md | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/1-getting-started/lessons/1-introduction-to-iot/translations/virtual-device.pt.md b/1-getting-started/lessons/1-introduction-to-iot/translations/virtual-device.pt.md index cf970634..e041e696 100644 --- a/1-getting-started/lessons/1-introduction-to-iot/translations/virtual-device.pt.md +++ b/1-getting-started/lessons/1-introduction-to-iot/translations/virtual-device.pt.md @@ -177,7 +177,7 @@ Como uma segunda etapa 'Hello World', vocÃĒ executarÃĄ o aplicativo CounterFit e 1. A partir do terminal do VS Code, inicie o aplicativo CounterFit com o seguinte comando: ```sh - CounterFit + counterfit ``` O aplicativo começarÃĄ a funcionar e abrir no seu navegador da web: @@ -193,7 +193,7 @@ Como uma segunda etapa 'Hello World', vocÃĒ executarÃĄ o aplicativo CounterFit e CounterFitConnection.init('127.0.0.1', 5000) ``` - Este cÃŗdigo importa a classe `CounterFitConnection` do mÃŗdulo` counterfit_connection`, que vem do pacote pip `counterfit-connection` que vocÃĒ instalou anteriormente. Em seguida, ele inicializa uma conexÃŖo com o aplicativo CounterFit em execuÃ§ÃŖo em `127.0.0.1`, que Ê um endereço IP que vocÃĒ sempre pode usar para acessar seu computador local (muitas vezes referido como *localhost*), na porta 5000. + Este cÃŗdigo importa a classe `CounterFitConnection` do mÃŗdulo `counterfit_connection`, que vem do pacote pip `counterfit-connection` que vocÃĒ instalou anteriormente. Em seguida, ele inicializa uma conexÃŖo com o aplicativo CounterFit em execuÃ§ÃŖo em `127.0.0.1`, que Ê um endereço IP que vocÃĒ sempre pode usar para acessar seu computador local (muitas vezes referido como *localhost*), na porta 5000. > 💁 Se vocÃĒ tiver outros aplicativos em execuÃ§ÃŖo na porta 5000, pode alterar isso atualizando a porta no cÃŗdigo e executando o CounterFit usando `CounterFit --port `, substituindo `` pela porta que deseja usar. @@ -207,4 +207,4 @@ Como uma segunda etapa 'Hello World', vocÃĒ executarÃĄ o aplicativo CounterFit e > 💁 VocÃĒ pode encontrar este cÃŗdigo na pasta [code/virtual-device](../code/virtual-device). -😀 Sua conexÃŖo com o hardware foi um sucesso! \ No newline at end of file +😀 Sua conexÃŖo com o hardware foi um sucesso! diff --git a/1-getting-started/lessons/1-introduction-to-iot/translations/virtual-device.zh-cn.md b/1-getting-started/lessons/1-introduction-to-iot/translations/virtual-device.zh-cn.md index f7eff393..5ab1989a 100644 --- a/1-getting-started/lessons/1-introduction-to-iot/translations/virtual-device.zh-cn.md +++ b/1-getting-started/lessons/1-introduction-to-iot/translations/virtual-device.zh-cn.md @@ -177,7 +177,7 @@ Python įš„åŧē大功čƒŊ䚋一是čƒŊå¤ŸåŽ‰čŖ… [pip čŊ¯äģļ包](https://pypi.org)īŧ› 1. äģŽ VS Code įģˆį̝īŧŒį”¨äģĨä¸‹įš„å‘Ŋäģ¤å¯åЍ CounterFit åē”ᔍīŧš ```sh - CounterFit + counterfit ``` åē”ᔍ将åŧ€å§‹čŋčĄŒäģĨ及在äŊ įš„įŊ‘éĄĩæĩč§ˆå™¨æ‰“åŧ€īŧš 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 40f57d5c..4b6e8d33 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 @@ -188,7 +188,7 @@ As a second 'Hello World' step, you will run the CounterFit app and connect your 1. From the VS Code terminal, launch the CounterFit app with the following command: ```sh - CounterFit + counterfit ``` The app will start running and open in your web browser: From b805c4c36500e76bece1ce41db2046002a2364da Mon Sep 17 00:00:00 2001 From: Flex Zhong Date: Wed, 15 Sep 2021 00:12:31 +0800 Subject: [PATCH 05/35] update translations (#308) * Delete .dummy.md * upd --- .../translations/README.hi.md | 3 +-- .../translations/README.zh-cn.md | 14 +++++++------- 6-consumer/translations/.dummy.md | 9 --------- 3 files changed, 8 insertions(+), 18 deletions(-) delete mode 100644 6-consumer/translations/.dummy.md diff --git a/1-getting-started/lessons/1-introduction-to-iot/translations/README.hi.md b/1-getting-started/lessons/1-introduction-to-iot/translations/README.hi.md index 79b91fcd..5e4a9e63 100644 --- a/1-getting-started/lessons/1-introduction-to-iot/translations/README.hi.md +++ b/1-getting-started/lessons/1-introduction-to-iot/translations/README.hi.md @@ -218,5 +218,4 @@ IoT ⤕āĨā¤› ā¤ĩāĨā¤¯ā¤žā¤Ē⤕ ā¤¸ā¤ŽāĨ‚ā¤šāĨ‹ā¤‚ ā¤ŽāĨ‡ā¤‚ ⤉ā¤Ē⤝āĨ‹ā¤— ## ā¤…ā¤¸ā¤žā¤‡ā¤¨ā¤ŽāĨ‡ā¤‚ā¤Ÿ -[ā¤ā¤• IoT ā¤ĒāĨā¤°āĨ‹ā¤œāĨ‡ā¤•āĨā¤Ÿ ⤕āĨ€ ā¤œā¤žā¤ā¤š ⤕⤰āĨ‡ā¤‚](assignment.md) -
+[ā¤ā¤• IoT ā¤ĒāĨā¤°āĨ‹ā¤œāĨ‡ā¤•āĨā¤Ÿ ⤕āĨ€ ā¤œā¤žā¤ā¤š ⤕⤰āĨ‡ā¤‚](assignment.hi.md) \ No newline at end of file diff --git a/1-getting-started/lessons/1-introduction-to-iot/translations/README.zh-cn.md b/1-getting-started/lessons/1-introduction-to-iot/translations/README.zh-cn.md index 7523b87f..d4739b2a 100644 --- a/1-getting-started/lessons/1-introduction-to-iot/translations/README.zh-cn.md +++ b/1-getting-started/lessons/1-introduction-to-iot/translations/README.zh-cn.md @@ -14,11 +14,11 @@ æœŦč¯žį¨‹å°†æļĩį›–īŧš -* [äģ€äšˆæ˜¯ â€œį‰Šč”įŊ‘īŧˆIoTīŧ‰â€īŧŸ](#what-is-the-internet-of-things) -* [IoT čŽžå¤‡](#iot-devices) -* [莞įŊŽäŊ įš„čŽžå¤‡](#set-up-your-device) -* [IoT įš„åē”ᔍåœē景](#applications-of-iot) -* [在äŊ įš„å‘¨å›´įš„ IoT čŽžå¤‡äž‹å­](#examples-of-iot-devices-you-may-have-around-you) +* [äģ€äšˆæ˜¯ â€œį‰Šč”įŊ‘īŧˆIoTīŧ‰â€īŧŸ](#äģ€äšˆæ˜¯-į‰Šč”įŊ‘iot) +* [į‰Šč”įŊ‘čŽžå¤‡](#į‰Šč”įŊ‘čŽžå¤‡) +* [莞įŊŽäŊ įš„čŽžå¤‡](#莞įŊŽäŊ įš„čŽžå¤‡) +* [į‰Šč”įŊ‘įš„åē”ᔍåœē景](#į‰Šč”įŊ‘įš„åē”ᔍåœē景) +* [在äŊ įš„å‘¨å›´įš„į‰Šč”įŊ‘čŽžå¤‡äž‹å­](#在äŊ įš„å‘¨å›´įš„į‰Šč”įŊ‘čŽžå¤‡äž‹å­) ## äģ€äšˆæ˜¯ â€œį‰Šč”įŊ‘īŧˆIoTīŧ‰â€īŧŸ @@ -28,7 +28,7 @@ > > **æ‰§čĄŒå™¨** 将į”ĩäŋĄåˇčŊŦæĸæˆįŽ°åŽžä¸–į•Œįš„äē¤äē’īŧŒäž‹åĻ‚īŧšč§Ļ发åŧ€å…ŗīŧŒæ‰“åŧ€į¯īŧŒå‘å‡ēåŖ°éŸŗæˆ–å°†æŽ§åˆļäŋĄåˇäŧ é€åˆ°å…ļ厃įĄŦäģļīŧŒäž‹åĻ‚īŧŒæ‰“åŧ€į”ĩæēæ’åē§ã€‚ -į‰Šč”įŊ‘äŊœä¸ē一ä¸Ē技术éĸ†åŸŸīŧŒä¸äģ…æ˜¯čŽžå¤‡īŧŒåŽƒäšŸåŒ…åĢä瑿œåŠĄīŧ›čŋ™ä盿œåŠĄčƒŊ处ᐆäŧ æ„Ÿå™¨æ•°æŽīŧŒæˆ–č€…å°†č¯ˇæą‚äŧ é€įģ™čˇŸį‰Šč”įŊ‘čŽžå¤‡æœ‰čŋžæŽĨįš„æ‰§čĄŒå™¨ã€‚åŽƒäšŸåŒ…æ‹Ŧæ˛Ąæœ‰æˆ–ä¸éœ€čρäē’联įŊ‘čŋžæŽĨįš„čŽžå¤‡īŧ›åރäģŦ通常čĸĢį§°ä¸ē“边įŧ˜čŽžå¤‡īŧˆedge devicesīŧ‰â€īŧŒč€Œä¸”åރäģŦ有čƒŊåŠ›į”¨åŸēäēŽäē‘įš„AIæ¨Ąåž‹č‡Ēåˇąå¤„į†ä¸Žå›žåē”äŧ æ„Ÿå™¨įš„æ•°æŽã€‚ +į‰Šč”įŊ‘äŊœä¸ē一ä¸Ē技术éĸ†åŸŸīŧŒä¸äģ…æ˜¯čŽžå¤‡īŧŒåŽƒäšŸåŒ…åĢä瑿œåŠĄīŧ›čŋ™ä盿œåŠĄčƒŊ处ᐆäŧ æ„Ÿå™¨æ•°æŽīŧŒæˆ–č€…å°†č¯ˇæą‚äŧ é€įģ™čˇŸį‰Šč”įŊ‘čŽžå¤‡æœ‰čŋžæŽĨįš„æ‰§čĄŒå™¨ã€‚åŽƒäšŸåŒ…æ‹Ŧæ˛Ąæœ‰æˆ–ä¸éœ€čρäē’联įŊ‘čŋžæŽĨįš„čŽžå¤‡īŧ›åރäģŦ通常čĸĢį§°ä¸ē“边įŧ˜čŽžå¤‡īŧˆedge devicesīŧ‰â€īŧŒč€Œä¸”åރäģŦ有čƒŊåŠ›į”¨åŸēäēŽäē‘įš„ AI æ¨Ąåž‹č‡Ēåˇąå¤„į†ä¸Žå›žåē”äŧ æ„Ÿå™¨įš„æ•°æŽã€‚ į‰Šč”įŊ‘是一ä¸ĒåŋĢé€Ÿå‘åą•įš„æŠ€æœ¯éĸ†åŸŸã€‚专åŽļéĸ„čŽĄåˆ° 2020 åē•īŧŒä¸–į•Œä¸Šæœ‰ä¸‰į™žäēŋį‰Šč”įŊ‘čŽžå¤‡éƒ¨įŊ˛åšļčŋžæŽĨ到äē’联įŊ‘。专åŽļ也éĸ„čŽĄåˆ° 2025 åš´īŧŒį‰Šč”įŊ‘čŽžå¤‡å°†æ”ļ集大æĻ‚ 80 ZBīŧˆ80 万äēŋ GBīŧ‰įš„æ•°æŽã€‚čŋ™æ˜¯åˇ¨é‡įš„æ•°æŽīŧ @@ -130,7 +130,7 @@ Raspberry Pi 是å…ļ中最æĩčĄŒįš„单æŋæœē。 æŒ‰į…§į›¸å…ŗįš„æŒ‡å—æĨ莞įŊŽäŊ įš„čŽžå¤‡īŧŒåšļ厌成一ä¸Ē“Hello Worldâ€éĄšį›Žã€‚æˆ‘äģŦ将ᔍ 4 ä¸Ēč¯žį¨‹åˆ›é€ ä¸€ä¸Ēį‰Šč”įŊ‘å¤œį¯īŧŒč€Œčŋ™æ˜¯įŦŦ一æ­Ĩ。 * [ArduinoīŧšWio Terminal](wio-terminal.zh-cn.md) -* [单æŋæœēīŧšRaspberry Pi](../pi.md) +* [单æŋæœēīŧšRaspberry Pi](pi.zh-cn.md) * [单æŋæœēīŧšč™šæ‹ŸčŽžå¤‡](virtual-device.zh-cn.md) 您将äŊŋᔍ VS Code 在 Arduino 和单æŋæœē上įŧ–į¨‹ã€‚åĻ‚æžœæ‚¨äģĨ前äģŽæœĒäŊŋᔍčŋ‡åރīŧŒč¯ˇåœ¨ [VS Code įĢ™į‚š](https://code.visualstudio.com/?WT.mc_id=academic-17441-jabenn)上阅č¯ģæ›´å¤šį›¸å…ŗäŋĄæ¯ã€‚ diff --git a/6-consumer/translations/.dummy.md b/6-consumer/translations/.dummy.md deleted file mode 100644 index 6e7db247..00000000 --- a/6-consumer/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! From aec0ce880e03a24774d75f44fbbbaccb2079943e Mon Sep 17 00:00:00 2001 From: Jim Bennett Date: Tue, 14 Sep 2021 09:13:51 -0700 Subject: [PATCH 06/35] renaming to change case, step 1 --- .../translations/{Assignment.hi.md => ssignment.hi.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename 1-getting-started/lessons/1-introduction-to-iot/translations/{Assignment.hi.md => ssignment.hi.md} (100%) diff --git a/1-getting-started/lessons/1-introduction-to-iot/translations/Assignment.hi.md b/1-getting-started/lessons/1-introduction-to-iot/translations/ssignment.hi.md similarity index 100% rename from 1-getting-started/lessons/1-introduction-to-iot/translations/Assignment.hi.md rename to 1-getting-started/lessons/1-introduction-to-iot/translations/ssignment.hi.md From 294934d47ceab525f8c7c5bd22aa39952d3ba651 Mon Sep 17 00:00:00 2001 From: Jim Bennett Date: Tue, 14 Sep 2021 09:14:08 -0700 Subject: [PATCH 07/35] renaming to change case step 2 --- .../translations/{ssignment.hi.md => assignment.hi.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename 1-getting-started/lessons/1-introduction-to-iot/translations/{ssignment.hi.md => assignment.hi.md} (100%) diff --git a/1-getting-started/lessons/1-introduction-to-iot/translations/ssignment.hi.md b/1-getting-started/lessons/1-introduction-to-iot/translations/assignment.hi.md similarity index 100% rename from 1-getting-started/lessons/1-introduction-to-iot/translations/ssignment.hi.md rename to 1-getting-started/lessons/1-introduction-to-iot/translations/assignment.hi.md From 5f5c60a5422e52f982662dd6beaf7f58167cf390 Mon Sep 17 00:00:00 2001 From: Vianney Gall <41265342+IterateMe@users.noreply.github.com> Date: Tue, 14 Sep 2021 14:57:05 -0400 Subject: [PATCH 08/35] French translation issue #288 - Root folder translations & lesson 2.1 (#297) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * - Added README.fr.md in the root folder - Translated the whole leçon 2.1 * just added the whole content * small updates in root folder * Unnecessary shields removed and some corrections have been made from Charles's review * Translation of all lessons of the root README * Translation of for-teachers.md * Translation of hardware.md * Translation of CODE_OF_CONDUCT.md * Translation of CODE_OF_CONDUCT.md * Implement suggested changes from the charles's PR review * Implement suggested changes from the charles's PR review * Implement suggested changes from the charles's PR review * Implement suggested changes from the charles's PR review * Changed the path to the translated README because they were not working from the translated ones * Small change * Resolved unworking links in hardware.fr.md * Removed the shields where it was not necessary as Jim suggested * small correction * Removed the shields and comments as requested by Jim * small update Co-authored-by: Jim Bennett --- .../translations/README.fr.md | 270 ++++++++++++++++++ .../translations/assignment.fr.md | 43 +++ .../translations/pi-temp.fr.md | 111 +++++++ .../single-board-computer-temp-publish.fr.md | 57 ++++ .../translations/virtual-device-temp.fr.md | 140 +++++++++ .../wio-terminal-temp-publish.fr.md | 68 +++++ .../translations/wio-terminal-temp.fr.md | 129 +++++++++ .../translations/README.fr.md | 262 +++++++++++++++++ 2-farm/translations/README.fr.md | 22 ++ README.md | 1 + SECURITY.md | 4 +- translations/CODE_OF_CONDUCT.fr.md | 9 + translations/CONTRIBUTING.fr.md | 12 + translations/README.fr.md | 136 +++++++++ translations/SECURITY.fr.md | 41 +++ translations/SUPPORT.fr.md | 11 + translations/TRANSLATIONS.fr.md | 26 ++ translations/for-teachers.fr.md | 27 ++ translations/hardware.fr.md | 107 +++++++ 19 files changed, 1474 insertions(+), 2 deletions(-) create mode 100644 2-farm/lessons/1-predict-plant-growth/translations/README.fr.md create mode 100644 2-farm/lessons/1-predict-plant-growth/translations/assignment.fr.md create mode 100644 2-farm/lessons/1-predict-plant-growth/translations/pi-temp.fr.md create mode 100644 2-farm/lessons/1-predict-plant-growth/translations/single-board-computer-temp-publish.fr.md create mode 100644 2-farm/lessons/1-predict-plant-growth/translations/virtual-device-temp.fr.md create mode 100644 2-farm/lessons/1-predict-plant-growth/translations/wio-terminal-temp-publish.fr.md create mode 100644 2-farm/lessons/1-predict-plant-growth/translations/wio-terminal-temp.fr.md create mode 100644 2-farm/lessons/2-detect-soil-moisture/translations/README.fr.md create mode 100644 2-farm/translations/README.fr.md create mode 100644 translations/CODE_OF_CONDUCT.fr.md create mode 100644 translations/CONTRIBUTING.fr.md create mode 100644 translations/README.fr.md create mode 100644 translations/SECURITY.fr.md create mode 100644 translations/SUPPORT.fr.md create mode 100644 translations/TRANSLATIONS.fr.md create mode 100644 translations/for-teachers.fr.md create mode 100644 translations/hardware.fr.md diff --git a/2-farm/lessons/1-predict-plant-growth/translations/README.fr.md b/2-farm/lessons/1-predict-plant-growth/translations/README.fr.md new file mode 100644 index 00000000..2efa34c4 --- /dev/null +++ b/2-farm/lessons/1-predict-plant-growth/translations/README.fr.md @@ -0,0 +1,270 @@ +# Anticiper la croissance de ses plantes avec l'IoT + +![Un apperçu de cette leçon](../../../../sketchnotes/lesson-5.jpg) + +> IllustrÊ par [Nitya Narasimhan](https://github.com/nitya). Click the image for a larger version. + +## Questionnaire de prÊlecture + +[Questionnaire de prÊlecture](https://brave-island-0b7c7f50f.azurestaticapps.net/quiz/9) + +## Introduction + +Les plantes ont besoin de certaines choses pour pousser : de l'eau, du dioxyde de carbone, des nutriments, de la lumière et de la chaleur. Dans cette leçon, vous apprendrez à calculer les taux de croissance et de maturitÊ des plantes en mesurant la tempÊrature de l'air. + +Dans cette leçon, nous allons couvrir : + +* [Agriculture digitale](#agriculture-digitale) +* [L'importance de la tempÊrature dans l'agriculture](#l'importance-de-la-tempÊrature-dans-l'agriculture) +* [La mesure de la tempÊrature ambiante](#la-mesure-de-la-tempÊrature-ambiante) +* [DegrÊs jours de croissance (DJC)](#degrÊs-jours-de-croissance) +* [Calcul du DJC à l'aide de donnÊes de senseurs](#calcul-du-DJC-à-l'aide-de-donnÊes-de-senseurs) + +## Agriculture digitale + +L'agriculture numÊrique transforme notre façon de cultiver, en utilisant des outils pour collecter, stocker et analyser les donnÊes issues de l'agriculture. Nous sommes actuellement dans une pÊriode dÊcrite comme la "quatrième rÊvolution industrielle" par le Forum Êconomique mondial, et l'essor de l'agriculture numÊrique a ÊtÊ qualifiÊ de "quatrième rÊvolution agricole", ou "agriculture 4.0". + +> 🎓 Le terme "agriculture numÊrique" englobe Êgalement l'ensemble de la "chaÃŽne de valeur agricole", c'est-à-dire tout le parcours de la ferme à la table. Cela inclut le suivi de la qualitÊ des produits lors de leur expÊdition et de leur transformation, les systèmes d'entreposage et de commerce Êlectronique, et mÃĒme les applications de location de tracteurs ! + +Ces changements permettent aux agriculteurs d'augmenter leurs rendements, d'utiliser moins d'engrais et de pesticides et d'arroser plus efficacement. Bien qu'ils soient principalement utilisÊs dans les pays riches, le prix des capteurs et autres dispositifs diminue lentement, ce qui les rend plus accessibles dans les pays en dÊveloppement. + +Certaines techniques rendues possibles par l'agriculture numÊrique sont : + +* Mesure de la tempÊrature - la mesure de la tempÊrature permet aux agriculteurs de prÊvoir la croissance et la maturitÊ des plantes. +* L'arrosage automatisÊ - il s'agit de mesurer l'humiditÊ du sol et de mettre en marche les systèmes d'irrigation lorsque le sol est trop sec, plutôt que de procÊder à un arrosage programmÊ. L'arrosage programmÊ peut conduire à un arrosage insuffisant des cultures pendant une pÊriode chaude et sèche, ou à un arrosage excessif en cas de pluie. En n'arrosant que lorsque le sol en a besoin, les agriculteurs peuvent optimiser leur utilisation de l'eau. +* Lutte contre les ravageurs - les agriculteurs peuvent utiliser des camÊras sur des robots ou des drones automatisÊs pour vÊrifier la prÊsence de ravageurs, puis appliquer des pesticides uniquement là oÚ c'est nÊcessaire, ce qui rÊduit la quantitÊ de pesticides utilisÊs et le ruissellement des pesticides dans les rÊserves d'eau locales. + +✅ Faites des recherches. Quelles autres techniques sont utilisÊes pour amÊliorer les rendements agricoles ? + +> 🎓 Le terme "agriculture de prÊcision" est utilisÊ pour dÊfinir l'observation, la mesure et l'intervention sur les cultures par champ, ou mÃĒme sur certaines parties d'un champ. Il s'agit notamment de mesurer les niveaux d'eau, de nutriments et de parasites et de rÊagir avec prÊcision, par exemple en n'arrosant qu'une petite partie du champ. + +## L'importance de la tempÊrature dans l'agriculture + +Lorsqu'ils Êtudient les plantes, la plupart des Êlèves apprennent qu'elles ont besoin d'eau, de lumière, de dioxyde de carbone (CO2) et de nutriments. Les plantes ont Êgalement besoin de chaleur pour se dÊvelopper - c'est pourquoi les plantes fleurissent au printemps lorsque la tempÊrature augmente, pourquoi les perce-neige ou les jonquilles peuvent germer tôt en raison d'une courte pÊriode de chaleur, et pourquoi les serres sont si efficaces pour faire pousser les plantes. + +> 🎓 Les serres et les serres chaudes font un travail similaire, mais avec une diffÊrence importante. Les serres chaudes sont chauffÊes artificiellement et permettent aux agriculteurs de contrôler les tempÊratures avec plus de prÊcision. Les serres dÊpendent du soleil pour la chaleur et le seul moyen de contrôle est gÊnÊralement l'ouverture de fenÃĒtres ou d'autres ouvertures pour laisser sortir la chaleur. + +Les plantes ont une tempÊrature de base ou minimale, une tempÊrature optimale et une tempÊrature maximale, toutes basÊes sur les tempÊratures moyennes quotidiennes. + +* TempÊrature de base - il s'agit de la tempÊrature moyenne quotidienne minimale nÊcessaire à la croissance d'une plante. +* TempÊrature optimale - il s'agit de la meilleure tempÊrature moyenne quotidienne pour obtenir la meilleure croissance. +* TempÊrature maximale - Il s'agit de la tempÊrature maximale qu'une plante peut supporter. Au-dessus de cette tempÊrature, la plante interrompt sa croissance afin de conserver l'eau et de rester en vie. + +> 💁 Il s'agit de tempÊratures moyennes, calculÊes sur la base des tempÊratures quotidiennes et nocturnes. Les plantes ont Êgalement besoin de tempÊratures diffÊrentes le jour et la nuit pour leur permettre de rÊaliser une photosynthèse plus efficace et d'Êconomiser de l'Ênergie la nuit. + +Chaque espèce de plante a des valeurs diffÊrentes pour sa base, son optimum et son maximum. C'est pourquoi certaines plantes prospèrent dans les pays chauds, et d'autres dans les pays plus froids. + +✅ Faites des recherches. Pour toutes les plantes que vous avez dans votre jardin, à l'Êcole ou dans un parc local, voyez si vous pouvez trouver la tempÊrature de base. + +![Un graphique montrant que le taux de croissance augmente lorsque la tempÊrature augmente, puis diminue lorsque la tempÊrature devient trop ÊlevÊe.](../../../../images/plant-growth-temp-graph.png) + +Le graphique ci-dessus montre un exemple de taux de croissance en fonction de la tempÊrature. Jusqu'à la tempÊrature de base, il n'y a pas de croissance. Le taux de croissance augmente jusqu'à la tempÊrature optimale, puis chute après avoir atteint ce pic. À la tempÊrature maximale, la croissance s'arrÃĒte. + +La forme de ce graphique varie d'une espèce vÊgÊtale à l'autre. Certaines ont des chutes plus marquÊes au-dessus de l'optimum, d'autres ont des augmentations plus lentes de la base à l'optimum. + +> 💁 Pour qu'un agriculteur obtienne la meilleure croissance, il devra connaÃŽtre les trois valeurs de tempÊrature et comprendre la forme des graphiques pour les plantes qu'il cultive. + +Si un agriculteur a le contrôle de la tempÊrature, par exemple dans une serre commerciale, il peut optimiser la croissance de ses plantes. Dans une serre commerciale oÚ l'on cultive des tomates, par exemple, la tempÊrature sera rÊglÊe à environ 25°C le jour et 20°C la nuit pour obtenir la croissance la plus rapide. + +> 🍅 En combinant ces tempÊratures avec des lumières artificielles, des engrais et des niveaux de CO2 contrôlÊs, les producteurs commerciaux peuvent cultiver et rÊcolter toute l'annÊe. + +## La-mesure-de-la-tempÊrature-ambiante + +Les capteurs de tempÊrature peuvent ÃĒtre utilisÊs avec les appareils IoT pour mesurer la tempÊrature ambiante. + +### TÃĸche - Mesure de la tempÊrature + +Suivez le guide correspondant pour surveiller les tempÊratures à l'aide de votre dispositif IoT : + +* [Arduino - Wio Terminal](wio-terminal-temp.fr.md) +* [Single-board computer - Raspberry Pi](pi-temp.fr.md) +* [Single-board computer - Virtual device](virtual-device-temp.fr.md) + +## DegrÊs-jours de croissance + +Les degrÊs-jours de croissance (Êgalement appelÊs unitÊs de degrÊs de croissance) sont un moyen de mesurer la croissance des plantes en fonction de la tempÊrature. En supposant qu'une plante dispose de suffisamment d'eau, de nutriments et de CO2, la tempÊrature dÊtermine le taux de croissance. + +Les degrÊs-jours de croissance, ou DJC, sont calculÊs par jour comme la tempÊrature moyenne en Celsius pour un jour au-dessus de la tempÊrature de base des plantes. Chaque plante a besoin d'un certain nombre de DJC pour croÃŽtre, fleurir ou produire et faire mÃģrir une rÊcolte. Plus le nombre de DJC par jour est ÊlevÊ, plus la croissance de la plante est rapide. + +> đŸ‡ē🇸 Pour les AmÊricains, les degrÊs-jours de croissance peuvent Êgalement ÃĒtre calculÊs en Fahrenheit. 5 DJCC (degrÊs-jours de croissance en Celsius) sont l'Êquivalent de 9 DJCF (degrÊs-jours de croissance en Fahrenheit). + +La formule complète du DJC est un peu compliquÊe, mais il existe une Êquation simplifiÊe qui est souvent utilisÊe comme une bonne approximation : + +![DJC = T max + T min divisÊ par 2, total - T base](../../../../images/gdd-calculation.png) + +* **DJC** - c'est le nombre de degrÊs-jours de croissance +* **Tmax** - il s'agit de la tempÊrature maximale quotidienne en degrÊs Celsius +* **Tmin** - il s'agit de la tempÊrature minimale quotidienne en degrÊs Celsius +* **Tbase** - c'est la tempÊrature de base des plantes en degrÊs Celsius + +> 💁 Il existe certaines variations impliquant Tmax au delà de 30°C ou Tmin en deça Tbase, mais nous ignorerons ces cas dans le contexte de ce cours. + +### Exemple - Maïs đŸŒŊ + +Selon la variÊtÊ, le maïs a besoin de 800 à 2 700 DJC pour arriver à maturitÊ, avec une tempÊrature de base de 10°C. + +Le premier jour au-dessus de la tempÊrature de base, les tempÊratures suivantes ont ÊtÊ mesurÊes : + +| Mesures | Temp °C | +| :---------- | :-----: | +| Maximum | 16 | +| Minimum | 12 | + +En ajoutant ces chiffres à notre calcul : + +* Tmax = 16 +* Tmin = 12 +* Tbase = 10 + +Ce qui donne un rÊsultat de: + +![DJC = 16 + 12 divisÊ par 2, total moins 10, rÊsultant à 4](../../../../images/gdd-calculation-corn.png) + +Le maïs a reçu 4 DJC ce jour-là. Dans l'hypothèse d'une variÊtÊ de maïs qui a besoin de 800 jours DJC pour arriver à maturitÊ, il lui faudra encore 796 DJC pour atteindre la maturitÊ. + +✅ Faites des recherches. Pour toutes les plantes que vous avez dans votre jardin, à l'Êcole ou dans un parc local, voyez si vous pouvez trouver le nombre de DJC requis pour atteindre la maturitÊ ou produire des rÊcoltes. + +## Calcul du DJC à l'aide de donnÊes de senseurs + +Les plantes ne poussent pas à dates fixes - par exemple, vous ne pouvez pas planter une graine et savoir que la plante portera des fruits exactement 100 jours plus tard. Au lieu de cela, en tant qu'agriculteur, vous pouvez avoir une idÊe approximative du temps que prend une plante pour pousser, puis vous vÊrifiez quotidiennement quand les cultures sont prÃĒtes. + +Cela a un impact considÊrable sur la main-d'œuvre d'une grande exploitation, et l'agriculteur risque de manquer des cultures qui sont prÃĒtes plus tôt que prÊvu. En mesurant les tempÊratures, l'agriculteur peut calculer le DJC qu'une plante a reçu, ce qui lui permet de ne vÊrifier que les cultures proches de la maturitÊ attendue. + +En recueillant des donnÊes de tempÊrature à l'aide d'un dispositif IoT, un agriculteur peut ÃĒtre automatiquement informÊ lorsque les plantes sont proches de la maturitÊ. Une architecture typique pour cela consiste à faire en sorte que les dispositifs IoT mesurent la tempÊrature, puis publient ces donnÊes de tÊlÊmÊtrie sur Internet en utilisant quelque chose comme MQTT. Le code du serveur Êcoute ensuite ces donnÊes et les enregistre quelque part, par exemple dans une base de donnÊes. Cela signifie que les donnÊes peuvent ÃĒtre analysÊes ultÊrieurement, par exemple une tÃĸche nocturne pour calculer le DJC de la journÊe, totaliser le DJC de chaque culture jusqu'à prÊsent et alerter si une plante est proche de la maturitÊ. + +![Les donnÊes tÊlÊmÊtriques sont envoyÊes à un serveur, puis enregistrÊes dans une base de donnÊes.](../../../../images/save-telemetry-database.png) + +Le code serveur peut Êgalement augmenter les donnÊes en ajoutant des informations supplÊmentaires. Par exemple, le dispositif IoT peut publier un identifiant pour indiquer de quel dispositif il s'agit, et le code du serveur peut l'utiliser pour rechercher l'emplacement du dispositif et les cultures qu'il surveille. Il peut Êgalement ajouter des donnÊes de base comme l'heure actuelle, car certains dispositifs IoT ne disposent pas du matÊriel nÊcessaire pour suivre l'heure exacte, ou nÊcessitent un code supplÊmentaire pour lire l'heure actuelle sur Internet. + +✅ Pourquoi pensez-vous que des champs diffÊrents peuvent avoir des tempÊratures diffÊrentes ? + +### TÃĸche - publier des informations sur la tempÊrature + +Suivez le guide correspondant pour publier les donnÊes de tempÊrature sur MQTT à l'aide de votre dispositif IoT afin de pouvoir les analyser ultÊrieurement : + +* [Arduino - Terminal Wio](wio-terminal-temp-publish.fr.md) +* [Ordinateur monocarte - Raspberry Pi/Dispositif IoT virtuel](single-board-computer-temp-publish.fr.md) + +### TÃĸche - capturer et stocker les informations sur la tempÊrature + +Une fois que le dispositif IoT publie la tÊlÊmÊtrie, le code du serveur peut ÃĒtre Êcrit pour s'abonner à ces donnÊes et les stocker. Plutôt que de les enregistrer dans une base de donnÊes, le code serveur les enregistrera dans un fichier CSV (Comma Separated Values). Les fichiers CSV stockent les donnÊes sous forme de lignes de valeurs en texte, chaque valeur Êtant sÊparÊe par une virgule, et chaque enregistrement sur une nouvelle ligne. Ils constituent un moyen pratique, lisible par l'homme et bien supportÊ d'enregistrer des donnÊes dans un fichier. + +Le fichier CSV aura deux colonnes - *date* et *tempÊrature*. La colonne *date* est dÊfinie comme la date et l'heure actuelles de rÊception du message par le serveur, la colonne *tempÊrature* provient du message de tÊlÊmÊtrie. + +1. RÊpÊtez les Êtapes de la leçon 4 pour crÊer un code serveur permettant de s'abonner à la tÊlÊmÊtrie. Vous n'avez pas besoin d'ajouter du code pour publier des commandes. + + Les Êtapes à suivre sont les suivantes : + + * Configurer et activer un environnement virtuel Python + + * Installer la librairie pip paho-mqtt + + * Écrire le code pour Êcouter les messages MQTT publiÊs sur le sujet de tÊlÊmÊtrie + + > âš ī¸ Vous pouvez vous rÊfÊrer [aux instructions de la leçon 4 pour crÊer une application Python pour recevoir la tÊlÊmÊtrie si nÊcessaire](../../../../1-getting-started/lessons/4-connect-internet/README.md#receive-telemetry-from-the-mqtt-broker). + + Nommez le dossier pour ce projet `temperature-sensor-server`. + +1. Assurez vous que `client_name` corresponde à ce projet: + + ```cpp + client_name = id + 'temperature_sensor_server' + ``` + +1. Ajoutez les importations suivantes en haut du fichier, en dessous des importations existantes : + + ```python + from os import path + import csv + from datetime import datetime + ``` + + Ceci importe une bibliothèque pour lire les fichiers, une bibliothèque pour interagir avec les fichiers CSV, et une bibliothèque pour aider avec les dates et les heures. + +1. Ajoutez le code suivant avant la fonction `handle_telemetry`: + + ```python + temperature_file_name = 'temperature.csv' + fieldnames = ['date', 'temperature'] + + if not path.exists(temperature_file_name): + with open(temperature_file_name, mode='w') as csv_file: + writer = csv.DictWriter(csv_file, fieldnames=fieldnames) + writer.writeheader() + ``` + + Ce code dÊclare quelques constantes pour le nom du fichier à Êcrire, et le nom des en-tÃĒtes de colonne pour le fichier CSV. La première ligne d'un fichier CSV contient traditionnellement des en-tÃĒtes de colonne sÊparÊs par des virgules. + + Le code vÊrifie ensuite si le fichier CSV existe dÊjà. S'il n'existe pas, il est crÊÊ avec les en-tÃĒtes de colonne sur la première ligne. + +1. Ajoutez le code suivant à la fin de la fonction `handle_telemetry`: + + ```python + with open(temperature_file_name, mode='a') as temperature_file: + temperature_writer = csv.DictWriter(temperature_file, fieldnames=fieldnames) + temperature_writer.writerow({'date' : datetime.now().astimezone().replace(microsecond=0).isoformat(), 'temperature' : payload['temperature']}) + ``` + + Ce code ouvre le fichier CSV, puis ajoute une nouvelle ligne à la fin. La ligne comporte les donnÊes et l'heure actuelles formatÊes dans un format lisible par l'homme, suivies de la tempÊrature reçue du dispositif IoT. Les donnÊes sont stockÊes au [format ISO 8601] (https://wikipedia.org/wiki/ISO_8601) avec le fuseau horaire, mais sans les microsecondes. + +1. ExÊcutez ce code de la mÃĒme manière que prÊcÊdemment, en vous assurant que votre dispositif IoT envoie des donnÊes. Un fichier CSV appelÊ `temperature.csv` sera crÊÊ dans le mÃĒme dossier. Si vous le visualisez, vous verrez les dates/heures et les mesures de tempÊrature : + + ```output + date,temperature + 2021-04-19T17:21:36-07:00,25 + 2021-04-19T17:31:36-07:00,24 + 2021-04-19T17:41:36-07:00,25 + ``` + +1. ExÊcutez ce code pendant un certain temps pour capturer les donnÊes. IdÊalement, vous devriez l'exÊcuter pendant une journÊe entière afin de recueillir suffisamment de donnÊes pour les calculs de DJC. + + > 💁 Si vous utilisez le "Virtual IoT Device", cochez la case alÊatoire et dÊfinissez une plage pour Êviter d'obtenir la mÃĒme tempÊrature à chaque fois que la valeur de tempÊrature est renvoyÊe. + ![Cochez la case alÊatoire et dÊfinissez une plage](../../../../images/select-the-random-checkbox-and-set-a-range.png) + + > 💁 Si vous souhaitez exÊcuter ce programme pendant toute une journÊe, vous devez vous assurer que l'ordinateur sur lequel votre code serveur est exÊcutÊ ne se mettra pas en veille, soit en modifiant vos paramètres d'alimentation, soit en exÊcutant un programme tel que [ceci maintient le système actif](https://github.com/jaqsparow/keep-system-active). + +> 💁 Vous pouvez trouver ce code dans le dossier [code-server/temperature-sensor-server](../code-server/temperature-sensor-server). + +### TÃĸche - calculer le DJC en utilisant les donnÊes stockÊes + +Une fois que le serveur a saisi les donnÊes de tempÊrature, le DJC d'une usine peut ÃĒtre calculÊ. + +Les Êtapes à suivre pour effectuer cette opÊration manuellement sont les suivantes : + +1. Trouvez la tempÊrature de base de la plante. Par exemple, pour les fraises, la tempÊrature de base est de 10°C. + +1. A partir du fichier `temperature.csv`, trouvez les tempÊratures les plus hautes et les plus basses de la journÊe. + +1. Utilisez le calcul du DJC donnÊ prÊcÊdemment pour calculer le DJC + +Par exemple, si la tempÊrature la plus ÊlevÊe de la journÊe est de 25°C, et la plus basse de 12°C : + +![DJC = 25 + 12 divisÊ par 2, enlever 10 du rÊsultat, donnant 8.5](../../../../images/gdd-calculation-strawberries.png) + +* 25 + 12 = 37 +* 37 / 2 = 18.5 +* 18.5 - 10 = 8.5 + +Les fraises ont donc reçu **8,5** DJC. Les fraises ont besoin d'environ 250 DJC pour porter des fruits, donc il y a encore du chemin à faire. + +--- + +## 🚀 DÊfi + +Les plantes ont besoin de plus que de la chaleur pour pousser. Quelles autres choses sont nÊcessaires ? + +Pour ceux-ci, cherchez s'il existe des capteurs qui peuvent les mesurer. Et des actionneurs pour contrôler ces niveaux ? Comment assembleriez-vous un ou plusieurs dispositifs IoT pour optimiser la croissance des plantes ? + +## Questionnaire Post-lecture + +[Questionnaire Post-lecture](https://brave-island-0b7c7f50f.azurestaticapps.net/quiz/10) + +## RÊvision et apprentissage autodidacte + +* Pour en savoir plus sur l'agriculture numÊrique, consultez la page [Digital Agriculture Wikipedia](https://wikipedia.org/wiki/Digital_agriculture). Pour en savoir plus sur l'agriculture de prÊcision, consultez la page [Precision Agriculture Wikipedia](https://wikipedia.org/wiki/Precision_agriculture). +* Le calcul complet des degrÊs-jours de croissance est plus compliquÊ que le calcul simplifiÊ prÊsentÊ ici. Pour en savoir plus sur l'Êquation plus compliquÊe et sur la manière de traiter les tempÊratures infÊrieures à la ligne de base, consultez la page [DegrÊs-jours de croissance sur WikipÊdia](https://wikipedia.org/wiki/Growing_degree-day). +* La nourriture pourrait se faire rare à l'avenir, mÃĒme si nous utilisons toujours les mÃĒmes mÊthodes agricoles. Pour en savoir plus sur les techniques agricoles de haute technologie, regardez cette vidÊo [Hi-Tech Farms of Future sur YouTube](https://www.youtube.com/watch?v=KIEOuKD9KX8). + +## Devoir + +[Visualiser les donnÊes DJC à l'aide d'un Jupyter Notebook](assignment.fr.md) diff --git a/2-farm/lessons/1-predict-plant-growth/translations/assignment.fr.md b/2-farm/lessons/1-predict-plant-growth/translations/assignment.fr.md new file mode 100644 index 00000000..59dbdbe3 --- /dev/null +++ b/2-farm/lessons/1-predict-plant-growth/translations/assignment.fr.md @@ -0,0 +1,43 @@ +# Visualiser les donnÊes DJC à l'aide d'un Jupyter Notebook + +## Instructions + +Dans cette leçon, vous avez recueilli des donnÊes DJC à l'aide d'un capteur IoT. Pour obtenir de bonnes donnÊes DJC, vous devez recueillir des donnÊes pendant plusieurs jours. Pour vous aider à visualiser les donnÊes de tempÊrature et à calculer le DJC, vous pouvez utiliser des outils tels que [Jupyter Notebooks](https://jupyter.org) pour analyser les donnÊes. + +Commencez par recueillir des donnÊes pendant quelques jours. Vous devez vous assurer que le code de votre serveur fonctionne tout le temps que votre dispositif IoT est en marche, soit en ajustant vos paramètres de gestion de l'Ênergie, soit en exÊcutant quelque chose comme [ce script Python maintenant le système actif].(https://github.com/jaqsparow/keep-system-active). + +Une fois que vous avez les donnÊes de tempÊrature, vous pouvez utiliser le Jupyter Notebook dans ce repo pour les visualiser et calculer le JDC. Les notebooks Jupyter mÊlangent du code et des instructions dans des blocs appelÊs *cellules*, souvent du code en Python. Vous pouvez lire les instructions, puis exÊcuter chaque bloc de code, bloc par bloc. Vous pouvez Êgalement modifier le code. Dans ce notebook par exemple, vous pouvez modifier la tempÊrature de base utilisÊe pour calculer le JDC de votre installation. + +1. CrÊez un dossier `gdd-calcul` (GDD correspond à DJC en français) + +1. TÊlÊchargez le fichier [gdd.ipynb](../code-notebook/gdd.ipynb) et copiez le dans le dossier`gdd-calcul`. + +1. Copiez le fichier `temperature.csv` crÊÊ par le serveur MQTT. + +1. CrÊez un nouvel environnement virtuel Python dans le dossier `gdd-calcul`. + +1. Installez quelques paquets pip pour les carnets Jupyter, ainsi que les bibliothèques nÊcessaires à la gestion et au tracÊ des donnÊes : + + ```sh + pip install --upgrade pip + pip install pandas + pip install matplotlib + pip install jupyter + ``` + +1. ExÊcutez le notebook dans Jupyter : + + ```sh + jupyter notebook gdd.ipynb + ``` + + Jupyter dÊmarre et ouvre le notebook dans votre navigateur. Suivez les instructions du carnet de notes pour visualiser les tempÊratures mesurÊes et calculer les degrÊs-jours de croissance. + + ![Le jupyter notebook](../../../../images/gdd-jupyter-notebook.png) + +## Rubrique + +| Critère | Exemplaire | Adequat | À amÊliorer | +| -------- | --------- | -------- | ----------------- | +| Capture de donnÊes | Capture au moins deux journÊes de donnÊes | Capture au moins une journÊe de donnÊes | Capture des donnÊes | +| Calcul du DJC | ExÊcute le notebook et calcul le DJC | ExÊcute le notebook | Incapable d'exÊcuter le notebook | diff --git a/2-farm/lessons/1-predict-plant-growth/translations/pi-temp.fr.md b/2-farm/lessons/1-predict-plant-growth/translations/pi-temp.fr.md new file mode 100644 index 00000000..379c6a39 --- /dev/null +++ b/2-farm/lessons/1-predict-plant-growth/translations/pi-temp.fr.md @@ -0,0 +1,111 @@ +# Mesure de temperature - Raspberry Pi + +Dans cette partie de la leçon, vous allez ajouter un capteur de tempÊrature à votre Raspberry Pi. + +## MatÊriel + +La sonde que vous utiliserez est une [sonde d'humiditÊ et de tempÊrature DHT11](https://www.seeedstudio.com/Grove-Temperature-Humidity-Sensor-DHT11.html), combinant deux capteurs dans un mÃĒme boÃŽtier. Cette mÊthode est assez populaire, avec un certain nombre de capteurs disponibles dans le commerce combinant tempÊrature, humiditÊ et parfois pression atmosphÊrique. Le composant du capteur de tempÊrature est une thermistance à coefficient de tempÊrature nÊgatif (CTN), une thermistance dont la rÊsistance diminue lorsque la tempÊrature augmente. + +Il s'agit d'un capteur numÊrique, qui dispose donc d'un ADC intÊgrÊ pour crÊer un signal numÊrique contenant les donnÊes de tempÊrature et d'humiditÊ que le microcontrôleur peut lire. + +### Connecter le capteur de tempÊrature + +Le capteur de tempÊrature Grove peut ÃĒtre connectÊ au Raspberry Pi. + +#### TÃĸche + +Connecter le capteur de tempÊrature + +![La sonde de tempÊrature Grove](../../../../images/grove-dht11.png) + +1. InsÊrez une extrÊmitÊ d'un cÃĸble Grove dans la prise du capteur d'humiditÊ et de tempÊrature. Il ne peut ÃĒtre insÊrÊ que dans un seul sens. + +1. Lorsque le Raspberry Pi est hors tension, connectez l'autre extrÊmitÊ du cÃĸble Grove à la prise numÊrique marquÊe **D5** sur le chapeau de la base Grove fixÊ au Pi. Cette prise est la deuxième en partant de la gauche, sur la rangÊe de prises à côtÊ des broches GPIO. + +![Le capteur de tempÊrature de la rainure connectÊ à la broche A0](../../../../images/pi-temperature-sensor.png) + +## Programmez le capteur de tempÊrature + +L'appareil peut maintenant ÃĒtre programmÊ pour utiliser la sonde de tempÊrature jointe. + +### TÃĸche + +Programmer le Raspberry Pi. + +1. Brancher le Pi à l'alimentation et attendre la sÊquence de dÊmarrage. + +1. Lancez VS Code, soit directement sur le Pi, soit en vous connectant via l'extension SSH à distance. + + > âš ī¸ Vous pouvez vous rÊfÊrer [aux instructions de configuration et de lancement de VS Code dans la leçon 1 si nÊcessaire].(../../../../1-getting-started/lessons/1-introduction-to-iot/pi.md). + +1. Depuis le terminal, crÊez un nouveau dossier dans le rÊpertoire personnel de l'utilisateur `pi` appelÊ `temperature-sensor`. CrÊez un fichier dans ce dossier appelÊ `app.py` : + + ```sh + mkdir temperature-sensor + cd temperature-sensor + touch app.py + ``` + +1. Ouvrez ce dossier dans VS Code + +1. Pour utiliser le capteur de tempÊrature et d'humiditÊ, une librairie pip supplÊmentaire doit ÃĒtre installÊe. Depuis le Terminal dans VS Code, exÊcutez la commande suivante pour installer ce paquet Pip sur le Pi : + + ```sh + pip3 install seeed-python-dht + ``` + +1. Ajoutez le code suivant au fichier `app.py` pour importer les bibliothèques requises : + + ```python + import time + from seeed_dht import DHT + ``` + + L'instruction `from seeed_dht import DHT` importe la classe de capteur `DHT` pour interagir avec un capteur de tempÊrature Grove du module `seeed_dht`. + +1. Ajoutez le code suivant après le code ci-dessus pour crÊer une instance de la classe qui gère le capteur de tempÊrature : + + ```python + sensor = DHT("11", 5) + ``` + + Ceci dÊclare une instance de la classe `DHT` qui gère le capteur **D**igital **H**umiditÊ et **T**tempÊrature. Le premier paramètre indique au code que le capteur utilisÊ est le capteur *DHT11* - la bibliothèque que vous utilisez supporte d'autres variantes de ce capteur. Le deuxième paramètre indique au code que le capteur est connectÊ au port numÊrique `D5` du connecteur Grove de base. + + > ✅ N'oubliez pas que toutes les prises ont un numÊro de broche unique. Les broches 0, 2, 4 et 6 sont des broches analogiques, les broches 5, 16, 18, 22, 24 et 26 sont des broches numÊriques. + +1. Ajoutez une boucle infinie après le code ci-dessus pour interroger la valeur du capteur de tempÊrature et l'imprimer sur la console : + + ```python + while True: + _, temp = sensor.read() + print(f'Temperature {temp}°C') + ``` + + L'appel à `sensor.read()` renvoie un tuple d'humiditÊ et de tempÊrature. Vous n'avez besoin que de la valeur de la tempÊrature, l'humiditÊ est donc ignorÊe. La valeur de la tempÊrature est ensuite imprimÊe sur la console. + +1. Ajoutez une petite mise en veille de dix secondes à la fin de la "boucle", car les niveaux de tempÊrature n'ont pas besoin d'ÃĒtre vÊrifiÊs en permanence. Une mise en veille rÊduit la consommation d'Ênergie de l'appareil. + + ```python + time.sleep(10) + ``` + +1. Depuis le terminal VS Code, exÊcutez ce qui suit pour lancer votre application Python : + + ```sh + python3 app.py + ``` + + Vous devriez voir des valeurs de tempÊrature en sortie sur la console. Utilisez quelque chose pour rÊchauffer le capteur, par exemple en appuyant votre pouce dessus, ou en utilisant un ventilateur pour voir les valeurs changer : + + ```output + pi@raspberrypi:~/temperature-sensor $ python3 app.py + Temperature 26°C + Temperature 26°C + Temperature 28°C + Temperature 30°C + Temperature 32°C + ``` + +> 💁 Vous pouvez trouver ce code dans le dossier [code-temperature/pi](../code-temperature/pi). + +😀 La rÊalisation de votre programme de capteur de tempÊrature a ÊtÊ un succès ! diff --git a/2-farm/lessons/1-predict-plant-growth/translations/single-board-computer-temp-publish.fr.md b/2-farm/lessons/1-predict-plant-growth/translations/single-board-computer-temp-publish.fr.md new file mode 100644 index 00000000..f65a68c5 --- /dev/null +++ b/2-farm/lessons/1-predict-plant-growth/translations/single-board-computer-temp-publish.fr.md @@ -0,0 +1,57 @@ +# Publier la tempÊrature - MatÊriel virtuel IoT et Raspberry Pi + +Dans cette partie de la leçon, vous allez publier les valeurs de tempÊrature dÊtectÊes par le Raspberry Pi ou le dispositif IoT virtuel sur MQTT afin qu'elles puissent ÃĒtre utilisÊes ultÊrieurement pour calculer le DJC. + +## Publier la temperature + +Une fois la tempÊrature lue, elle peut ÃĒtre publiÊe via MQTT vers un code "serveur" qui lira les valeurs et les stockera, prÃĒtes à ÃĒtre utilisÊes pour un calcul de DJC. + +### TÃĸche - Publier la tempÊrature + +Programmez l'appareil pour qu'il publie les donnÊes de tempÊrature. + +1. Ouvrez le projet d'application `temperature-sensor` s'il ne l'est pas dÊjà. + +1. RÊpÊtez les Êtapes de la leçon 4 pour vous connecter à MQTT et envoyer la tÊlÊmÊtrie. Vous utiliserez le mÃĒme "broker" publique Mosquitto. + + Les Êtapes sont: + + - Ajout de la librairie pip de MQTT paho + - Ajouter le code afin de se conecter au broker MQTT + - Ajouter le code permettant de publier la tÊlÊmètrie + + > âš ī¸ Consultez les [instructions pour la connexion à MQTT](../../../../1-getting-started/lessons/4-connect-internet/single-board-computer-mqtt.md) ainsi que les [instructions pour l'envoi de la tÊlÊmÊtrie](../../../../1-getting-started/lessons/4-connect-internet/single-board-computer-telemetry.md) de la leçon 4 si nÊcessaire. + +1. Assurez-vous que le `client_name` reflète le nom de ce projet : + + ```python + client_name = id + 'temperature_sensor_client' + ``` + +1. Pour la tÊlÊmÊtrie, au lieu d'envoyer une valeur de lumière, envoyez la valeur de tempÊrature lue par le capteur DHT dans une propriÊtÊ du document JSON appelÊe `temperature` : + + ```python + _, temp = sensor.read() + telemetry = json.dumps({'temperature' : temp}) + ``` + +1. La valeur de la tempÊrature n'a pas besoin d'ÃĒtre lue très souvent - elle ne changera pas beaucoup dans un court laps de temps, donc rÊglez le `time.sleep` à 10 minutes : + + ```cpp + time.sleep(10 * 60); + ``` + + > 💁 La fonction `sleep` prend le temps en secondes, donc pour faciliter la lecture, la valeur est passÊe comme le rÊsultat d'un calcul. 60s en une minute, donc 10 x (60s en une minute) donne un dÊlai de 10 minutes. + +1. ExÊcutez le code de la mÃĒme manière que vous avez exÊcutÊ le code de la partie prÊcÊdente du devoir. Si vous utilisez un appareil IoT virtuel, assurez-vous que l'application CounterFit est en cours d'exÊcution et que les capteurs d'humiditÊ et de tempÊrature ont ÊtÊ crÊÊs sur les bonnes broches IO. + + ```output + pi@raspberrypi:~/temperature-sensor $ python3 app.py + MQTT connected! + Sending telemetry {"temperature": 25} + Sending telemetry {"temperature": 25} + ``` + +> 💁 Vous pouvez trouver ce code dans le dossier [code-publish-temperature/virtual-device].(../code-publish-temperature/virtual-device) ou encore [code-publish-temperature/pi](../code-publish-temperature/pi). + +😀 Vous avez publiÊ avec succès la tempÊrature en tant que tÊlÊmÊtrie de votre appareil. diff --git a/2-farm/lessons/1-predict-plant-growth/translations/virtual-device-temp.fr.md b/2-farm/lessons/1-predict-plant-growth/translations/virtual-device-temp.fr.md new file mode 100644 index 00000000..2eae15e8 --- /dev/null +++ b/2-farm/lessons/1-predict-plant-growth/translations/virtual-device-temp.fr.md @@ -0,0 +1,140 @@ +# Mesurer la tempÊrature - MatÊriel virtuel IoT + +Dans cette partie de la leçon, vous allez ajouter un capteur de tempÊrature à votre dispositif IoT virtuel. + +## MatÊriel virtuel + +Le dispositif IoT virtuel utilisera un capteur numÊrique d'humiditÊ et de tempÊrature Grove simulÊ. Ce laboratoire est donc identique à celui qui utilise un Raspberry Pi avec un capteur Grove DHT11 physique. + +Le capteur combine un **capteur de tempÊrature** et un **capteur d'humiditÊ**, mais dans ce laboratoire, vous n'ÃĒtes intÊressÊ que par le composant capteur de tempÊrature. Dans un dispositif IoT physique, le capteur de tempÊrature serait une [thermistance] (https://wikipedia.org/wiki/Thermistor) qui mesure la tempÊrature en dÊtectant un changement de rÊsistance lorsque la tempÊrature change. Les capteurs de tempÊrature sont gÊnÊralement des capteurs numÊriques qui convertissent en interne la rÊsistance mesurÊe en une tempÊrature en degrÊs Celsius (ou Kelvin, ou Fahrenheit). + +### Ajouter les capteurs à CounterFit + +Pour utiliser un capteur d'humiditÊ et de tempÊrature virtuel, vous devez ajouter les deux capteurs à l'application CounterFit + +#### TÃĸche - ajouter les capteurs à CounterFit + +Ajoutez les capteurs d'humiditÊ et de tempÊrature à l'application CounterFit. + +1. CrÊez une nouvelle application Python sur votre ordinateur dans un dossier appelÊ `temperature-sensor` avec un seul fichier appelÊ `app.py` et un environnement virtuel Python, et ajoutez les librairies pip de CounterFit. + + > âš ī¸ Vous pouvez vous rÊfÊrer [aux instructions pour crÊer et configurer un projet Python CounterFit dans la leçon 1 si nÊcessaire](../../../../1-getting-started/lessons/1-introduction-to-iot/virtual-device.md). + +1. Installez une librairie pip supplÊmentaire afin d'installer une cale CounterFit pour le capteur DHT11. Assurez-vous que vous l'installez depuis un terminal avec l'environnement virtuel activÊ. + + ```sh + pip install counterfit-shims-seeed-python-dht + ``` + +1. Assurez-vous que l'application web CounterFit est en cours d'exÊcution. + +1. CrÊez un capteur d'humiditÊ : + + 1. Dans la case *Create sensor* du volet *Sensors*, dÊroulez la case *Sensor type* et sÊlectionnez *Humidity*. + + 1. Laissez le paramètre *Units* à *Percentage* + + 1. Assurez vous que la variable *Pin* est à *5* + + 1. SÊlectionnez le bouton **Add** pour crÊer le capteur d'humiditÊ sur la broche 5 + + ![Paramètres du capteur d'humiditÊ](../../../../images/counterfit-create-humidity-sensor.png) + + Le capteur d'humiditÊ sera crÊÊ et apparaÃŽtra dans la liste des capteurs. + + ![Le capteur d'humiditÊ crÊÊ](../../../../images/counterfit-humidity-sensor.png) + +1. CrÊez un capteur de tempÊrature : + + 1. Dans la case *Create sensor* du volet *Sensors*, dÊroulez la case *Sensor type* et sÊlectionnez *Temperature* + + 1. Laissez la variable *Units* à *Celsius* + + 1. Assurez vous que la variable *Pin* est à *6* + + 1. SÊlectionnez le bouton **Add** pour crÊer le capteur de tempÊrature sur la broche 6 + + ![Paramètres du capteur de tempÊrature](../../../../images/counterfit-create-temperature-sensor.png) + + Le capteur de tempÊrature sera crÊÊ et apparaÃŽtra dans la liste des capteurs + + ![CrÊation du capteur de tempÊrature](../../../../images/counterfit-temperature-sensor.png) + +## Programmez l'application de la sonde de tempÊrature + +L'application du capteur de tempÊrature peut maintenant ÃĒtre programmÊe en utilisant les capteurs CounterFit. + +### TÃĸche - programmer l'application du capteur de tempÊrature + +Programmez l'application du capteur de tempÊrature. + +1. Assurez-vous que l'application `temperature-sensor` est ouverte dans VS Code. + +1. Ouvrez le fichier `app.py`. + +1. Ajoutez le code suivant au dÊbut de `app.py` pour connecter l'application à CounterFit : + + ```python + from counterfit_connection import CounterFitConnection + CounterFitConnection.init('127.0.0.1', 5000) + ``` + +1. Ajoutez le code suivant au fichier `app.py` pour importer les bibliothèques requises : + + ```python + import time + from counterfit_shims_seeed_python_dht import DHT + ``` + + L'instruction `from seeed_dht import DHT` importe la classe de capteur `DHT` pour interagir avec un capteur de tempÊrature Grove virtuel utilisant une shim du module `counterfit_shims_seeed_python_dht`. + +1. Ajoutez le code suivant après le code ci-dessus pour crÊer une instance de la classe qui gère le capteur virtuel d'humiditÊ et de tempÊrature : + + ```python + sensor = DHT("11", 5) + ``` + + Ceci dÊclare une instance de la classe `DHT` qui gère le capteur virtuel **D**numÊrique **H**umiditÊ et **T**tempÊrature. Le premier paramètre indique au code que le capteur utilisÊ est un capteur virtuel *DHT11*. Le deuxième paramètre indique au code que le capteur est connectÊ au port `5`. + + > 💁 CounterFit simule ce capteur combinÊ d'humiditÊ et de tempÊrature en se connectant à 2 capteurs, un capteur d'humiditÊ sur la broche donnÊe lors de la crÊation de la classe `DHT`, et un capteur de tempÊrature qui se trouve sur la broche suivante. Si le capteur d'humiditÊ est sur la broche 5, la cale s'attend à ce que le capteur de tempÊrature soit sur la broche 6. + +1. Ajoutez une boucle infinie après le code ci-dessus pour interroger la valeur du capteur de tempÊrature et l'imprimer sur la console : + + ```python + while True: + _, temp = sensor.read() + print(f'Temperature {temp}°C') + ``` + + L'appel à `sensor.read()` renvoie un tuple d'humiditÊ et de tempÊrature. Vous n'avez besoin que de la valeur de la tempÊrature, l'humiditÊ est donc ignorÊe. La valeur de la tempÊrature est ensuite imprimÊe sur la console. + +1. Ajoutez une petite mise en veille de dix secondes à la fin de la "boucle", car les niveaux de tempÊrature n'ont pas besoin d'ÃĒtre vÊrifiÊs en permanence. Une mise en veille rÊduit la consommation d'Ênergie de l'appareil. + + ```python + time.sleep(10) + ``` + +1. À partir du terminal VS Code avec un environnement virtuel activÊ, exÊcutez ce qui suit pour lancer votre application Python : + + ```sh + python app.py + ``` + +1. Depuis l'application CounterFit, modifiez la valeur de la sonde de tempÊrature qui sera lue par l'application. Vous pouvez le faire de deux façons : + + * Entrez un nombre dans la case *Value* pour le capteur de tempÊrature, puis sÊlectionnez le bouton **Set**. Le nombre que vous saisissez sera la valeur renvoyÊe par le capteur. + + * Cochez la case *Random* et saisissez une valeur *Min* et *Max*, puis sÊlectionnez le bouton **Set**. Chaque fois que le capteur lit une valeur, il lit un nombre alÊatoire entre *Min* et *Max*. + + Vous devriez voir les valeurs que vous avez dÊfinies apparaÃŽtre dans la console. Changez les paramètres *Value* ou *Random* pour voir la valeur changer. + + ```output + (.venv) ➜ temperature-sensor python app.py + Temperature 28.25°C + Temperature 30.71°C + Temperature 25.17°C + ``` + +> 💁 Vous pouvez trouver ce code dans le fichier [code-temperature/virtual-device](../code-temperature/virtual-device). + +😀 Votre programme de capteur de tempÊrature a ÊtÊ un succès ! diff --git a/2-farm/lessons/1-predict-plant-growth/translations/wio-terminal-temp-publish.fr.md b/2-farm/lessons/1-predict-plant-growth/translations/wio-terminal-temp-publish.fr.md new file mode 100644 index 00000000..f4866429 --- /dev/null +++ b/2-farm/lessons/1-predict-plant-growth/translations/wio-terminal-temp-publish.fr.md @@ -0,0 +1,68 @@ +# Publier la tempÊrature - Terminal Wio + +Dans cette partie de la leçon, vous allez publier les valeurs de tempÊrature dÊtectÊes par le terminal Wio sur MQTT afin qu'elles puissent ÃĒtre utilisÊes ultÊrieurement pour calculer le DJC. + +## Publier la tempÊrature + +Une fois la tempÊrature lue, elle peut ÃĒtre publiÊe via MQTT vers un code "serveur" qui lira les valeurs et les stockera, prÃĒtes à ÃĒtre utilisÊes pour un calcul de DJC. Les microcontrôleurs ne lisent pas l'heure sur Internet et ne suivent pas l'heure avec une horloge en temps rÊel. Le dispositif doit ÃĒtre programmÊ pour le faire, en supposant qu'il dispose du matÊriel nÊcessaire. + +Afin de simplifier les choses pour cette leçon, l'heure ne sera pas envoyÊe avec les donnÊes du capteur, mais pourra ÃĒtre ajoutÊe par le code du serveur plus tard, lorsqu'il recevra les messages. + +### TÃĸche + +Programmez l'appareil pour qu'il publie les donnÊes de tempÊrature. + +1. Ouvrez le projet Wio Terminal `temperature-sensor`. + +1. RÊpÊtez les Êtapes de la leçon 4 pour vous connecter à MQTT et envoyer la tÊlÊmÊtrie. Vous utiliserez le mÃĒme courtier public Mosquitto. + + Les Êtapes à suivre sont les suivantes : + + - Ajouter les bibliothèques Seeed WiFi et MQTT au fichier `.ini`. + - Ajouter le fichier de configuration et le code pour se connecter au WiFi + - Ajouter le code pour se connecter au broker MQTT + - Ajouter le code pour publier la tÊlÊmÊtrie + + > âš ī¸ Consultez les [instructions pour la connexion à MQTT].(../../../1-getting-started/lessons/4-connect-internet/wio-terminal-mqtt.md) ainsi que les [instructions pour l'envoi de la tÊlÊmÊtrie](../../../../1-getting-started/lessons/4-connect-internet/wio-terminal-telemetry.md) de la leçon 4 si nÊcessaire. + +1. Assurez-vous que le `CLIENT_NAME` dans le fichier d'en-tÃĒte `config.h` reflète ce projet : + + ```cpp + const string CLIENT_NAME = ID + "temperature_sensor_client"; + ``` + +1. Pour la tÊlÊmÊtrie, au lieu d'envoyer une valeur de lumière, envoyez la valeur de tempÊrature lue par le capteur DHT dans une propriÊtÊ du document JSON appelÊe `temperature` en modifiant la fonction `loop` dans `main.cpp` : + + ```cpp + float temp_hum_val[2] = {0}; + dht.readTempAndHumidity(temp_hum_val); + + DynamicJsonDocument doc(1024); + doc["temperature"] = temp_hum_val[1]; + ``` + +1. La valeur de la tempÊrature n'a pas besoin d'ÃĒtre lue très souvent - elle ne changera pas beaucoup dans un court laps de temps, donc rÊglez le "retard" de la fonction "boucle" à 10 minutes : + + ```cpp + delay(10 * 60 * 1000); + ``` + + > 💁 La fonction `delay` prend le temps en millisecondes, donc pour faciliter la lecture, la valeur est passÊe comme le rÊsultat d'un calcul. 1 000 ms en une seconde, 60s en une minute, donc 10 x (60s en une minute) x (1000 ms en une seconde) donne un dÊlai de 10 minutes. + +1. TÊlÊchargez-le sur votre terminal Wio, et utilisez le moniteur sÊrie pour voir la tempÊrature envoyÊe au courtier MQTT. + + ```output + --- Available filters and text transformations: colorize, debug, default, direct, hexlify, log2file, nocontrol, printable, send_on_enter, time + --- More details at http://bit.ly/pio-monitor-filters + --- Miniterm on /dev/cu.usbmodem1201 9600,8,N,1 --- + --- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H --- + Connecting to WiFi.. + Connected! + Attempting MQTT connection...connected + Sending telemetry {"temperature":25} + Sending telemetry {"temperature":25} + ``` + +> 💁 Vous pouvez trouver ce code dans le fichier [code-publish-temperature/wio-terminal].(../code-publish-temperature/wio-terminal). + +😀 Vous avez publiÊ avec succès la tempÊrature en tant que tÊlÊmÊtrie de votre appareil! diff --git a/2-farm/lessons/1-predict-plant-growth/translations/wio-terminal-temp.fr.md b/2-farm/lessons/1-predict-plant-growth/translations/wio-terminal-temp.fr.md new file mode 100644 index 00000000..e75435e9 --- /dev/null +++ b/2-farm/lessons/1-predict-plant-growth/translations/wio-terminal-temp.fr.md @@ -0,0 +1,129 @@ +# Mesure de la tempÊrature - Terminal Wio + +Dans cette partie de la leçon, vous allez ajouter un capteur de tempÊrature à votre terminal Wio, et lire les valeurs de tempÊrature à partir de celui-ci. + +## MatÊriel + +Le terminal Wio a besoin d'un capteur de tempÊrature. + +La sonde que vous utiliserez est une [sonde d'humiditÊ et de tempÊrature DHT11](https://www.seeedstudio.com/Grove-Temperature-Humidity-Sensor-DHT11.html), combinant deux capteurs dans un mÃĒme boÃŽtier. Cette mÊthode est assez populaire, avec un certain nombre de capteurs disponibles dans le commerce combinant tempÊrature, humiditÊ et parfois pression atmosphÊrique. Le composant du capteur de tempÊrature est une thermistance à coefficient de tempÊrature nÊgatif (CTN), une thermistance dont la rÊsistance diminue lorsque la tempÊrature augmente. + +Il s'agit d'un capteur numÊrique, qui dispose donc d'un ADC intÊgrÊ pour crÊer un signal numÊrique contenant les donnÊes de tempÊrature et d'humiditÊ que le microcontrôleur peut lire. + +### Connecter le capteur de tempÊrature + +Le capteur de tempÊrature Grove peut ÃĒtre connectÊ au port numÊrique des terminaux Wio. + +#### TÃĸche - connecter le capteur de tempÊrature + +Connectez le capteur de tempÊrature. + +![Capteur de tempÊrature Grove](../../../../images/grove-dht11.png) + +1. InsÊrez une extrÊmitÊ d'un cÃĸble Grove dans la prise du capteur d'humiditÊ et de tempÊrature. Il ne peut ÃĒtre insÊrÊ que dans un seul sens. + +1. Le terminal Wio Êtant dÊconnectÊ de votre ordinateur ou de toute autre source d'alimentation, connectez l'autre extrÊmitÊ du cÃĸble Grove à la prise Grove de droite du terminal Wio lorsque vous regardez l'Êcran. Il s'agit de la prise la plus ÊloignÊe du bouton d'alimentation. + +![La sonde de tempÊrature Grove connectÊe à la prise de droite](../../../../images/wio-temperature-sensor.png) + +## Programmer le capteur de tempÊrature + +Le terminal Wio peut maintenant ÃĒtre programmÊ pour utiliser le capteur de tempÊrature joint. + +### TÃĸche - programmer le capteur de tempÊrature + +Programmez l'appareil. + +1. CrÊez un tout nouveau projet Wio Terminal en utilisant PlatformIO. Appelez ce projet `temperature-sensor`. Ajoutez du code dans la fonction `setup` pour configurer le port sÊrie. + + > âš ī¸ Vous pouvez vous rÊfÊrer [aux instructions pour crÊer un projet PlatformIO dans le projet 1, leçon 1 si nÊcessaire](../../../../1-getting-started/lessons/1-introduction-to-iot/wio-terminal.md#create-a-platformio-project). + +1. Ajoutez une dÊpendance de la bibliothèque de capteurs d'humiditÊ et de tempÊrature Seeed Grove au fichier `platformio.ini` du projet : + + ```ini + lib_deps = + seeed-studio/Grove Temperature And Humidity Sensor @ 1.0.1 + ``` + + > âš ī¸ Vous pouvez vous rÊfÊrer [aux instructions pour ajouter des bibliothèques à un projet PlatformIO dans le projet 1, leçon 4 si nÊcessaire](../../../../1-getting-started/lessons/4-connect-internet/wio-terminal-mqtt.md#install-the-wifi-and-mqtt-arduino-libraries). + +1. Ajoutez les directives `#include` suivantes en haut du fichier, sous la directive existante `#include ` : + + ```cpp + #include + #include + ``` + + Ceci importe les fichiers nÊcessaires pour interagir avec le capteur. Le fichier d'en-tÃĒte `DHT.h` contient le code du capteur lui-mÃĒme, et l'ajout de l'en-tÃĒte `SPI.h` garantit que le code nÊcessaire pour parler au capteur est liÊ lors de la compilation de l'application. + +1. Avant la fonction "setup", dÊclarez le capteur DHT : + + ```cpp + DHT dht(D0, DHT11); + ``` + + Ceci dÊclare une instance de la classe `DHT` qui gère le capteur **D**numÊrique **H** d'humiditÊ et **T** de tempÊrature. Celle-ci est connectÊe au port `D0`, le connecteur Grove de droite sur le terminal Wio. Le second paramètre indique au code que le capteur utilisÊ est le capteur *DHT11* - la bibliothèque que vous utilisez supporte d'autres variantes de ce capteur. + +1. Dans la fonction `setup`, ajoutez du code pour configurer la connexion sÊrie : + + ```cpp + void setup() + { + Serial.begin(9600); + + while (!Serial) + ; // Wait for Serial to be ready + + delay(1000); + } + ``` + +1. A la fin de la fonction `setup`, après le dernier `delay`, ajoutez un appel pour dÊmarrer le capteur DHT : + + ```cpp + dht.begin(); + ``` + +1. Dans la fonction `loop`, ajoutez du code pour appeler le capteur et imprimer la tempÊrature sur le port sÊrie : + + ```cpp + void loop() + { + float temp_hum_val[2] = {0}; + dht.readTempAndHumidity(temp_hum_val); + Serial.print("Temperature: "); + Serial.print(temp_hum_val[1]); + Serial.println ("°C"); + + delay(10000); + } + ``` + + Ce code dÊclare un tableau vide de 2 flottants, et le passe à l'appel à `readTempAndHumidity` sur l'instance `DHT`. Cet appel remplit le tableau avec 2 valeurs - l'humiditÊ va dans l'ÊlÊment 0 du tableau (rappelez-vous qu'en C++ les tableaux sont basÊs sur 0, donc le 0ème ÊlÊment est le 'premier' ÊlÊment du tableau), et la tempÊrature va dans le 1er ÊlÊment. + + La tempÊrature est lue à partir du premier ÊlÊment du tableau, et imprimÊe sur le port sÊrie. + + > đŸ‡ē🇸 La tempÊrature est lue en Celsius. Pour les AmÊricains, pour la convertir en Fahrenheit, il faut diviser la valeur Celsius lue par 5, puis multiplier par 9, puis ajouter 32. Par exemple, une tempÊrature de 20°C devient ((20/5)*9) + 32 = 68°F. + +1. Construisez et tÊlÊchargez le code sur le terminal Wio. + + > âš ī¸ Vous pouvez vous rÊfÊrer [aux instructions pour crÊer un projet PlatformIO dans le projet 1, leçon 1 si nÊcessaire](../../../../1-getting-started/lessons/1-introduction-to-iot/wio-terminal.md#write-the-hello-world-app). + +1. Une fois tÊlÊchargÊ, vous pouvez surveiller la tempÊrature en utilisant le moniteur sÊrie : + + ```output + > Executing task: platformio device monitor < + + --- Available filters and text transformations: colorize, debug, default, direct, hexlify, log2file, nocontrol, printable, send_on_enter, time + --- More details at http://bit.ly/pio-monitor-filters + --- Miniterm on /dev/cu.usbmodem1201 9600,8,N,1 --- + --- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H --- + Temperature: 25.00°C + Temperature: 25.00°C + Temperature: 25.00°C + Temperature: 24.00°C + ``` + +> 💁 Vous pouvez trouver ce code dans le fichier [code-tempÊrature/wio-terminal](../code-temperature/wio-terminal). + +😀 Votre programme de capteur de tempÊrature a ÊtÊ un succès ! diff --git a/2-farm/lessons/2-detect-soil-moisture/translations/README.fr.md b/2-farm/lessons/2-detect-soil-moisture/translations/README.fr.md new file mode 100644 index 00000000..9b7605ec --- /dev/null +++ b/2-farm/lessons/2-detect-soil-moisture/translations/README.fr.md @@ -0,0 +1,262 @@ +# Detect soil moisture + +![A sketchnote overview of this lesson](../../../sketchnotes/lesson-6.jpg) + +> Sketchnote by [Nitya Narasimhan](https://github.com/nitya). Click the image for a larger version. + +## Pre-lecture quiz + +[Pre-lecture quiz](https://brave-island-0b7c7f50f.azurestaticapps.net/quiz/11) + +## Introduction + +In the last lesson we looked at measuring an ambient property and using it to predict plant growth. Temperature can be controlled, but it is expensive to do so, requiring controlled environments. The easiest ambient property to control for plants is water - something that is controlled everyday from large-scale irrigation systems to young kids with watering cans watering their gardens. + +![A child watering a garden](../../../images/child-watering-garden.jpg) + +In this lesson you will learn about measuring soil moisture, and in the next lesson you will learn how to control an automated watering system. This lesson introduces a third sensor, you've already used a light sensor, a temperature sensor, so in this lesson you will also learn more about how sensors and actuators communicate with IoT devices to understand more about how a soil moisture sensor can send data to an IoT device. + +In this lesson we'll cover: + +* [Soil moisture](#soil-moisture) +* [How sensors communicate with IoT devices](#how-sensors-communicate-with-iot-devices) +* [Measure the moisture levels in soil](#measure-the-moisture-levels-in-soil) +* [Sensor calibration](#sensor-calibration) + +## Soil moisture + +Plants require water to grow. They absorb water throughout the entire plant, with the majority being absorbed by the root system. Water is used by the plant for three things: + +* [Photosynthesis](https://wikipedia.org/wiki/Photosynthesis) - plants creates a chemical reaction with water, carbon dioxide and light to produce carbohydrates and oxygen. +* [Transpiration](https://wikipedia.org/wiki/Transpiration) - plants use water for diffusion of carbon dioxide from the air into the plant via pores in the leaves. This process also carries nutrients around the plant, and cools the plant, similar to how humans sweat. +* Structure - plants also need water to maintain their structure - they are 90% water (as opposed to humans at only 60%), and this water keeps the cells rigid. If a plant doesn't have enough water it will wilt and eventually die. + +![Water is absorbed through plant roots then carried around the plant, being used for photosynthesis and plant structure](../../../images/transpiration.png) + +✅ Do some research: how much water is lost through transpiration? + +The root system provides water from moisture in the soil where the plant grows. Too little water in the soil and the plant cannot absorb enough to grow, too much water and roots cannot absorb enough oxygen needed to function. This leads to roots dying and the plant unable to get enough nutrients to survive. + +For a farmer to get the best plant growth, the soil needs to be not too wet and not too dry. IoT devices can help with this by measuring soil moisture, allowing a farmer to only water when needed. + +### Ways to measure soil moisture + +There are a range of different types of sensor you can use to measure soil moisture: + +* Resistive - a resistive sensor has 2 probes that go into the soil. An electric current is sent to one probe, and received by the other. The sensor then measures the resistance of the soil - measuring how much the current drops at the second probe. Water is a good conductor of electricity, so the higher the water content of the soil, the lower the resistance. + + ![A resistive soil moisture sensor](../../../images/resistive-soil-moisture-sensor.png) + + > 💁 You can build a resistive soil moisture sensor using two pieces of metal, such as nails, separated by a couple of centimeters, and measuring the resistance between them using a multimeter. + +* Capacitive - a capacitive moisture sensor measures the amount of electric charge that can be stored across a positive and a negative electrical plate, or [capacitance](https://wikipedia.org/wiki/Capacitance). The capacitance of soil changes as the moisture level changes, and this can be converted to a voltage that can be measured by an IoT device. The wetter the soil, the lower the voltage that comes out. + + ![A capacitive soil moisture sensor](../../../images/grove-capacitive-soil-moisture-sensor.png) + +These are both analog sensors, returning a voltage to indicate soil moisture. So how does this voltage get to your code? Before going any further with these sensors, let's look at how sensors and actuators communicate with IoT devices. + +## How sensors communicate with IoT devices + +So far in these lessons you've learned about a number of sensors and actuators, and these have been communicating with your IoT dev kit if you've been doing the physical hardware labs. But how does this communication work? How does a resistance measurement from a soil moisture sensor become a number you can use from code? + +To communicate with most sensors and actuators you need some hardware, and a communication protocol - that is a well defined way for data to be sent and received. Take for example a capacitive soil moisture sensor: + +* How is this sensor connected to the IoT device? +* If it measures a voltage that is an analog signal, it will need an ADC to create a digital representation of the value, and this value is sent as an alternating voltage to send 0s and 1s - but how long is each bit sent for? +* If the sensor returns a digital value, that will be a stream of 0s and 1s, again how long is each bit sent for? +* If the voltage is high for 0.1s is that a single 1 bit, or 2 consecutive 1 bits, or 10? +* At what point does the number start? Is `00001101` 25, or are the first 5 bits the end of the previous value? + +The hardware provides the physical connectivity over which the data is sent, the different communication protocols ensure that the data is sent or received in the correct way so it can be interpreted. + +### General Purpose Input Output (GPIO) pins + +GPIO is a set of pins you can use to connect hardware to your IoT device, and are often available on IoT developer kits such as the Raspberry Pi or Wio Terminal. You can use the various communication protocols covered in this section over the GPIO pins. Some GPIO pins provide a voltage, usually 3.3V or 5V, some pins are ground, and others can be programmatically set to either send a voltage (output), or receive a voltage (input). + +> 💁 An electrical circuit needs to connect a voltage to ground via whatever circuitry you are using. You can think of voltage as the positive (+ve) terminal of a battery and ground as the negative (-ve) terminal. + +You can use GPIO pins directly with some digital sensors and actuators when you only care about on or off values - on referred to as high, off as low. Some examples are: + +* Button. You can connect a button between a 5V pin and a pin set to input. When you press the button it completes a circuit between the 5V pin, through the button to the input pin. From code you can read the voltage at the input pin, and if it is high (5V) then the button is pressed, if it is low (0v) then the button is not pressed. Remember the actual voltage itself is not read, instead you get a digital signal of 1 or 0 depending on if the voltage is above a threshold or not. + + ![A button is sent 5 volts. When not pressed it returns 0 volts, or 0, when pressed it returns 5 volts, or 1](../../../images/button-with-digital.png) + +* LED. You can connect an LED between an output pin and a ground pin (using a resistor otherwise you'll burn out the LED). From code you can set the output pin to high and it will send 3.3V, making a circuit from the 3.3V pin, through the LED, to the ground pin. This will light the LED. + + ![An LED is sent a signal of 0 (3.3V), which lights the LED. If it is sent 0 (0v), the LED is not lit.](../../../images/led-digital-control.png) + +For more advanced sensors, you can use GPIO pins to send and receive digital data directly with digital sensors and actuators, or via controller boards with ADCs and DACs to talk to analog sensors and actuators. + +> 💁 if you are using a Raspberry Pi for these labs, the Grove Base Hat has hardware to convert analog sensor signals to digital to send over GPIO. + +✅ If you have an IoT device with GPIO pins, locate these pins and find a diagram indicating which pins are voltage, ground or programmable. + +### Analog pins + +Some devices, such as Arduino devices, provide analog pins. These are the same as GPIO pins, but instead of only supporting a digital signal, they have an ADC to convert voltage ranges to numerical values. Usually the ADC has a 10-bit resolution, meaning it converts voltages to a value of 0-1,023. + +For example, on a 3.3V board, if the sensor returns 3.3V, the value returned would be 1,023. If the voltage returned was 1.65v, the value returned will be 511. + +![A soil moisture sensor sent 3.3V and returning 1.65v, or a reading of 511](../../../images/analog-sensor-voltage.png) + +> 💁 Back in nightlight - lesson 3, the light sensor returned a value from 0-1,023. If you are using a Wio Terminal, the sensor was connected to an analog pin. If you are using a Raspberry Pi, then the sensor was connected to an analog pin on the base hat that has an integrated ADC to communicate over the GPIO pins. The virtual device was set to send a value from 0-1,023 to simulate an analog pin. + +Soil moisture sensors rely on voltages, so will use analog pins and give values from 0-1,023. + +### Inter Integrated Circuit (I2C) + +I2C, pronounced *I-squared-C*, is a multi-controller, multi-peripheral protocol, with any connected device able to act as a controller or peripheral communicating over the I2C bus (the name for a communication system that transfers data). Data is sent as addressed packets, with each packet containing the address of the connected device it is intended for. + +> 💁 This model used to be referred to as master/slave, but this terminology is being dropped due to its association with slavery. The [Open Source Hardware Association has adopted controller/peripheral](https://www.oshwa.org/a-resolution-to-redefine-spi-signal-names/), but you may still see references to the old terminology. + +Devices have an address that is used when they connect to the I2C bus, and is usually hard coded on the device. For example, each type of Grove sensor from Seeed has the same address, so all the light sensors have the same address, all the buttons have the same address that is different from the light sensor address. Some devices have ways to change the address, by changing jumper settings or soldering pins together. + +I2C has a bus made of 2 main wires, along with 2 power wires: + +| Wire | Name | Description | +| ---- | --------- | ----------- | +| SDA | Serial Data | This wire is for sending data between devices. | +| SCL | Serial Clock | This wire sends a clock signal at a rate set by the controller. | +| VCC | Voltage common collector | The power supply for the devices. This is connected to the SDA and SCL wires to provide their power via a pull-up resistor that switches the signal off when no device is the controller. | +| GND | Ground | This provides a common ground for the electrical circuit. | + +![I2C bus with 3 devices connected to the SDA and SCL wires, sharing a common ground wire](../../../images/i2c.png) + +To send data, one device will issue a start condition to show it is ready to send data. It will then become the controller. The controller then sends the address of the device that it wants to communicate with, along with if it wants to read or write data. After the data has been transmitted, the controller sends a stop condition to indicate that it has finished. After this another device can become the controller and send or receive data. + +I2C has speed limits, with 3 different modes running at fixed speeds. The fastest is High Speed mode with a maximum speed of 3.4Mbps (megabits per second), though very few devices support that speed. The Raspberry Pi for example, is limited to fast mode at 400Kbps (kilobits per second). Standard mode runs at 100Kbps. + +> 💁 If you are using a Raspberry Pi with a Grove Base hat as your IoT hardware, you will be able to see a number of I2C sockets on the board you can use to communicate with I2C sensors. Analog Grove sensors also use I2C with an ADC to send analog values as digital data, so the light sensor you used simulated an analog pin, with the value sent over I2C as the Raspberry Pi only supports digital pins. + +### Universal asynchronous receiver-transmitter (UART) + +UART involves physical circuitry that allows two devices to communicate. Each device has 2 communication pins - transmit (Tx) and receive (Rx), with the Tx pin of the first device connected to the Rx pin of the second, and with the Tx pin of the second device connected to the Rx pin of the first. This allows data to be sent in both directions. + +* Device 1 transmits data from its Tx pin, which is received by device 2 on it's Rx pin +* Device 1 receives data on its Rx pin that is transmitted by device 2 from its Tx pin + +![UART with the Tx pin on one chip connected to the Rx pin on another, and vice versa](../../../images/uart.png) + +> 🎓 The data is sent one bit at a time, and this is known as *serial* communication. Most operating systems and microcontrollers have *serial ports*, that is connections that can send and receive serial data that are available to your code. + +UART devices have a [baud rate](https://wikipedia.org/wiki/Symbol_rate) (also known as Symbol rate), which is the speed that data will be sent and received in bits per second. A common baud rate is 9,600, meaning 9,600 bits (0s and 1s) of data are sent each second. + +UART uses start and stop bits - that is it sends a start bit to indicate that it's about to send a byte (8 bits) of data, then a stop bit after it sends the 8 bits. + +UART speed is dependent on hardware, but even the fastest implementations don't exceed 6.5 Mbps (megabits per second, or millions of bits, 0 or 1, sent per second). + +You can use UART over GPIO pins - you can set one pin as Tx and another as Rx, then connect these to another device. + +> 💁 If you are using a Raspberry Pi with a Grove Base hat as your IoT hardware, you will be able to see a UART socket on the board you can use to communicate with sensors that use the UART protocol. + +### Serial Peripheral Interface (SPI) + +SPI is designed for communicating over short distances, such as on a microcontroller to talk to a storage device such as flash memory. It is based on a controller/peripheral model with a single controller (usually the processor of the IoT device) interacting with multiple peripherals. The controller controls everything by selecting a peripheral and sending or requesting data. + +> 💁 Like I2C, the terms controller and peripheral are recent changes, so you may see the older terms still used. + +SPI controllers use 3 wires, along with 1 extra wire per peripheral. Peripherals use 4 wires. These wires are: + +| Wire | Name | Description | +| ---- | --------- | ----------- | +| COPI | Controller Output, Peripheral Input | This wire is for sending data from the controller to the peripheral. | +| CIPO | Controller Input, peripheral Output | This wire is for sending data from the peripheral to the controller. | +| SCLK | Serial Clock | This wire sends a clock signal at a rate set by the controller. | +| CS | Chip Select | The controller has multiple wires, one per peripheral, and each wire connects to the CS wire on the corresponding peripheral. | + +![SPI with on controller and two peripherals](../../../images/spi.png) + +The CS wire is used to activate one peripheral at a time, communicating over the COPI and CIPO wires. When the controller needs to change peripheral, it deactivates the CS wire connected to the currently active peripheral, then activates the wire connected to the peripheral it wants to communicate with next. + +SPI is *full-duplex*, meaning the controller can send and receive data at the same time from the same peripheral using the COPI and CIPO wires. SPI uses a clock signal on the SCLK wire to keep the devices in sync, so unlike sending directly over UART it doesn't need start and stop bits. + +There are no defined speed limits for SPI, with implementations often able to transmit multiple megabytes of data per second. + +IoT developer kits often support SPI over some of the GPIO pins. For example, on a Raspberry Pi you can use GPIO pins 19, 21, 23, 24 and 26 for SPI. + +### Wireless + +Some sensors can communicate over standard wireless protocols, such as Bluetooth (mainly Bluetooth Low Energy, or BLE), LoRaWAN (a **Lo**ng **Ra**nge low power networking protocol), or WiFi. These allow for remote sensors not physically connected to an IoT device. + +One such example is in commercial soil moisture sensors. These will measure soil moisture in a field, then send the data over LoRaWan to a hub device, which will process the data or send it over the Internet. This allows the sensor to be away from the IoT device that manages the data, reducing power consumption and the need for large WiFi networks or long cables. + +BLE is popular for advanced sensors such as fitness trackers work on the wrist. These combine multiple sensors and send the sensor data to an IoT device in the form of your phone via BLE. + +✅ Do you have any bluetooth sensors on your person, in your house or in your school? These might include temperature sensors, occupancy sensors, device trackers and fitness devices. + +One popular way for commercial devices to connect is Zigbee. Zigbee uses WiFi to form mesh networks between devices, where each device connects to as many nearby devices as possible, forming a large number of connections like a spiders web. When one device wants to send a message to the Internet it can send it to the nearest devices, which then forward it on to other nearby devices and so on, until it reaches a coordinator and can be sent to the Internet. + +> 🐝 The name Zigbee refers to the waggle dance of honey bees after their return to the beehive. + +## Measure the moisture levels in soil + +You can measure the moisture level in soil using a soil moisture sensor, an IoT device, and a house plant or nearby patch of soil. + +### Task - measure soil moisture + +Work through the relevant guide to measure soil moisture using your IoT device: + +* [Arduino - Wio Terminal](wio-terminal-soil-moisture.md) +* [Single-board computer - Raspberry Pi](pi-soil-moisture.md) +* [Single-board computer - Virtual device](virtual-device-soil-moisture.md) + +## Sensor calibration + +Sensors rely on measuring electrical properties such as resistance or capacitance. + +> 🎓 Resistance, measured in ohms (Ί) is how much opposition there is to the electric current travelling through something. When a voltage is applied to a material, the amount of current that passes through it is dependant on the resistance of the material. You can read more on the [electrical resistance page on Wikipedia](https://wikipedia.org/wiki/Electrical_resistance_and_conductance). + +> 🎓 Capacitance, measured in farads (F), is the ability of a component or circuit to collect and store electrical energy. You can read more on capacitance on the [capacitance page on Wikipedia](https://wikipedia.org/wiki/Capacitance). + +These measurements are not always useful - imagine a temperature sensor that gave you a measurement of 22.5KΊ! Instead the value measured needs to be converted into a useful unit by being calibrated - that is matching the values measured to the quantity measured to allow new measurements to be converted to the right unit. + +Some sensors come pre-calibrated. For example the temperature sensor you used in the last lesson was already calibrated so that it can return a temperature measurement in °C. In the factory the first sensor created would be exposed to a range of known temperatures and the resistance measured. This would then be used to build a calculation that can convert from the value measured in Ί (the unit of resistance) to °C. + +> 💁 The formula to calculate resistance from temperature is called the [Steinhart–Hart equation](https://wikipedia.org/wiki/Steinhart–Hart_equation). + +### Soil moisture sensor calibration + +Soil moisture is measured using gravimetric or volumetric water content. + +* Gravimetric is the weight of water in a unit weight of soil measured, as the number of kilograms of water per kilogram of dry soil +* Volumetric is the volume of water in a unit volume of soil measured, as the number of cubic metres of water per cubic metres of dry soil + +> đŸ‡ē🇸 For Americans, because of the consistency of the units, these can be measured in pounds instead of kilograms or cubic feet instead of cubic metres. + +Soil moisture sensors measure electrical resistance or capacitance - this not only varies by soil moisture, but also soil type as the components in the soil can change its electrical characteristics. Ideally sensors should be calibrated - that is taking readings from the sensor and comparing them to measurements found using a more scientific approach. For example a lab can calculate the gravimetric soil moisture using samples of a specific field taken a few times a year, and these numbers used to calibrate the sensor, matching the sensor reading to the gravimetric soil moisture. + +![A graph of voltage vs soil moisture content](../../../images/soil-moisture-to-voltage.png) + +The graph above shows how to calibrate a sensor . The voltage is captured for a soil sample that is then measured in a lab by comparing the moist weight to the dry weight (by measuring the weight wet, then drying in an oven and measuring dry). Once a few readings have been taken, this can be plotted on a graph and a line fitted to the points. This line can then be used to convert soil moisture sensor readings taken by an IoT device into actual soil moisture measurements. + +💁 For resistive soil moisture sensors, the voltage increases as soil moisture increases. For capacitive soil moisture sensors, the voltage decreases as soil moisture increases, so the graphs for these would slope downwards, not upwards. + +![A soil moisture value interpolated from the graph](../../../images/soil-moisture-to-voltage-with-reading.png) + +The graph above shows a voltage reading from a soil moisture sensor, and by following that to the line on the graph, the actual soil moisture can be calculated. + +This approach means the farmer only needs to get a few lab measurements for a field, then they can use IoT devices to measure soil moisture - drastically speeding up the time to take measurements. + +--- + +## 🚀 Challenge + +Resistive and capacitive soil moisture sensors have a number of differences. What are these differences, and which type (if any) is the best for a farmer to use? Does this answer change between developing and developed countries? + +## Post-lecture quiz + +[Post-lecture quiz](https://brave-island-0b7c7f50f.azurestaticapps.net/quiz/12) + +## Review & Self Study + +Read up on the hardware and protocols used by sensors and actuators: + +* [GPIO Wikipedia page](https://wikipedia.org/wiki/General-purpose_input/output) +* [UART Wikipedia page](https://wikipedia.org/wiki/Universal_asynchronous_receiver-transmitter) +* [SPI Wikipedia page](https://wikipedia.org/wiki/Serial_Peripheral_Interface) +* [I2C Wikipedia page](https://wikipedia.org/wiki/I²C) +* [Zigbee Wikipedia page](https://wikipedia.org/wiki/Zigbee) + +## Assignment + +[Calibrate your sensor](assignment.md) diff --git a/2-farm/translations/README.fr.md b/2-farm/translations/README.fr.md new file mode 100644 index 00000000..5bf905cd --- /dev/null +++ b/2-farm/translations/README.fr.md @@ -0,0 +1,22 @@ +[![French](https://img.shields.io/badge/-French-purple)](translations/README.fr.md) + +# Agriculture et IoT + +Les besoins en agriculture augmentent avec la croissance de la popualtion. La quantitÊ de terres disponible ne change pas, bien que le climat lui, change. Ceci amène des dÊfits de plus en plus importants aux fermiers, plus particulièrement pour les 2 milliards de [fermiers de subsistance](https://wikipedia.org/wiki/Subsistence_agriculture) qui dÊpendent de cette production afin de se nourrir ainsi que leur famille. Les technologies des objets connectÊs ont le potentiel d'aider ces fermiers à faire de meilleures dÊcisions sur la production, notemment quoi faire pousser, quand rÊcolter, accroÃŽtre les rÊcoltes, rÊduire la main d'oeuvre ou encore dÊtecter et gÊrer les parasites. + +À l'occasion de ces 6 leçons, vous apprendrez à utiliser les technologies de l'internet des objets afin d'amÊliorer et automatiser certaines tÃĸches d'agriculture. + +> 💁 Ces leçons utiliserons des ressources infonuagiques. Si vous ne complÊtez pas toutes les leçons du prÊsent projet, nous vous prions de [nettoyer votre projet](../clean-up.md). + +## Thèmes + +1. [Anticiper la croissance de ses plantes](../lessons/1-predict-plant-growth/translations/README.fr.md) +1. [DÊtectez l'humiditÊ du sol](../lessons/2-detect-soil-moisture/translations/README.fr.md) +1. [Automatiser l'arrosage des plantes](../lessons/3-automated-plant-watering/translations/README.fr.md) +1. [Amenez vos plants dans l'infonuagique](../lessons/4-migrate-your-plant-to-the-cloud/translations/README.fr.md) +1. [Migrez votre application dans l'infonuagique](../lessons/5-migrate-application-to-the-cloud/translations/README.fr.md) +1. [Gardez vos plants sÊcurisÊs](../lessons/6-keep-your-plant-secure/translations/README.fr.md) + +## Credits + +L'entièretÊ des leçons ont ÊtÊ Êcrites avec â™Ĩī¸ par [Jim Bennett](https://GitHub.com/JimBobBennett) diff --git a/README.md b/README.md index a4bacfb8..78902d21 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ [![Bengali](https://img.shields.io/badge/-Bengali-blue)](translations/README.bn.md) [![Chinese](https://img.shields.io/badge/-Chinese-yellow)](translations/README.zh-cn.md) [![Turkish](https://img.shields.io/badge/-Turkish-darkgreen)](translations/README.tr.md) +[![French](https://img.shields.io/badge/-French-purple)](translations/README.fr.md) # IoT for Beginners - A Curriculum diff --git a/SECURITY.md b/SECURITY.md index f7b89984..882109a8 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -1,6 +1,6 @@ -## Security +# Security Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/). @@ -14,7 +14,7 @@ Instead, please report them to the Microsoft Security Response Center (MSRC) at If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://www.microsoft.com/en-us/msrc/pgp-key-msrc). -You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://www.microsoft.com/msrc). +You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://www.microsoft.com/msrc). Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue: diff --git a/translations/CODE_OF_CONDUCT.fr.md b/translations/CODE_OF_CONDUCT.fr.md new file mode 100644 index 00000000..a77f3ff7 --- /dev/null +++ b/translations/CODE_OF_CONDUCT.fr.md @@ -0,0 +1,9 @@ +# Code de conduite de Microsoft pour les logiciels libres + +Ce projet a adoptÊ le [Code de conduite de Microsoft Open Source](https://opensource.microsoft.com/codeofconduct/). + +Resources: + +- [Code de conduite de Microsoft pour les logiciels libres](https://opensource.microsoft.com/codeofconduct/) +- [FAQ sur le code de conduite de Microsoft](https://opensource.microsoft.com/codeofconduct/faq/) +- Contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with questions or concerns diff --git a/translations/CONTRIBUTING.fr.md b/translations/CONTRIBUTING.fr.md new file mode 100644 index 00000000..38287c67 --- /dev/null +++ b/translations/CONTRIBUTING.fr.md @@ -0,0 +1,12 @@ +# Contributing + +Ce projet est ouvert aux contributions et aux suggestions. La plupart des contributions nÊcessitent que vous +accepter un Accord de Licence de Contributeur (CLA) dÊclarant que vous avez le droit de, +et que vous nous accordez effectivement les droits d'utilisation de votre contribution. Pour plus de dÊtails, visitez +https://cla.microsoft.com. + +Lorsque vous soumettez une demande de retrait, un robot CLA dÊterminera automatiquement si vous devez fournir une CLA et dÊcorer le PR de manière appropriÊe (par exemple, Êtiquette, commentaire). Il suffit de suivre les instructions fournies par le bot. Vous n'aurez à le faire qu'une seule fois pour tous les dÊpôts utilisant notre CLA. + +Ce projet a adoptÊ le [Code de conduite de Microsoft Open Source](https://opensource.microsoft.com/codeofconduct/). +Pour plus d'informations, lisez la [FAQ sur le code de conduite](https://opensource.microsoft.com/codeofconduct/faq/) +ou contactez [opencode@microsoft.com](mailto:opencode@microsoft.com) pour toute question ou commentaire supplÊmentaire. diff --git a/translations/README.fr.md b/translations/README.fr.md new file mode 100644 index 00000000..0d3e128b --- /dev/null +++ b/translations/README.fr.md @@ -0,0 +1,136 @@ +[![GitHub license](https://img.shields.io/github/license/microsoft/IoT-For-Beginners.svg)](https://github.com/microsoft/IoT-For-Beginners/blob/master/LICENSE) +[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/IoT-For-Beginners.svg)](https://GitHub.com/microsoft/IoT-For-Beginners/graphs/contributors/) +[![GitHub issues](https://img.shields.io/github/issues/microsoft/IoT-For-Beginners.svg)](https://GitHub.com/microsoft/IoT-For-Beginners/issues/) +[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/IoT-For-Beginners.svg)](https://GitHub.com/microsoft/IoT-For-Beginners/pulls/) +[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) + +[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/IoT-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/IoT-For-Beginners/watchers/) +[![GitHub forks](https://img.shields.io/github/forks/microsoft/IoT-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/IoT-For-Beginners/network/) +[![GitHub stars](https://img.shields.io/github/stars/microsoft/IoT-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/IoT-For-Beginners/stargazers/) + +[![Bengali](https://img.shields.io/badge/-Bengali-blue)](README.bn.md) +[![Chinese](https://img.shields.io/badge/-Chinese-yellow)](README.zh-cn.md) +[![Turkish](https://img.shields.io/badge/-Turkish-darkgreen)](README.tr.md) +[![French](https://img.shields.io/badge/-French-purple)](README.fr.md) + +# IoT pour dÊbutants - Le Curriculum + +Chez Microsoft, les partisans d'Azure infonuagique sont fiers de vous offrir ce cursus de formation en ligne sur les bases de l'Internet des Objets (IoT). Cette formation de 12 semaines sera ventillÊe en 24 leçons, comprendra des questionnaires avant et après chacune des leçons. Elle comprendra aussi des instructions Êcrites permettant de complÊter les leçons, des solutions et bien plus encore. Notre pÊdagogie orientÊe sur la rÊalisation de projet vous permettra d'apprendre tout en dÊveloppant des compÊtences durables. + +L'ensemble des projets parlent du parcours que les aliments suivent, de la ferme jusqu'à l'assiette. On y aborde notemment la production à la ferme, la logistique, la fabrication, la ou encore de la vente au dÊtail. Bref, un ensemble d'industries propices à l'utilisation d'objets connectÊs. + +![Un cursus de 24 leçons abordant l'exploitation agricole, le transport, la transformation alimentaire, la vente au dÊtail ainsi que la cuisine](../sketchnotes/Roadmap.jpg) + +> IllustrÊ de [Nitya Narasimhan](https://github.com/nitya). Cliquez sur l'image pour l'agrandir. + +**Un remerciements chaleureux à nos auteurs [Jen Fox](https://github.com/jenfoxbot), [Jen Looper](https://github.com/jlooper), [Jim Bennett](https://github.com/jimbobbennett), and our sketchnote artist [Nitya Narasimhan](https://github.com/nitya).** + +**Un grand merci aussi à notre Êquipe [Microsoft Learn Student Ambassadors](https://studentambassadors.microsoft.com?WT.mc_id=academic-17441-jabenn) qui ont rÊvisÊs et traduit cette sÊrie de cours - [Aditya Garg](https://github.com/AdityaGarg00), [Anurag Sharma](https://github.com/Anurag-0-1-A), [Arpita Das](https://github.com/Arpiiitaaa), [Aryan Jain](https://www.linkedin.com/in/aryan-jain-47a4a1145/), [Bhavesh Suneja](https://github.com/EliteWarrior315), [Faith Hunja](https://faithhunja.github.io/), [Lateefah Bello](https://www.linkedin.com/in/lateefah-bello/), [Manvi Jha](https://github.com/Severus-Matthew), [Mireille Tan](https://www.linkedin.com/in/mireille-tan-a4834819a/), [Mohammad Iftekher (Iftu) Ebne Jalal](https://github.com/Iftu119), [Mohammad Zulfikar](https://github.com/mohzulfikar), [Priyanshu Srivastav](https://www.linkedin.com/in/priyanshu-srivastav-b067241ba), [Thanmai Gowducheruvu](https://github.com/innovation-platform), and [Zina Kamel](https://www.linkedin.com/in/zina-kamel/).** + +Rencontrez l'Êquipe! + +[![Video promo](../images/iot-for-beginners.png)](https://youtu.be/-wippUJRi5k) + +> đŸŽĨ Cliquez sur l'image ci-haut afin de consulter la vidÊo du projet + +> **Enseignants**, nous avons [inclus quelques suggestions](./for-teachers.fr.md) sur la manière d'utiliser cette sÊrie de cours. Si vous souhaitez ajouter vos propres leçons, nous avons crÊÊ ce [gabarit de cours](../lesson-template/README.md) pour votre convenance. + +> **Étudiants**, afin d'utiliser cette sÊrie de cours, clônez le projet gitHub et complÊtez les exercices en commençant par les questionnaires de prÊ-lecture, suivi des lectures elles-mÃĒmes puis du reste des activitÊs proposÊes. Nous vous conseillons fortement de crÊer les projets en vous basant aux lessons associÊes au lieu de copier les solutionnaires;toutefois, ce code est disponible dans la section /solutions de chaque leçon. Une autre proposition serait de crÊer un groupe d'Êtude avec des amis afin de complÊter le contenu ensembles. Pour des activitÊs d'apprentissage avancÊes, nous vous invitons à consulter [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn). + +Pour un apperçu de cette sÊrie de cours, voici une vidÊo intÊressante: + +[![Video promo](https://img.youtube.com/vi/bccEMm8gRuc/0.jpg)](https://youtube.com/watch?v=bccEMm8gRuc "Video promo") + +> đŸŽĨ Cliquez sur l'image ci-haut afin de consulter la vidÊo du projet! + +## PÊdagogie + +Nous avons construit ce cursus de formation en utilisant deux principes pÊdagogiques: l'apprentissage par projet ainsi que l'utilisation de quizzes frÊquents. À la fin de cette sÊrie, les Êtudiants auront bÃĸtis une système de surveillance et d'arrosage de plantes, un système de gÊolocalisation de vÊhicules, un système de suivi et de contrôle des aliments en usine ainsi qu'un minuteur contrôlÊ par la voix. Ces ÊlÊments d'apprentissage auront inclus l'Êcriture de code pour les objets connectÊs, la connectivitÊ au cloud, l'analyse de tÊlÊmÊtrie ainsi que l'utilisation d'intelligence artificielle par des appareils de pÊriphÊrie (edge devices). + +En s'assurant que le contenu thÊorique soit consÊquent avec les projets proposÊs, le processus d'apprentissage devient alors plus engageant et la rÊtention des concepts plus durable. + +De surcroÃŽt, les quizzes de dÊbut de cours mettent la tÃĸble en orientant l'attention de l'Êtudiant vers le sujet d'apprentissage alors que les quizzes de fin de cours assurent une meilleur rÊtention des notions. Ce cursus de formation a ÊtÊ conçu afin d'ÃĒtre flexible et plaisant, pouvant ÃĒtre suivi en entièretÊ ou en partie. En effet, les projets commencent petits et deviennent de plus en plus complexes en fin de parcours. + +Il est aussi à noter que chaque projet est construit à partir de matÊriel disponible pour les Êtudiants et hobbyistes. Chaque projet permet une comprÊhension du contexte auquel il appartient en fournissant suffisemment d'information pertinentes. En effet, afin de devenir un dÊveloppeur compÊtent, il est capitale de comprendre le contexte dans lequel un problème est exprimÊ puis rÊsolue. Cela permet aux Êtudiants de mieux concevoir leurs solutions "IoT" fÃĸce à des problèmes rÊels qu'ils seront Êventuellement amenÊs à rÊsoudre en tant que professionnels. Ces derniers comprennent alors les raisons qui justifient une conception et sont en mesure d'apprÊcier la perspective d'un utilisateur. + +## MatÊriel + +Nous proposons deux possibilitÊs de matÊriel "IoT" afin de rÊaliser nos projets afin de permettre plus de flexibilitÊ vis à vis vos prefÊrences, language de programmation favoris, objectifs d'apprentissage ou encore disponibilitÊ. Nous avons aussi fournis une version virtuelle du matÊriel en vue d'accomoder ceux n'ayant pas accès au matÊriel ou ne souhaitant pas dÊbourser. Alors, libre à vous d'en lire d'avantage sur la [page de matÊriel](./hardware.fr.md) incluant plusieurs liens permettant d'acheter des ensembles chez nos amis à Seeed Studio. + +> 💁 DÊcouvrez nos guides sur le [Code de conduite](CODE_OF_CONDUCT.fr.md), la [Contribution](CONTRIBUTING.fr.md), ainsi que la [Traduction](TRANSLATIONS.fr.md). Nous vous invitons à nous partager vos impressions! + +## Chaque leçon inclus: + +- illustrÊ +- vidÊo supplÊmentaire optionnelle +- questionnaire prÊliminaire +- leçon Êcrite +- pour les leçons incluant un projet, un guide complet sur la manière de construire le projet +- Êtapes d'apprentissage +- un dÊfi +- lectures complÊmentaires +- devoir +- questionnaire de fin de cours + +> **Note à propos des questionnaires**: Tous les questionnaires se retrouvent dans [cette application](https://brave-island-0b7c7f50f.azurestaticapps.net), pour un total de 48 questionnaires de trois questions chaque. Des liens sont fournis à l'intÊrieur de chacune des leçons bien que l'application puisse ÃĒtre exÊcutÊe localement; suivez les instructions situÊes dans le dossier `quiz-app`. Ces dernières deviennent progressivement localisÊes. + +## Leçons + +| | Nome du projet | Concept enseignÊ | Objectifs d'apprentissage | leçon associÊe | +| :-: | :----------: | :-------------: | ------------------- | :-----------: | +| 01 | [DÊmarrer](../1-getting-started) | Introduction aux IoT | Apprenez les principes fondamentaux de l'IoT ainsi que les ÊlÊments fondamentaux qui en font des solutions viables, tels que les capteurs et les services infonuagiques. Ceci, en configurant votre premier dispositif IoT | [Introduction aux IoT](../1-getting-started/lessons/1-introduction-to-iot/translations/README.fr.md) | +| 02 | [DÊmarrer](../1-getting-started) | Approfondir les bases | Apprenez-en davantage sur les composants d'un système IoT, ainsi que sur les microcontrôleurs et les ordinateurs monocartes | [Approfondir les bases](../1-getting-started/lessons/2-deeper-dive/translations/README.fr.md) | +| 03 | [DÊmarrer](../1-getting-started) | Interagir avec le monde physique à l'aide de capteurs et d'actuateurs | Apprenez à connaÃŽtre les capteurs qui recueillent les donnÊes du monde physique et les actionneurs qui envoient des informations, tout en construisant une veilleuse | [Interagir avec le monde physique à l'aide de capteurs et d'actuateurs](../1-getting-started/lessons/3-sensors-and-actuators/translations/README.fr.md) | +| 04 | [DÊmarrer](../1-getting-started) | Connectez votre appareil à l'Internet | DÊcouvrez comment connecter un appareil IoT à Internet pour envoyer et recevoir des messages en connectant votre veilleuse à un broker MQTT | [Connectez votre appareil à l'Internet](../1-getting-started/lessons/4-connect-internet/translations/README.fr.md) | +| 05 | [Jardinner](../2-farm) | Anticiper la croissance de ses plantes | Apprenez à prÊdire la croissance des plantes à l'aide des donnÊes de tempÊrature capturÊes par un dispositif IoT | [Anticiper la croissance de ses plantes](../2-farm/lessons/1-predict-plant-growth/translations/README.fr.md) | +| 06 | [Jardinner](../2-farm) | DÊtecter l'humiditÊ du sol | Apprenez à dÊtecter l'humiditÊ du sol et à calibrer un capteur d'humiditÊ du sol | [DÊtecter l'humiditÊ du sol](../2-farm/lessons/2-detect-soil-moisture/translations/README.fr.md) | +| 07 | [Jardinner](../2-farm) | Automatiser l'arrosage | Apprenez comment automatiser et chronomÊtrer l'arrosage à l'aide d'un relais et de MQTT | [Automatiser l'arrosage](../2-farm/lessons/3-automated-plant-watering/translations/README.fr.md) | +| 08 | [Jardinner](../2-farm) | Connectez votre plant au cloud | DÊcouvrez les services IoT hÊbergÊs dans le nuage et comment connecter votre plant à l'un d'entre eux plutôt qu'à un broker MQTT public | [Connectez votre plant au cloud](../2-farm/lessons/4-migrate-your-plant-to-the-cloud/translations/README.fr.md) | +| 09 | [Jardinner](../2-farm) | Migrer votre logique applicative vers le cloud | DÊcouvrez comment vous pouvez Êcrire dans le nuage une logique d'applicative qui rÊpond aux messages IoT | [Migrer votre logique applicative vers le cloud](../2-farm/lessons/5-migrate-application-to-the-cloud/translations/README.fr.md) | +| 10 | [Jardinner](../2-farm) | Plante en sÊcuritÊ | DÊcouvrez la sÊcuritÊ de l'IoT et comment sÊcuriser votre plante à l'aide de clÊs et de certificats | [Plante en sÊcuritÊ](../2-farm/lessons/6-keep-your-plant-secure/translations/README.fr.md) | +| 11 | [Transport](../3-transport) | GÊolocalisation | En savoir plus sur le suivi de la localisation GPS pour les dispositifs IoT | [GÊolocalisation](../3-transport/lessons/1-location-tracking/translations/README.fr.md) | +| 12 | [Transport](../3-transport) | Stocker les donnÊes localisÊes | Apprenez à stocker les donnÊes IoT pour les visualiser ou les analyser ultÊrieurement | [Stocker les donnÊes localisÊes](../3-transport/lessons/2-store-location-data/translations/README.fr.md) | +| 13 | [Transport](../3-transport) | Visualiser les donnÊes localisÊes | Learn about visualizing location data on a map, and how maps represent the real 3d world in 2 dimensions | [Visualiser les donnÊes localisÊes](../3-transport/lessons/3-visualize-location-data/translations/README.fr.md) | +| 14 | [Transport](../3-transport) | Barrières gÊographiques virtuelles | DÊcouvrez les gÊofences et la manière dont elles peuvent ÃĒtre utilisÊes pour alerter lorsque les vÊhicules de la chaÃŽne d'approvisionnement sont proches de leur destination | [Barrières gÊographiques virtuelles](../3-transport/lessons/4-geofences/translations/README.fr.md) | +| 15 | [Fabrication](../4-manufacturing) | Former un dÊtecteur de qualitÊ des fruits | Apprenez à former un classificateur d'images dans le nuage pour dÊtecter la qualitÊ des fruits | [Former un dÊtecteur de qualitÊ des fruits](../4-manufacturing/lessons/1-train-fruit-detector/translations/README.fr.md) | +| 16 | [Fabrication](../4-manufacturing) | VÊrifier la qualitÊ des fruits à partir d'un dispositif IoT | DÊcouvrez comment utiliser votre dÊtecteur de qualitÊ des fruits à partir d'un dispositif IoT | [VÊrifier la qualitÊ des fruits à partir d'un dispositif IoT](../4-manufacturing/lessons/2-check-fruit-from-device/translations/README.fr.md) | +| 17 | [Fabrication](../4-manufacturing) | Faites fonctionner votre dÊtecteur de fruits sur le Edge | DÊcouvrez comment faire fonctionner votre dÊtecteur de fruits sur un dispositif IoT à la pÊriphÊrie | [Faites fonctionner votre dÊtecteur de fruits sur le Edge](../4-manufacturing/lessons/3-run-fruit-detector-edge/translations/README.fr.md) | +| 18 | [Fabrication](../4-manufacturing) | DÊclencher la dÊtection de la qualitÊ du fruit à partir d'un capteur | En savoir plus sur le dÊclenchement de la dÊtection de la qualitÊ des fruits à partir d'un capteur | [DÊclencher la dÊtection de la qualitÊ du fruit à partir d'un capteur](../4-manufacturing/lessons/4-trigger-fruit-detector/translations/README.fr.md) | +| 19 | [Vente au dÊtail](../5-retail) | Former un dÊtecteur d'actions | Apprenez à utiliser la dÊtection d'objets pour entraÃŽner un dÊtecteur de stock à compter les stocks dans un magasin | [Former un dÊtecteur d'actions](../5-retail/lessons/1-train-stock-detector/translations/README.fr.md) | +| 20 | [Vente au dÊtail](../5-retail) | VÊrifier le stock à partir d'un dispositif IoT | Apprenez à vÊrifier le stock d'un dispositif IoT à l'aide d'un modèle de dÊtection d'objets. | [VÊrifier le stock à partir d'un dispositif IoT](../5-retail/lessons/2-check-stock-device/translations/README.fr.md) | +| 21 | [Consommateur](../6-consumer) | ReconnaÃŽtre la parole avec un dispositif IoT | Apprenez à reconnaÃŽtre la parole à partir d'un dispositif IoT pour construire une minuterie intelligente | [ReconnaÃŽtre la parole avec un dispositif IoT](../6-consumer/lessons/1-speech-recognition/translations/README.fr.md) | +| 22 | [Consommateur](../6-consumer) | Comprendre la langue | Apprenez à comprendre les phrases adressÊes à un dispositif IoT | [Comprendre la langue](../6-consumer/lessons/2-language-understanding/translations/README.fr.md) | +| 23 | [Consommateur](../6-consumer) | RÊglez un minuteur et donnez un feedback oral | Apprenez à rÊgler une minuterie sur un dispositif IoT et à donner un retour oral sur le moment oÚ la minuterie est rÊglÊe et oÚ elle se termine. | [RÊglez un minuteur et donnez un feedback oral](../6-consumer/lessons/3-spoken-feedback/translations/README.fr.md) | +| 24 | [Consommateur](../6-consumer) | Prise en charge de plusieurs langues | Apprenez à prendre en charge plusieurs langues, qu'il s'agisse de la langue parlÊe ou des rÊponses de votre minuterie intelligente | [Prise en charge de plusieurs langues](../6-consumer/lessons/4-multiple-language-support/translations/README.fr.md) | + +## Accès hors ligne + +Il vous est possible de rouler cette documentation en utilisant [Docsify](https://docsify.js.org/#/). Clônez ce projet, [installez Docsify](https://docsify.js.org/#/quickstart) localement sur votre machine puis dans le dossier racine de ce projet, tapez `docsify serve`. Le site web sera alors hÊbergÊ localement au port 3000: `localhost:3000` + +### PDF + +Il vous est aussi possible de gÊnÊrer un fichier PDF à partir de ce contenu pour un accès hors ligne. Afin d'y parvenir, assurez vous d'[avoir npm installÊ](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) puis entrez cette commande à partir du dossier racine de ce projet: + +```sh +npm i +npm run convert +``` + +### AcÊtates + +Les acÊtates de plusieures leçons sont contenues dans le dossier ["slides"](../slides). + +## Supportez la traduction! + +Vous souhaitez contribuer à la traduction? Nous vous prions de lire le [guide de traduction](TRANSLATIONS.fr.md), faites un "fork" de ce projet sur votre compte github puis ajoutez vos changements [à l'une de nos issues de traduction](https://github.com/microsoft/IoT-For-Beginners/issues?q=is%3Aissue+is%3Aopen+label%3Atranslation). Si vous souhaitez traduire en un nouveau language, vous devez alors lever une nouvelle issue afin de pouvoir la suivre. + +## D'autres formations + +Notre Êquipe a aussi produit d'autres cursus de formation! Nous vous invitons à y jeter un oeuil: + +- [Web Dev for Beginners](https://aka.ms/webdev-beginners) +- [ML for Beginners](https://aka.ms/ml-beginners) + +## Droits des images + +Les [droits](../attributions.md) des images utilisÊes dans ce projet sont le fichier attributions.md diff --git a/translations/SECURITY.fr.md b/translations/SECURITY.fr.md new file mode 100644 index 00000000..79f3c4a3 --- /dev/null +++ b/translations/SECURITY.fr.md @@ -0,0 +1,41 @@ + + +## SÊcuritÊ + +Microsoft prend au sÊrieux la sÊcuritÊ de ses produits et services logiciels, ce qui inclut tous les dÊpôts de code source gÊrÊs par nos organisations GitHub, dont [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), ainsi que [gestion GitHub](https://opensource.microsoft.com/). + +Si vous pensez avoir dÊcouvert une faille de sÊcuritÊ dans un rÊfÊrentiel appartenant à Microsoft et rÊpondant à [la dÊfinition de Microsoft d'une faille de sÊcuritÊ](https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc751383(v=technet.10)), veuillez nous le signaler comme dÊcrit ci-dessous. + +## Signaler les problèmes de sÊcuritÊ + +**Veuillez ne pas signaler les vulnÊrabilitÊs de sÊcuritÊ par le biais de problèmes publics sur GitHub.** + +Veuillez plutôt les signaler au centre de rÊponse à la sÊcuritÊ de Microsoft (MSRC) à l'adresse [https://msrc.microsoft.com/create-report](https://msrc.microsoft.com/create-report). + +Si vous prÊfÊrez soumettre votre candidature sans vous connecter, envoyez un courrier Êlectronique à l'adresse suivante : [secure@microsoft.com](mailto:secure@microsoft.com). Si possible, chiffrez votre message à l'aide de notre clÊ PGP ; tÊlÊchargez-la à partir de la page [Microsoft Security Response Center PGP Key](https://www.microsoft.com/en-us/msrc/pgp-key-msrc). + +Vous devriez recevoir une rÊponse dans les 24 heures. Si, pour une raison ou une autre, ce n'est pas le cas, veuillez relancer votre demande par courrier Êlectronique pour vous assurer que nous avons bien reçu votre message initial. Des informations supplÊmentaires sont disponibles à l'adresse [microsoft.com/msrc](https://www.microsoft.com/msrc). + +Veuillez inclure les informations demandÊes ci-dessous (dans la mesure oÚ vous pouvez les fournir) afin de nous aider à mieux comprendre la nature et la portÊe du problème Êventuel : + + * Type de problème (par exemple, dÊpassement de tampon, injection SQL, scripting intersite, etc.) + * Chemins d'accès complets du ou des fichiers sources liÊs à la manifestation du problème. + * L'emplacement du code source affectÊ (tag/branche/commit ou URL directe) + * Toute configuration spÊciale requise pour reproduire le problème + * Instructions Êtape par Êtape pour reproduire le problème + * Preuve de concept ou code d'exploitation (si possible) + * Impact du problème, y compris la manière dont un attaquant pourrait l'exploiter. + +Ces informations nous aideront à trier votre rapport plus rapidement. + +Si vous faites un rapport pour une prime de bogue, des rapports plus complets peuvent contribuer à une prime plus ÊlevÊe. Veuillez consulter notre [Programme de prime de bogue de Microsoft].(https://microsoft.com/msrc/bounty) page pour plus de dÊtails sur nos programmes actifs. + +## Langues prÊfÊrÊes + +Nous prÊfÊrons que toutes les communications soient en anglais. + +## Politique + +Microsoft suit le principe de la [divulgation coordonnÊe des vulnÊrabilitÊs](https://www.microsoft.com/en-us/msrc/cvd). + + \ No newline at end of file diff --git a/translations/SUPPORT.fr.md b/translations/SUPPORT.fr.md new file mode 100644 index 00000000..3b169f41 --- /dev/null +++ b/translations/SUPPORT.fr.md @@ -0,0 +1,11 @@ +# Support + +## Comment dÊposer des problèmes et obtenir de l'aide + +Ce projet utilise GitHub Issues pour suivre les bogues et les demandes de fonctionnalitÊs. Veuillez rechercher les problèmes existants avant de dÊposer de nouveaux problèmes afin d'Êviter les doublons. Pour les nouvelles questions, dÊposez votre bogue ou votre demande de fonctionnalitÊ dans une nouvelle question. + +Pour toute aide ou question concernant l'utilisation de ce projet, veuillez nous contacter en crÊant une "issue" dans ce projet. + +## Politique d'assistance de Microsoft + +Le soutien à ce **PROJET ou PRODUIT** est limitÊ aux ressources ÊnumÊrÊes ci-dessus. diff --git a/translations/TRANSLATIONS.fr.md b/translations/TRANSLATIONS.fr.md new file mode 100644 index 00000000..3afe7579 --- /dev/null +++ b/translations/TRANSLATIONS.fr.md @@ -0,0 +1,26 @@ +# Contribuez en traduisant des leçons + +Les traductions des leçons de ce programme sont les bienvenues ! + +## Directives + +Il y a des dossiers [**translations**](https://github.com/microsoft/IoT-For-Beginners/tree/main/1-getting-started/lessons/1-introduction-to-iot/translations) qui contiennent les fichiers markdown traduits. + +Les leçons traduites doivent respecter cette convention d'appellation : + +Lorsque vous traduisez le Readme initial, reliez les autres traductions à votre readme traduit et reliez le vôtre au readme principal en anglais en utilisant les boucliers comme indiquÊ : + +```markdown +[![Bengali](https://img.shields.io/badge/-Bengali-blue)](translations/README.bn.md) +``` +**README._[language]_.md** + +Dans la mesure ou _[language]_ est une abrÊviation linguistique de deux lettres suivant la norme ISO 639-1 (par exemple `README.es.md` pour l'espagnol et `README.nl.md` pour l'allemand). + +## Questionnaires + +Ajoutez votre traduction au quiz-app en ajoutant un fichier ici : https://github.com/microsoft/IoT-For-Beginners/tree/main/quiz-app/src/assets/translations. Veuillez ne pas localiser les mots 'true' ou 'false'. Merci ! + +## MERCI ! + +Nous apprÊcions vraiment vos efforts ! diff --git a/translations/for-teachers.fr.md b/translations/for-teachers.fr.md new file mode 100644 index 00000000..b6a2e376 --- /dev/null +++ b/translations/for-teachers.fr.md @@ -0,0 +1,27 @@ +# Pour les Êducateurs + +Vous souhaitez utiliser ce programme dans votre classe ? N'hÊsitez pas à le faire ! + +En fait, vous pouvez l'utiliser au sein mÃĒme de GitHub en utilisant GitHub Classroom. + +Pour ce faire, crÊez ce dÊpôt. Vous allez devoir crÊer un repo pour chaque leçon, donc vous allez devoir extraire chaque dossier dans un repo sÊparÊ. De cette façon, [GitHub Classroom](https://classroom.github.com/classrooms) peut reprendre chaque leçon sÊparÊment. + +Ces [instructions complètes](https://github.blog/2020-03-18-set-up-your-digital-classroom-with-github-classroom/) vous donneront une idÊe de la manière dont vous devez organiser votre classe. + +## Modèle d'apprentissage recommandÊ + +Vous pouvez en savoir plus sur le modèle d'apprentissage recommandÊ pour l'enseignement de ce programme dans notre [Guide du modèle d'apprentissage recommandÊ](recommended-learning-model.md). + +## En utilisant le dÊpôt tel quel + +Si vous souhaitez utiliser ce dÊpôt tel qu'il est actuellement, sans utiliser GitHub Classroom, c'est Êgalement possible. Il vous faudra alors indiquer à vos Êlèves quelle leçon ils souhaitent travailler ensemble. + +Dans un format en ligne (Zoom, Teams ou autre), vous pouvez crÊer des salles de discussion pour les quiz et guider les Êtudiants pour les aider à se prÊparer à apprendre. Invitez ensuite les Êtudiants à rÊpondre aux quiz et à soumettre leurs rÊponses sous forme de "questions" à un moment donnÊ. Vous pouvez faire de mÃĒme avec les devoirs, si vous souhaitez que les Êlèves travaillent en collaboration en plein air. + +Si vous prÊfÊrez un format plus privÊ, demandez à vos Êlèves de transfÊrer le programme, leçon par leçon, vers leurs propres dÊpôts GitHub en tant que dÊpôts privÊs, et de vous en donner l'accès. Ils pourront alors remplir les questionnaires et les devoirs en privÊ et vous les soumettre via des problèmes sur votre dÊpôt de classe. + +Il existe de nombreuses façons de faire fonctionner ce système dans un format de classe en ligne. Faites-nous part de ce qui fonctionne le mieux pour vous ! + +## Donnez-nous votre avis! + +Nous voulons que ce programme d'Êtudes fonctionne pour vous et vos Êlèves. Veuillez nous faire part de [vos commentaires](https://forms.microsoft.com/Pages/ResponsePage.aspx?id=v4j5cvGGr0GRqy180BHbR2humCsRZhxNuI79cm6n0hRUQzRVVU9VVlU5UlFLWTRLWlkyQUxORTg5WS4u). diff --git a/translations/hardware.fr.md b/translations/hardware.fr.md new file mode 100644 index 00000000..9e257557 --- /dev/null +++ b/translations/hardware.fr.md @@ -0,0 +1,107 @@ +# MatÊriel + +Le **T** dans IoT est **Things** et fait rÊfÊrence aux dispositifs qui interagissent avec le monde qui nous entoure. Chaque projet est basÊ sur du matÊriel du monde rÊel disponible pour les Êtudiants et les amateurs. Nous proposons deux choix de matÊriel IoT à utiliser en fonction des prÊfÊrences personnelles, des connaissances ou des prÊfÊrences en matière de langage de programmation, des objectifs d'apprentissage et de la disponibilitÊ. Nous avons Êgalement prÊvu une version "matÊriel virtuel" pour ceux qui n'ont pas accès au matÊriel ou qui souhaitent en savoir plus avant de s'engager dans un achat. + +> 💁 Vous n'avez pas besoin d'acheter de matÊriel IoT pour rÊaliser les missions. Vous pouvez tout faire en utilisant du matÊriel IoT virtuel. + +Les choix de matÊriel physique sont Arduino ou Raspberry Pi. Chaque plateforme a ses propres avantages et inconvÊnients, qui sont tous abordÊs dans l'une des premières leçons. Si vous n'avez pas encore choisi de plate-forme matÊrielle, vous pouvez consulter [la deuxième leçon du premier projet](./1-getting-started/lessons/2-deeper-dive/translations/README.fr.md) to decide which hardware platform you are most interested in learning. + +Le matÊriel spÊcifique a ÊtÊ choisi pour rÊduire la complexitÊ des leçons et des devoirs. Bien que d'autres matÊriels puissent fonctionner, nous ne pouvons pas garantir que toutes les missions seront prises en charge par votre appareil sans matÊriel supplÊmentaire. Par exemple, de nombreux appareils Arduino ne disposent pas du WiFi, qui est nÊcessaire pour se connecter au cloud - le terminal Wio a ÊtÊ choisi parce qu'il dispose du WiFi intÊgrÊ. + +Vous aurez Êgalement besoin de quelques articles non techniques, comme de la terre ou une plante en pot, et des fruits ou des lÊgumes. + +## Acheter les kits + +![Le logo des studios Seeed](../images/seeed-logo.png) + +Seeed Studios a très aimablement mis à disposition tout le matÊriel sous forme de kits faciles à acheter : + +### Arduino - Terminal Wio + +**[IoT pour les dÊbutants avec Seeed et Microsoft - Wio Terminal Starter Kit](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Wio-Terminal-Starter-Kit-p-5006.html)** + +[![Kit matÊriel du terminal Wio](../images/wio-hardware-kit.png)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Wio-Terminal-Starter-Kit-p-5006.html) + +### Raspberry Pi + +**[IoT pour les dÊbutants avec Seeed et Microsoft - Kit de dÊmarrage Raspberry Pi 4](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit.html)** + +[![Le kit matÊriel du terminal Raspberry Pi](../images/pi-hardware-kit.png)](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit.html) + +## Arduino + +Tout le code du dispositif pour Arduino est en C++. Pour rÊaliser tous les travaux, vous aurez besoin des ÊlÊments suivants : + +### Carte Arduino + +* [Terminal Wio](https://www.seeedstudio.com/Wio-Terminal-p-4509.html) +* *Optionnel* - CÃĸble USB-C ou adaptateur USB-A vers USB-C. Le terminal Wio possède un port USB-C et est livrÊ avec un cÃĸble USB-C vers USB-A. Si votre PC ou Mac ne possède que des ports USB-C, vous aurez besoin d'un cÃĸble USB-C ou d'un adaptateur USB-A vers USB-C. + +### Capteurs et actionneurs spÊcifiques à Arduino + +Ils sont spÊcifiques à l'utilisation du terminal Wio Arduino, et ne sont pas pertinentes pour l'utilisation du Raspberry Pi. + +* [ArduCam Mini 2MP Plus - OV2640](https://www.arducam.com/product/arducam-2mp-spi-camera-b0067-arduino/) +* [ReSpeaker 2-Mics Pi HAT](https://www.seeedstudio.com/ReSpeaker-2-Mics-Pi-HAT.html) +* [Breadboard Jumper Wires](https://www.seeedstudio.com/Breadboard-Jumper-Wire-Pack-241mm-200mm-160mm-117m-p-234.html) +* Un casque ou un autre haut-parleur avec une prise de 3,5 mm, ou un haut-parleur JST tel que : + * [Mono Enclosed Speaker - 2W 6 Ohm](https://www.seeedstudio.com/Mono-Enclosed-Speaker-2W-6-Ohm-p-2832.html) +* Carte microSD de 16 Go ou moins, ainsi qu'un connecteur pour utiliser la carte SD avec votre ordinateur si vous n'en avez pas un intÊgrÊ. **REMARQUE** - le terminal Wio ne prend en charge que les cartes SD jusqu'à 16 Go, il ne prend pas en charge les capacitÊs supÊrieures. + +## Raspberry Pi + +Tout le code du dispositif pour Raspberry Pi est en Python. Pour rÊaliser tous les travaux, vous aurez besoin des ÊlÊments suivants : + +### Carte Raspberry Pi + +* [Raspberry Pi](https://www.raspberrypi.org/products/raspberry-pi-4-model-b/) + > 💁 Les versions du Pi 2B et plus devraient fonctionner avec les devoirs de ces leçons. +* Carte microSD (vous pouvez obtenir des kits Raspberry Pi fournis avec une carte microSD), ainsi qu'un connecteur pour utiliser la carte SD avec votre ordinateur si vous n'en avez pas un intÊgrÊ. +* Alimentation Êlectrique USB (vous pouvez obtenir des kits Raspberry Pi 4 fournis avec une alimentation Êlectrique). Si vous utilisez un Raspberry Pi 4, vous avez besoin d'une alimentation USB-C. Les appareils plus anciens ont besoin d'une alimentation micro-USB. + +### Capteurs et actionneurs spÊcifiques à Raspberry Pi + +Ils sont spÊcifiques à l'utilisation du Raspberry Pi et ne sont pas pertinentes pour l'utilisation du dispositif Arduino. + +* [Grove Pi base hat](https://www.seeedstudio.com/Grove-Base-Hat-for-Raspberry-Pi.html) +* [Raspberry Pi Camera module](https://www.raspberrypi.org/products/camera-module-v2/) +* Microphone et speaker: + + Utilisez l'une des options suivantes (ou un Êquivalent) : + * Tout microphone USB avec tout haut-parleur USB, ou haut-parleur avec un cÃĸble jack 3,5 mm, ou en utilisant la sortie audio HDMI si votre Raspberry Pi est connectÊ à un moniteur ou un tÊlÊviseur avec des haut-parleurs. + * Tout casque d'Êcoute USB avec un microphone intÊgrÊ + * [ReSpeaker 2-Mics Pi HAT](https://www.seeedstudio.com/ReSpeaker-2-Mics-Pi-HAT.html) with + * Un casque ou un autre haut-parleur avec une prise de 3,5 mm, ou un haut-parleur JST tel que : + * [Mono Enclosed Speaker - 2W 6 Ohm](https://www.seeedstudio.com/Mono-Enclosed-Speaker-2W-6-Ohm-p-2832.html) + * [USB Speakerphone](https://www.amazon.com/USB-Speakerphone-Conference-Business-Microphones/dp/B07Q3D7F8S/ref=sr_1_1?dchild=1&keywords=m0&qid=1614647389&sr=8-1) +* [Senseur Grove Light](https://www.seeedstudio.com/Grove-Light-Sensor-v1-2-LS06-S-phototransistor.html) +* [Boutton Grove](https://www.seeedstudio.com/Grove-Button.html) + +## Capteurs et actionneurs + +Most of the sensors and actuators needed are used by both the Arduino and Raspberry Pi learning paths: + +* [Grove LED](https://www.seeedstudio.com/Grove-LED-Pack-p-4364.html) x 2 +* [Grove humidity and temperature sensor](https://www.seeedstudio.com/Grove-Temperature-Humidity-Sensor-DHT11.html) +* [Grove capacitive soil moisture sensor](https://www.seeedstudio.com/Grove-Capacitive-Moisture-Sensor-Corrosion-Resistant.html) +* [Grove relay](https://www.seeedstudio.com/Grove-Relay.html) +* [Grove GPS (Air530)](https://www.seeedstudio.com/Grove-GPS-Air530-p-4584.html) +* [Grove Time of flight Distance Sensor](https://www.seeedstudio.com/Grove-Time-of-Flight-Distance-Sensor-VL53L0X.html) + +## MatÊriel Optionel + +Les leçons sur l'arrosage automatique fonctionnent à l'aide d'un relais. En option, vous pouvez connecter ce relais à une pompe à eau alimentÊe par USB en utilisant le matÊriel indiquÊ ci-dessous. + +* [Pompe à eau 6V](https://www.seeedstudio.com/6V-Mini-Water-Pump-p-1945.html) +* [Terminal USB](https://www.adafruit.com/product/3628) +* Tubes en silicone +* Fils rouge et noir +* Petit tournevis à tÃĒte plate + +## MatÊriel virtuel + +La route du matÊriel virtuel fournira des simulateurs pour les capteurs et les actionneurs, implÊmentÊs en Python. En fonction de la disponibilitÊ de votre matÊriel, vous pouvez l'exÊcuter sur votre pÊriphÊrique de dÊveloppement habituel, tel qu'un Mac ou un PC, ou l'exÊcuter sur un Raspberry Pi et simuler uniquement le matÊriel dont vous ne disposez pas. Par exemple, si vous avez la camÊra Raspberry Pi mais pas les capteurs Grove, vous pourrez exÊcuter le code du dispositif virtuel sur votre Pi et simuler les capteurs Grove, mais utiliser une camÊra physique. + +Le matÊriel virtuel utilisera le [projet CounterFit](https://github.com/CounterFit-IoT/CounterFit). + +Pour suivre ces leçons, vous devez disposer d'une webcam, d'un microphone et d'une sortie audio (haut-parleurs ou casque). Ces ÊlÊments peuvent ÃĒtre intÊgrÊs ou externes, et doivent ÃĒtre configurÊs pour fonctionner avec votre système d'exploitation et ÃĒtre disponibles pour toutes les applications. From 2c30c69c656b4e4ed307c8289f0bd18bab73cddd Mon Sep 17 00:00:00 2001 From: ishowman <16897283+ishowman@users.noreply.github.com> Date: Mon, 20 Sep 2021 23:42:38 +0800 Subject: [PATCH 09/35] docs(clean-up): translate to zh-cn (#309) --- translations/clean-up.zh-cn.md | 41 ++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 translations/clean-up.zh-cn.md diff --git a/translations/clean-up.zh-cn.md b/translations/clean-up.zh-cn.md new file mode 100644 index 00000000..706d246a --- /dev/null +++ b/translations/clean-up.zh-cn.md @@ -0,0 +1,41 @@ +# æ¸…į†äŊ įš„éĄšį›Ž + +åŊ“äŊ åŽŒæˆæ¯ä¸ĒéĄšį›ŽåŽīŧŒč¯ˇåˆ é™¤äŊ įš„äē‘į̝čĩ„æēã€‚ + +在每ä¸ĒéĄšį›Žįš„č¯žį¨‹ä¸­īŧŒäšŸčޏäŊ åˆ›åģēäē†ä¸‹åˆ—įš„æŸäē›īŧš + +* 一ä¸Ēčĩ„æēįģ„ +* 一ä¸Ēį‰Šč”įŊ‘中åŋƒ +* į‰Šč”įŊ‘čŽžå¤‡æŗ¨å†Œ +* 一ä¸Ē存储č´Ļæˆˇ +* 一ä¸Ēå‡Ŋ数åē”ᔍ +* 一ä¸Ē Azure 地回č´Ļæˆˇ +* 一ä¸Ēč‡ĒåŽšäš‰č§†č§‰éĄšį›Ž +* 一ä¸Ē Azure åŽšå™¨æŗ¨å†ŒčĄ¨ +* 一ä¸Ē莤įŸĨæœåŠĄčĩ„æē + +čŋ™äē›čĩ„æēä¸­å¤§éƒ¨åˆ†éƒŊ不æ”ļč´š - åŽŒå…¨å…č´šæˆ–č€…æ˜¯å…č´šåą‚ã€‚å¯šäēŽč§„åޚäē†äģ˜č´šåą‚įš„æœåŠĄīŧŒäŊ įš„äŊŋᔍéĸåēĻäŧšåœ¨å…č´ščŒƒå›´å†…īŧŒæˆ–åĒčŠąč´šå‡ åˆ†é’ąã€‚ + +åŗäŊŋ成æœŦį›¸å¯ščžƒäŊŽīŧŒåŊ“äŊ åŽŒæˆéĄšį›ŽåŽäšŸåģēčŽŽåˆ é™¤čŋ™äē›čĩ„æēã€‚äž‹åĻ‚īŧŒå…č´šåą‚åĒčƒŊ有一ä¸Ēį‰Šč”įŊ‘中åŋƒīŧŒæ‰€äģĨåĻ‚æžœäŊ æƒŗéĸå¤–创åģē一ä¸ĒīŧŒäŊ éœ€čρäŊŋᔍäģ˜č´šåą‚。 + +äŊ įš„æ‰€æœ‰æœåŠĄéƒŊ是在čĩ„æēįģ„内创åģēįš„īŧŒčŋ™čŽŠįŽĄį†æ›´åŠ čŊģæžã€‚äŊ å¯äģĨ删除某ä¸Ēčĩ„æēįģ„īŧŒæ‰€æœ‰čĩ„æēįģ„å†…įš„čĩ„æēéƒŊäŧščˇŸį€åˆ é™¤ã€‚ + +在äŊ įš„įģˆįĢ¯æˆ–å‘Ŋä줿į¤ēįŦĻ中čŋčĄŒäģĨ下å‘Ŋä줿Ĩ删除čĩ„æēįģ„īŧš + +```sh +az group delete --name +``` + +æ›ŋäģŖ `` ä¸ēäŊ æƒŗåˆ é™¤įš„čĩ„æēįģ„名字。 + +æŽĨ下æĨäŧšæ˜žį¤ēä¸‹åˆ—įš„įĄŽčŽ¤äŋĄæ¯īŧš + +```output +Are you sure you want to perform this operation? (y/n): +``` + +输å…Ĩ `y` įĄŽčŽ¤åšļ删除čĩ„æēįģ„. + +åˆ é™¤æ‰€æœ‰æœåŠĄäŧšč€—贚一ä盿—ļ间。 + +> 💁 äŊ å¯äģĨ在 [Microsoft æ–‡æĄŖįš„ Azure čĩ„æēįŽĄį†å™¨čĩ„æēįģ„å’Œčĩ„æēåˆ é™¤](https://docs.microsoft.com/azure/azure-resource-manager/management/delete-resource-group?WT.mc_id=academic-17441-jabenn&tabs=azure-cli) čŽˇå–æ›´å¤šåˆ é™¤čĩ„æēįģ„įš„į›¸å…ŗå†…åŽšã€‚ \ No newline at end of file From c97516e287aed8d47d19f824ae8a312b604480a1 Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Tue, 28 Sep 2021 21:33:52 -0400 Subject: [PATCH 10/35] small edit for .gitignore and addition to README for DS --- .gitignore | 1 + README.md | 53 +++++++++++++++++++++++++++-------------------------- 2 files changed, 28 insertions(+), 26 deletions(-) diff --git a/.gitignore b/.gitignore index 1217dc76..b5387368 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ .vscode/ipch .ipynb_checkpoints /node_modules +quiz-app/dist diff --git a/README.md b/README.md index 78902d21..c7fb8eab 100644 --- a/README.md +++ b/README.md @@ -76,32 +76,32 @@ We have two choices of IoT hardware to use for the projects depending on persona ## Lessons -| | Project Name | Concepts Taught | Learning Objectives | Linked Lesson | -| :-: | :----------: | :-------------: | ------------------- | :-----------: | -| 01 | [Getting started](./1-getting-started) | Introduction to IoT | Learn the basic principles of IoT and the basic building blocks of IoT solutions such as sensors and cloud services whilst you are setting up your first IoT device | [Introduction to IoT](./1-getting-started/lessons/1-introduction-to-iot/README.md) | -| 02 | [Getting started](./1-getting-started) | A deeper dive into IoT | Learn more about the components of an IoT system, as well as microcontrollers and single-board computers | [A deeper dive into IoT](./1-getting-started/lessons/2-deeper-dive/README.md) | -| 03 | [Getting started](./1-getting-started) | Interact with the physical world with sensors and actuators | Learn about sensors to gather data from the physical world, and actuators to send feedback, whilst you build a nightlight | [Interact with the physical world with sensors and actuators](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | -| 04 | [Getting started](./1-getting-started) | Connect your device to the Internet | Learn about how to connect an IoT device to the Internet to send and receive messages by connecting your nightlight to an MQTT broker | [Connect your device to the Internet](./1-getting-started/lessons/4-connect-internet/README.md) | -| 05 | [Farm](./2-farm) | Predict plant growth | Learn how to predict plant growth using temperature data captured by an IoT device | [Predict plant growth](./2-farm/lessons/1-predict-plant-growth/README.md) | -| 06 | [Farm](./2-farm) | Detect soil moisture | Learn how to detect soil moisture and calibrate a soil moisture sensor | [Detect soil moisture](./2-farm/lessons/2-detect-soil-moisture/README.md) | -| 07 | [Farm](./2-farm) | Automated plant watering | Learn how to automate and time watering using a relay and MQTT | [Automated plant watering](./2-farm/lessons/3-automated-plant-watering/README.md) | -| 08 | [Farm](./2-farm) | Migrate your plant to the cloud | Learn about the cloud and cloud-hosted IoT services and how to connect your plant to one of these instead of a public MQTT broker | [Migrate your plant to the cloud](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | -| 09 | [Farm](./2-farm) | Migrate your application logic to the cloud | Learn about how you can write application logic in the cloud that responds to IoT messages | [Migrate your application logic to the cloud](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | -| 10 | [Farm](./2-farm) | Keep your plant secure | Learn about security with IoT and how to keep your plant secure with keys and certificates | [Keep your plant secure](./2-farm/lessons/6-keep-your-plant-secure/README.md) | -| 11 | [Transport](./3-transport) | Location tracking | Learn about GPS location tracking for IoT devices | [Location tracking](./3-transport/lessons/1-location-tracking/README.md) | -| 12 | [Transport](./3-transport) | Store location data | Learn how to store IoT data to be visualized or analysed later | [Store location data](./3-transport/lessons/2-store-location-data/README.md) | -| 13 | [Transport](./3-transport) | Visualize location data | Learn about visualizing location data on a map, and how maps represent the real 3d world in 2 dimensions | [Visualize location data](./3-transport/lessons/3-visualize-location-data/README.md) | -| 14 | [Transport](./3-transport) | Geofences | Learn about geofences, and how they can be used to alert when vehicles in the supply chain are close to their destination | [Geofences](./3-transport/lessons/4-geofences/README.md) | -| 15 | [Manufacturing](./4-manufacturing) | Train a fruit quality detector | Learn about training an image classifier in the cloud to detect fruit quality | [Train a fruit quality detector](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | -| 16 | [Manufacturing](./4-manufacturing) | Check fruit quality from an IoT device | Learn about using your fruit quality detector from an IoT device | [Check fruit quality from an IoT device](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | -| 17 | [Manufacturing](./4-manufacturing) | Run your fruit detector on the edge | Learn about running your fruit detector on an IoT device on the edge | [Run your fruit detector on the edge](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | -| 18 | [Manufacturing](./4-manufacturing) | Trigger fruit quality detection from a sensor | Learn about triggering fruit quality detection from a sensor | [Trigger fruit quality detection from a sensor](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | -| 19 | [Retail](./5-retail) | Train a stock detector | Learn how to use object detection to train a stock detector to count stock in a shop | [Train a stock detector](./5-retail/lessons/1-train-stock-detector/README.md) | -| 20 | [Retail](./5-retail) | Check stock from an IoT device | Learn how to check stock from an IoT device using an object detection model | [Check stock from an IoT device](./5-retail/lessons/2-check-stock-device/README.md) | -| 21 | [Consumer](./6-consumer) | Recognize speech with an IoT device | Learn how to recognize speech from an IoT device to build a smart timer | [Recognize speech with an IoT device](./6-consumer/lessons/1-speech-recognition/README.md) | -| 22 | [Consumer](./6-consumer) | Understand language | Learn how to understand sentences spoken to an IoT device | [Understand language](./6-consumer/lessons/2-language-understanding/README.md) | -| 23 | [Consumer](./6-consumer) | Set a timer and provide spoken feedback | Learn how to set a timer on an IoT device and give spoken feedback on when the timer is set and when it finishes | [Set a timer and provide spoken feedback](./6-consumer/lessons/3-spoken-feedback/README.md) | -| 24 | [Consumer](./6-consumer) | Support multiple languages | Learn how to support multiple languages, both being spoken to and the responses from your smart timer | [Support multiple languages](./6-consumer/lessons/4-multiple-language-support/README.md) | +| | Project Name | Concepts Taught | Learning Objectives | Linked Lesson | +| :---: | :------------------------------------: | :---------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------: | +| 01 | [Getting started](./1-getting-started) | Introduction to IoT | Learn the basic principles of IoT and the basic building blocks of IoT solutions such as sensors and cloud services whilst you are setting up your first IoT device | [Introduction to IoT](./1-getting-started/lessons/1-introduction-to-iot/README.md) | +| 02 | [Getting started](./1-getting-started) | A deeper dive into IoT | Learn more about the components of an IoT system, as well as microcontrollers and single-board computers | [A deeper dive into IoT](./1-getting-started/lessons/2-deeper-dive/README.md) | +| 03 | [Getting started](./1-getting-started) | Interact with the physical world with sensors and actuators | Learn about sensors to gather data from the physical world, and actuators to send feedback, whilst you build a nightlight | [Interact with the physical world with sensors and actuators](./1-getting-started/lessons/3-sensors-and-actuators/README.md) | +| 04 | [Getting started](./1-getting-started) | Connect your device to the Internet | Learn about how to connect an IoT device to the Internet to send and receive messages by connecting your nightlight to an MQTT broker | [Connect your device to the Internet](./1-getting-started/lessons/4-connect-internet/README.md) | +| 05 | [Farm](./2-farm) | Predict plant growth | Learn how to predict plant growth using temperature data captured by an IoT device | [Predict plant growth](./2-farm/lessons/1-predict-plant-growth/README.md) | +| 06 | [Farm](./2-farm) | Detect soil moisture | Learn how to detect soil moisture and calibrate a soil moisture sensor | [Detect soil moisture](./2-farm/lessons/2-detect-soil-moisture/README.md) | +| 07 | [Farm](./2-farm) | Automated plant watering | Learn how to automate and time watering using a relay and MQTT | [Automated plant watering](./2-farm/lessons/3-automated-plant-watering/README.md) | +| 08 | [Farm](./2-farm) | Migrate your plant to the cloud | Learn about the cloud and cloud-hosted IoT services and how to connect your plant to one of these instead of a public MQTT broker | [Migrate your plant to the cloud](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) | +| 09 | [Farm](./2-farm) | Migrate your application logic to the cloud | Learn about how you can write application logic in the cloud that responds to IoT messages | [Migrate your application logic to the cloud](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) | +| 10 | [Farm](./2-farm) | Keep your plant secure | Learn about security with IoT and how to keep your plant secure with keys and certificates | [Keep your plant secure](./2-farm/lessons/6-keep-your-plant-secure/README.md) | +| 11 | [Transport](./3-transport) | Location tracking | Learn about GPS location tracking for IoT devices | [Location tracking](./3-transport/lessons/1-location-tracking/README.md) | +| 12 | [Transport](./3-transport) | Store location data | Learn how to store IoT data to be visualized or analysed later | [Store location data](./3-transport/lessons/2-store-location-data/README.md) | +| 13 | [Transport](./3-transport) | Visualize location data | Learn about visualizing location data on a map, and how maps represent the real 3d world in 2 dimensions | [Visualize location data](./3-transport/lessons/3-visualize-location-data/README.md) | +| 14 | [Transport](./3-transport) | Geofences | Learn about geofences, and how they can be used to alert when vehicles in the supply chain are close to their destination | [Geofences](./3-transport/lessons/4-geofences/README.md) | +| 15 | [Manufacturing](./4-manufacturing) | Train a fruit quality detector | Learn about training an image classifier in the cloud to detect fruit quality | [Train a fruit quality detector](./4-manufacturing/lessons/1-train-fruit-detector/README.md) | +| 16 | [Manufacturing](./4-manufacturing) | Check fruit quality from an IoT device | Learn about using your fruit quality detector from an IoT device | [Check fruit quality from an IoT device](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) | +| 17 | [Manufacturing](./4-manufacturing) | Run your fruit detector on the edge | Learn about running your fruit detector on an IoT device on the edge | [Run your fruit detector on the edge](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | +| 18 | [Manufacturing](./4-manufacturing) | Trigger fruit quality detection from a sensor | Learn about triggering fruit quality detection from a sensor | [Trigger fruit quality detection from a sensor](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | +| 19 | [Retail](./5-retail) | Train a stock detector | Learn how to use object detection to train a stock detector to count stock in a shop | [Train a stock detector](./5-retail/lessons/1-train-stock-detector/README.md) | +| 20 | [Retail](./5-retail) | Check stock from an IoT device | Learn how to check stock from an IoT device using an object detection model | [Check stock from an IoT device](./5-retail/lessons/2-check-stock-device/README.md) | +| 21 | [Consumer](./6-consumer) | Recognize speech with an IoT device | Learn how to recognize speech from an IoT device to build a smart timer | [Recognize speech with an IoT device](./6-consumer/lessons/1-speech-recognition/README.md) | +| 22 | [Consumer](./6-consumer) | Understand language | Learn how to understand sentences spoken to an IoT device | [Understand language](./6-consumer/lessons/2-language-understanding/README.md) | +| 23 | [Consumer](./6-consumer) | Set a timer and provide spoken feedback | Learn how to set a timer on an IoT device and give spoken feedback on when the timer is set and when it finishes | [Set a timer and provide spoken feedback](./6-consumer/lessons/3-spoken-feedback/README.md) | +| 24 | [Consumer](./6-consumer) | Support multiple languages | Learn how to support multiple languages, both being spoken to and the responses from your smart timer | [Support multiple languages](./6-consumer/lessons/4-multiple-language-support/README.md) | ## Offline access @@ -130,6 +130,7 @@ Our team produces other curricula! Check out: - [Web Dev for Beginners](https://aka.ms/webdev-beginners) - [ML for Beginners](https://aka.ms/ml-beginners) +- [Data Science for Beginners](https://aka.ms/datascience-beginners) ## Image attributions From ee6bb10110ae97e4a76b5d3bec0003d83a0135dd Mon Sep 17 00:00:00 2001 From: Jim Bennett Date: Wed, 29 Sep 2021 14:40:06 -0700 Subject: [PATCH 11/35] Update CONTRIBUTING.md --- CONTRIBUTING.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4ae0ac57..d23d600f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -5,6 +5,8 @@ agree to a Contributor License Agreement (CLA) declaring that you have the right and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com. +> Important: when translating text in this repo, please ensure that you do not use machine translation. We will verify translations via the community, so please only volunteer for translations in languages where you are proficient. + When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repositories using our CLA. From 2f4aaa4b5bc700d5468935d36a391c0853d1f202 Mon Sep 17 00:00:00 2001 From: Jim Bennett Date: Wed, 29 Sep 2021 14:40:24 -0700 Subject: [PATCH 12/35] Update TRANSLATIONS.md --- TRANSLATIONS.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/TRANSLATIONS.md b/TRANSLATIONS.md index 2137b6ea..70171e2c 100644 --- a/TRANSLATIONS.md +++ b/TRANSLATIONS.md @@ -17,6 +17,8 @@ When translating the initial Readme, link the other translations to your transla where _[language]_ is a two letter language abbreviation following the ISO 639-1 standard (e.g. `README.es.md` for Spanish and `README.nl.md` for Dutch). +> Important: when translating text in this repo, please ensure that you do not use machine translation. We will verify translations via the community, so please only volunteer for translations in languages where you are proficient. + ## Quizzes Add your translation to the quiz-app by adding a file here: https://github.com/microsoft/IoT-For-Beginners/tree/main/quiz-app/src/assets/translations. Please don't localize the words 'true' or 'false' however. thanks! From cfbc5878f2022e06801f19bd8efb724e1f49838b Mon Sep 17 00:00:00 2001 From: Jim Bennett Date: Wed, 29 Sep 2021 15:36:40 -0700 Subject: [PATCH 13/35] Update wio-terminal.md --- .../lessons/1-introduction-to-iot/wio-terminal.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/1-getting-started/lessons/1-introduction-to-iot/wio-terminal.md b/1-getting-started/lessons/1-introduction-to-iot/wio-terminal.md index 71c9cce3..15368740 100644 --- a/1-getting-started/lessons/1-introduction-to-iot/wio-terminal.md +++ b/1-getting-started/lessons/1-introduction-to-iot/wio-terminal.md @@ -154,6 +154,16 @@ Write the Hello World app. The `loop` function sends the line `Hello World!` to the serial port, so the characters of `Hello World!` along with a new line character. It then sleeps for 5,000 milliseconds or 5 seconds. After the `loop` ends, it is run again, and again, and so on all the time the microcontroller is powered on. +1. Put your Wio Terminal into upload mode. You will need to do this every time you upload new code to the device: + + 1. Pull down twice quickly on the power switch - it will spring back to the on position each time. + + 1. Check the blue status LED to the right hand side of the USB port. It should be pulsing. + + [![A video showing how to put the Wio Terminal into upload mode](https://img.youtube.com/vi/LeKU_7zLRrQ/0.jpg)](https://youtu.be/LeKU_7zLRrQ) + + Click the image above for a video showing how to do this. + 1. Build and upload the code to the Wio Terminal 1. Open the VS Code command palette @@ -168,7 +178,7 @@ Write the Hello World app. > 💁 If you are using macOS, a notification about a *DISK NOT EJECTED PROPERLY* will appear. This is because the Wio Terminal gets mounted as a drive as part of the flashing process, and it is disconnected when the compiled code is written to the device. You can ignore this notification. - âš ī¸ If you get errors about the upload port being unavailable, first make sure you have the Wio Terminal connected to your computer, and switched on using the switch on the left hand side of the screen. The green light on the bottom should be on. If you still get the error, pull the on/off switch down twice in quick succession to force the Wio Terminal into bootloader mode and try the upload again. + âš ī¸ If you get errors about the upload port being unavailable, first make sure you have the Wio Terminal connected to your computer, and switched on using the switch on the left hand side of the screen, and set into upload mode. The green light on the bottom should be on, and the blue light should be pulsing. If you still get the error, pull the on/off switch down twice in quick succession again to force the Wio Terminal into upload mode and try the upload again. PlatformIO has a Serial Monitor that can monitor data sent over the USB cable from the Wio Terminal. This allows you to monitor the data sent by the `Serial.println("Hello World");` command. From 54ed42874ad5290fb9ae2db2c664fcfe5ed9096f Mon Sep 17 00:00:00 2001 From: Flex Zhong Date: Mon, 4 Oct 2021 07:04:42 +0800 Subject: [PATCH 14/35] Update README.zh-cn.md (#313) * Update README.zh-cn.md * Update README.zh-cn.md --- translations/README.zh-cn.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/translations/README.zh-cn.md b/translations/README.zh-cn.md index 2935a0ea..246ee905 100644 --- a/translations/README.zh-cn.md +++ b/translations/README.zh-cn.md @@ -36,7 +36,7 @@ Microsoft įš„ Azure Cloud 大äŊŋ垈éĢ˜å…´æäž›å…ŗäēŽ IoT åŸēįĄ€įš„ä¸€ä¸Ē 12 ä¸Ē > đŸŽĨ į‚šå‡ģäģĨä¸Šįš„å›žį‰‡æĨįœ‹čŋ™ä¸ĒéĄšį›Žįš„åŽŖäŧ į‰‡īŧ -## 教å­Ļæŗ• +## 教å­Ļæ–šæŗ• 创åģēčŋ™ä¸Ēč¯žį¨‹æ—ļīŧŒæˆ‘äģŦ选拊äē†ä¸¤ä¸Ēæ•™č‚˛åŽŸį†īŧšįĄŽäŋåރåŸēäēŽéĄšį›ŽäģĨ及厃常常包æ‹ŦįŸĨ蝆æĩ‹éĒŒã€‚åŽŒæˆč¯žį¨‹åŽīŧŒå­Ļį”ŸäģŦåē”č¯Ĩ创åģēäē†ä¸€ä¸Ēæ¤į‰Šį›‘æĩ‹å’Œæĩ‡æ°´įŗģįģŸã€čŊĻ辆čŋŊč¸Ē器、ä¸ēäē†čŋŊč¸Ēå’ŒæŖ€æŸĨéŖŸį‰Šįš„æ™ēčƒŊåˇĨåŽ‚čŽžįŊŽäģĨåŠåŖ°æŽ§įƒšéĨĒ厚æ—ļ器īŧŒčŋ˜æœ‰å­Ļäŧšäē†į‰Šč”įŊ‘įš„åŸēæœŦ技čƒŊīŧŒåŒ…æ‹Ŧ怎䚈ä¸ēčŽžå¤‡å†™äģŖį ã€čŋžæŽĨ到äē‘、分析éĨæĩ‹äģĨåŠåœ¨čžšįŧ˜ä¸ŠčŋčĄŒäēēåˇĨæ™ēčƒŊ。 @@ -50,7 +50,7 @@ Microsoft įš„ Azure Cloud 大äŊŋ垈éĢ˜å…´æäž›å…ŗäēŽ IoT åŸēįĄ€įš„ä¸€ä¸Ē 12 ä¸Ē 栚捎äŊ č‡Ēåˇąįš„é€‰æ‹Šã€įŸĨ道或喜æŦĸįš„įŧ–į č¯­č¨€ã€å­Ļäš į›Žæ ‡į­‰īŧŒæˆ‘äģŦ寚äēŽéĄšį›Žįš„ IoT įĄŦäģᅵ‰ä¸¤ä¸Ē选拊。我äģŦ䚟提䞛äē†ä¸€ä¸Ēâ€œč™šæ‹ŸįĄŦäģļâ€įš„į‰ˆæœŦīŧŒä¸ēæ— æŗ•æ‹ŋ到įĄŦäģ￈–č€…æƒŗåœ¨äš°įĄŦäģļ䚋前å­Ļå¤šä¸€į‚šå„ŋ东čĨŋįš„äēē。äŊ čƒŊ在[įĄŦäģļéĄĩ](../hardware.md)扞到更多čĩ„æ–™ä¸Žâ€œč´­į‰Šæ¸…å•â€īŧ›åŽƒäšŸåŒ…æ‹ŦæĨč‡Ē我äģŦ朋友 Seeed Studio 厌整åĨ—äģļįš„é“žæŽĨ。 -> 💁 扞一下我äģŦįš„[行ä¸ē厈则](../CODE_OF_CONDUCT.md)、 [č´ĄįŒŽ](../CONTRIBUTING.md)和 [įŋģ蝑](../TRANSLATIONS.md)įš„æŒ‡å¯ŧ斚针。 我äģŦæŦĸčŋŽäŊ įš„åģēčŽžæ€§åéψīŧ +> 💁 扞一下我äģŦįš„ [行ä¸ē厈则](../CODE_OF_CONDUCT.md)、 [č´ĄįŒŽ](../CONTRIBUTING.md) 和 [įŋģ蝑](../TRANSLATIONS.md) įš„æŒ‡å¯ŧ斚针。 我äģŦæŦĸčŋŽäŊ įš„åģēčŽžæ€§åéψīŧ ## 每ä¸Ēč¯žåŒ…æ‹Ŧīŧš @@ -117,10 +117,11 @@ npm run convert ## å…ļåŽƒč¯žį¨‹ -我äģŦįš„įģ„į”Ÿæˆäē†å…ļåŽƒč¯žį¨‹īŧæŸĨ一下īŧš +我äģŦįš„å›ĸ队åˆļäŊœäē†å…ļåŽƒč¯žį¨‹īŧæŸĨ一下īŧš - [įŊ‘įĢ™åŧ€å‘īŧˆWeb Dev for Beginnersīŧ‰](https://aka.ms/webdev-beginners) - [æœē器å­Ļäš īŧˆML for Beginnersīŧ‰](https://aka.ms/ml-beginners) +- [æ•°æŽį§‘å­ĻīŧˆData Science for Beginnersīŧ‰](https://aka.ms/datascience-beginners) ## å›žį‰‡åąžæ€§ From 5b939a529af4db7eae23242dc26c57f80026c180 Mon Sep 17 00:00:00 2001 From: Flex Zhong Date: Mon, 4 Oct 2021 07:05:54 +0800 Subject: [PATCH 15/35] Translations/ -> translations/ (#314) * Rename 1-getting-started/Translations/README.ar.md to 1-getting-started/translations/README.ar.md * rename * Update package-lock.json Co-authored-by: Jim Bennett --- .../{Translations => translations}/README.ar.md | 2 +- .../{Translations => translations}/README.bn.md | 0 .../{Translations => translations}/README.es.md | 0 .../{Translations => translations}/README.hi.md | 0 .../{Translations => translations}/README.id.md | 0 .../{Translations => translations}/README.ja.md | 0 .../{Translations => translations}/README.pt.md | 0 .../{Translations => translations}/README.zh-cn.md | 0 .../wio-running-assignment-1-1.gif | Bin 9 files changed, 1 insertion(+), 1 deletion(-) rename 1-getting-started/{Translations => translations}/README.ar.md (96%) rename 1-getting-started/{Translations => translations}/README.bn.md (100%) rename 1-getting-started/{Translations => translations}/README.es.md (100%) rename 1-getting-started/{Translations => translations}/README.hi.md (100%) rename 1-getting-started/{Translations => translations}/README.id.md (100%) rename 1-getting-started/{Translations => translations}/README.ja.md (100%) rename 1-getting-started/{Translations => translations}/README.pt.md (100%) rename 1-getting-started/{Translations => translations}/README.zh-cn.md (100%) rename 1-getting-started/{Translations => translations}/wio-running-assignment-1-1.gif (100%) diff --git a/1-getting-started/Translations/README.ar.md b/1-getting-started/translations/README.ar.md similarity index 96% rename from 1-getting-started/Translations/README.ar.md rename to 1-getting-started/translations/README.ar.md index a0696388..e9f8068a 100644 --- a/1-getting-started/Translations/README.ar.md +++ b/1-getting-started/translations/README.ar.md @@ -13,4 +13,4 @@ #
Ø§Ų„Ø§ØšØĒŲ…Ø§Ø¯Ø§ØĒ
- [Jim Bennett](https://GitHub.com/JimBobBennett) ؃ØĒبØĒ ØŦŲ…ŲŠØš Ø§Ų„Ø¯ØąŲˆØŗ Ų…Øš â™Ĩī¸ Ų…Ų† Ų‚Ø¨Ų„ \ No newline at end of file + [Jim Bennett](https://GitHub.com/JimBobBennett) ؃ØĒبØĒ ØŦŲ…ŲŠØš Ø§Ų„Ø¯ØąŲˆØŗ Ų…Øš â™Ĩī¸ Ų…Ų† Ų‚Ø¨Ų„ diff --git a/1-getting-started/Translations/README.bn.md b/1-getting-started/translations/README.bn.md similarity index 100% rename from 1-getting-started/Translations/README.bn.md rename to 1-getting-started/translations/README.bn.md diff --git a/1-getting-started/Translations/README.es.md b/1-getting-started/translations/README.es.md similarity index 100% rename from 1-getting-started/Translations/README.es.md rename to 1-getting-started/translations/README.es.md diff --git a/1-getting-started/Translations/README.hi.md b/1-getting-started/translations/README.hi.md similarity index 100% rename from 1-getting-started/Translations/README.hi.md rename to 1-getting-started/translations/README.hi.md diff --git a/1-getting-started/Translations/README.id.md b/1-getting-started/translations/README.id.md similarity index 100% rename from 1-getting-started/Translations/README.id.md rename to 1-getting-started/translations/README.id.md diff --git a/1-getting-started/Translations/README.ja.md b/1-getting-started/translations/README.ja.md similarity index 100% rename from 1-getting-started/Translations/README.ja.md rename to 1-getting-started/translations/README.ja.md diff --git a/1-getting-started/Translations/README.pt.md b/1-getting-started/translations/README.pt.md similarity index 100% rename from 1-getting-started/Translations/README.pt.md rename to 1-getting-started/translations/README.pt.md diff --git a/1-getting-started/Translations/README.zh-cn.md b/1-getting-started/translations/README.zh-cn.md similarity index 100% rename from 1-getting-started/Translations/README.zh-cn.md rename to 1-getting-started/translations/README.zh-cn.md diff --git a/1-getting-started/Translations/wio-running-assignment-1-1.gif b/1-getting-started/translations/wio-running-assignment-1-1.gif similarity index 100% rename from 1-getting-started/Translations/wio-running-assignment-1-1.gif rename to 1-getting-started/translations/wio-running-assignment-1-1.gif From f651f3f80886fb5894be12ba0f3ca11006479885 Mon Sep 17 00:00:00 2001 From: Jim Bennett Date: Tue, 5 Oct 2021 17:45:28 -0700 Subject: [PATCH 16/35] Update README.md --- 2-farm/lessons/3-automated-plant-watering/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/2-farm/lessons/3-automated-plant-watering/README.md b/2-farm/lessons/3-automated-plant-watering/README.md index f65ffec5..7801ea13 100644 --- a/2-farm/lessons/3-automated-plant-watering/README.md +++ b/2-farm/lessons/3-automated-plant-watering/README.md @@ -18,7 +18,7 @@ In this lesson we'll cover: * [Control a relay](#control-a-relay) * [Control your plant over MQTT](#control-a-relay) * [Sensor and actuator timing](#sensor-and-actuator-timing) -* [Add timing to your plant control](#add-timing-to-your-plant-control) +* [Add timing to your plant control server](#add-timing-to-your-plant-control-server) ## Control high power devices from a low power IoT device From 94290e56c0a29d23c39fbe7f6703eca682ea7007 Mon Sep 17 00:00:00 2001 From: "Mohammad Iftekher (Iftu) Ebne Jalal" Date: Wed, 6 Oct 2021 21:38:23 +0600 Subject: [PATCH 17/35] [Bn Translation] Train Fruit Quality Detector (#316) * Create assignment.bn.md * Create README.bn.md * Update README.bn.md * Update README.bn.md * Update README.bn.md * Update README.bn.md * Delete .dummy.md --- .../translations/.dummy.md | 9 - .../translations/README.bn.md | 238 ++++++++++++++++++ .../translations/assignment.bn.md | 16 ++ 3 files changed, 254 insertions(+), 9 deletions(-) delete mode 100644 4-manufacturing/lessons/1-train-fruit-detector/translations/.dummy.md create mode 100644 4-manufacturing/lessons/1-train-fruit-detector/translations/README.bn.md create mode 100644 4-manufacturing/lessons/1-train-fruit-detector/translations/assignment.bn.md diff --git a/4-manufacturing/lessons/1-train-fruit-detector/translations/.dummy.md b/4-manufacturing/lessons/1-train-fruit-detector/translations/.dummy.md deleted file mode 100644 index 6e7db247..00000000 --- a/4-manufacturing/lessons/1-train-fruit-detector/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/4-manufacturing/lessons/1-train-fruit-detector/translations/README.bn.md b/4-manufacturing/lessons/1-train-fruit-detector/translations/README.bn.md new file mode 100644 index 00000000..bd9411c8 --- /dev/null +++ b/4-manufacturing/lessons/1-train-fruit-detector/translations/README.bn.md @@ -0,0 +1,238 @@ +# āĻ–āĻžāĻĻā§āϝāĻĒāĻŖā§āϝ⧇āϰ āϗ⧁āĻŖāĻŽāĻžāύ āϏāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀ āĻŽāĻĄā§‡āϞāϕ⧇ āĻŸā§āϰ⧇āύāĻŋāĻ‚ āĻĒā§āϰāĻĻāĻžāύ + +![A sketchnote overview of this lesson](../../../../sketchnotes/lesson-15.jpg) + +> āĻ¸ā§āϕ⧇āϚāύ⧋āϟāϟāĻŋ āϤ⧈āϰ⧀ āĻ•āϰ⧇āϛ⧇āύ [Nitya Narasimhan](https://github.com/nitya)āĨ¤ āĻŦ⧜ āϏāĻ‚āĻ¸ā§āĻ•āϰāϪ⧇ āĻĻ⧇āĻ–āĻžāϰ āϜāĻ¨ā§āϝ āĻ›āĻŦāĻŋāϟāĻŋāϤ⧇ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ + +āĻāχ āĻ­āĻŋāĻĄāĻŋāĻ“āϟāĻŋ Azure āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāĻļāύ āϏāĻžāĻ°ā§āĻ­āĻŋāϏāϰ āĻāĻ•āϟāĻŋ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ āĻŦāĻŋāĻŦāϰāĻŖ āĻĻ⧇āϝāĻŧ, āϝāĻž āĻāχ āĻĒāĻžāϠ⧇ āφāĻŽāϰāĻž āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āϜāĻžāύāĻŦā§‹āĨ¤ + +[![Custom Vision – Machine Learning Made Easy | The Xamarin Show](https://img.youtube.com/vi/TETcDLJlWR4/0.jpg)](https://www.youtube.com/watch?v=TETcDLJlWR4) + +> đŸŽĨ āωāĻĒāϰ⧇āϰ āĻ›āĻŦāĻŋāϤ⧇ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰ⧇ āĻ­āĻŋāĻĄāĻŋāĻ“āϟāĻŋ āĻĻ⧇āϖ⧇ āύāĻŋāχ + +## āϞ⧇āĻ•āϚāĻžāϰ-āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āϕ⧁āχāϜ + +[āϞ⧇āĻ•āϚāĻžāϰ-āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āϕ⧁āχāϜ](https://brave-island-0b7c7f50f.azurestaticapps.net/quiz/29) + +## āϏ⧂āϚāύāĻž + +āĻ•ā§ƒāĻ¤ā§āϰāĻŋāĻŽ āĻŦ⧁āĻĻā§āϧāĻŋāĻŽāĻ¤ā§āϤāĻž (āĻāφāχ) āĻāĻŦāĻ‚ āĻŽā§‡āĻļāĻŋāύ āϞāĻžāĻ°ā§āύāĻŋāĻ‚ (āĻāĻŽāĻāϞ) -āĻāϰ āϏāĻžāĻŽā§āĻĒā§āϰāϤāĻŋāĻ• āωāĻ¨ā§āύāϤāĻŋ āφāϜāϕ⧇āϰ āĻĄā§‡āϭ⧇āϞāĻĒāĻžāϰāĻĻ⧇āϰ āĻŦāĻŋāĻ¸ā§āϤ⧃āϤ āĻ•ā§āώāĻŽāϤāĻž āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰāϛ⧇āĨ¤ āĻāĻŽāĻāϞ āĻŽāĻĄā§‡āϞāϗ⧁āϞāĻŋāϕ⧇ āϚāĻŋāĻ¤ā§āϰ⧇āϰ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϜāĻŋāύāĻŋāϏ āϚāĻŋāύāϤ⧇ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĻ⧇āĻ“āϝāĻŧāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇ āϝ⧇āĻŽāύ āĻ…āĻĒāϰāĻŋāĻĒāĻ•ā§āĻ• āĻĢāϞ āϏāύāĻžāĻ•ā§āϤāĻ•āϰāĻŖ āĻāĻŦāĻ‚ āĻāϟāĻŋ āφāχāĻ“āϟāĻŋ āĻĄāĻŋāĻ­āĻžāχāϏ⧇āĻ“ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇ āĨ¤ + +āĻāχ āĻĒāĻžāϠ⧇ āφāĻŽāϰāĻž āχāĻŽā§‡āϜ āĻŦāĻž āĻ›āĻŦāĻŋāϰ āĻļā§āϰ⧇āĻŖāĻŋāĻŦāĻŋāĻ¨ā§āϝāĻžāϏ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϜāĻžāύāϤ⧇ āĻĒāĻžāϰāĻŦ - āĻāĻŽāĻāϞ āĻŽāĻĄā§‡āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϜāĻŋāύāĻŋāϏ⧇āϰ āĻ›āĻŦāĻŋāϰ āĻŽāĻ§ā§āϝ⧇ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āĻ•āϰāĻž āĻ›āĻžā§œāĻžāĻ“ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻāĻ•āϟāĻŋ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰāϕ⧇ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĻāĻŋāϤ⧇ āĻšāϝāĻŧ āϝ⧇ āĻĢāϞāϟāĻŋ āĻ­āĻžāϞ āĻāĻŦāĻ‚ āĻ–āĻžāϰāĻžāĻĒ āĻĢāϞ āϤāĻž āϜāĻžāύāĻŦā§‹āĨ¤ + +āĻāχ āĻĒāĻžāϠ⧇ āφāĻŽāϰāĻž āĻļāĻŋāĻ–āĻŦā§‹ : + +* [AI āĻāĻŦāĻ‚ ML āĻĻā§āĻŦāĻžāϰāĻž āĻĒāĻŖā§āϝ āĻļā§āϰ⧇āύāĻŋāĻŦāĻĻā§āϧāĻ•āϰāĻŖ](#AI-āĻāĻŦāĻ‚-ML-āĻĻā§āĻŦāĻžāϰāĻž-āĻĒāĻŖā§āϝ-āĻļā§āϰ⧇āύāĻŋāĻŦāĻĻā§āϧāĻ•āϰāĻŖ) +* [āĻŽā§‡āĻļāĻŋāύ āϞāĻžāĻ°ā§āύāĻŋāĻ‚ āĻĻā§āĻŦāĻžāϰāĻž āĻ›āĻŦāĻŋ āϚāĻŋāĻšā§āύāĻŋāϤāĻ•āϰāĻŖ](#āĻŽā§‡āĻļāĻŋāύ-āϞāĻžāĻ°ā§āύāĻŋāĻ‚-āĻĻā§āĻŦāĻžāϰāĻž-āĻ›āĻŦāĻŋ-āϚāĻŋāĻšā§āύāĻŋāϤāĻ•āϰāĻŖ) +* [āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰāϕ⧇ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĒā§āϰāĻĻāĻžāύ](#āχāĻŽā§‡āϜ-āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰāϕ⧇-āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ-āĻĒā§āϰāĻĻāĻžāύ) +* [āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰāϕ⧇ āĻŸā§‡āĻ¸ā§āϟ āĻ•āϰāĻž](#āχāĻŽā§‡āϜ-āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰāϕ⧇-āĻŽā§‚āĻ˛ā§āϝāĻžā§ŸāĻŖ) +* [āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰāϕ⧇ āĻĒ⧁āύāϰāĻžā§Ÿ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĒā§āϰāĻĻāĻžāύ](#āχāĻŽā§‡āϜ-āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰāϕ⧇-āĻĒ⧁āύāϰāĻžā§Ÿ-āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ) + +## AI āĻāĻŦāĻ‚ ML āĻĻā§āĻŦāĻžāϰāĻž āĻĒāĻŖā§āϝ āĻļā§āϰ⧇āύāĻŋāĻŦāĻĻā§āϧāĻ•āϰāĻŖ + +āĻŦāĻŋāĻļā§āĻŦāĻŦā§āϝāĻžāĻĒā§€ āϜāύāϏāĻžāϧāĻžāϰāϪ⧇āϰ āĻ–āĻžāĻĻā§āϝ⧇āϰ āϝ⧋āĻ—āĻžāύ āĻĻā§‡ā§ŸāĻž āĻ•āĻ āĻŋāύ, āĻŦāĻŋāĻļ⧇āώāϤ āĻ•āĻŽāĻĻāĻžāĻŽā§‡ āĻĻāĻžāĻŽā§‡ āϏāĻšāϜāϞāĻ­ā§āϝ āĻ•āϰ⧇ āϏāϰāĻŦāϰāĻžāĻš āĻ•āϰāĻžāĨ¤ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āĻŦāĻĄāĻŧ āĻ–āϰāϚ āĻšāϞ āĻļā§āϰāĻŽ, āϤāĻžāχ āĻ•ā§ƒāώāĻ•āϰāĻž āϤāĻžāĻĻ⧇āϰ āĻļā§āϰāĻŽ āĻ–āϰāϚ āĻ•āĻŽāĻžāϤ⧇ āĻ•ā§āϰāĻŽāĻŦāĻ°ā§āϧāĻŽāĻžāύ āĻ…āĻŸā§‹āĻŽā§‡āĻļāύ āĻāĻŦāĻ‚ āφāχāĻ“āϟāĻŋ āĻāϰ āĻŽāϤ⧋ āϏāϰāĻžā§āϜāĻžāĻŽāϗ⧁āϞāĻŋāϰ āĻĻāĻŋāϕ⧇ āĻā§āρāĻ•āϛ⧇āύāĨ¤ āĻšāĻžāϤ⧇ āĻĢāϏāϞ āϤ⧋āϞāĻž āϖ⧁āĻŦāχ āĻļā§āϰāĻŽāϏāĻžāĻ§ā§āϝ āĻ•āĻžāϜ āϝāĻž āϝāĻ¨ā§āĻ¤ā§āϰāĻĒāĻžāϤāĻŋ āĻĻā§āĻŦāĻžāϰāĻž āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻŋāϤ āĻšāĻšā§āϛ⧇, āĻŦāĻŋāĻļ⧇āώāϤ āϧāύ⧀ āĻĻ⧇āĻļāϗ⧁āϞāĻŋāϤ⧇āĨ¤ āĻĢāϏāϞ āĻ•āĻžāϟāĻžāϰ āϜāĻ¨ā§āϝ āϝāĻ¨ā§āĻ¤ā§āϰāĻĒāĻžāϤāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āĻ–āϰāϚ āĻŦāĻžāρāϚāĻžāύ⧋ āϏāĻ¤ā§āĻ¤ā§āĻŦ⧇āĻ“, āĻāĻ•āϟāĻŋ āύ⧇āϤāĻŋāĻŦāĻžāϚāĻ• āĻĻāĻŋāĻ• āϰāϝāĻŧ⧇āϛ⧇ - āĻ–āĻžāĻĻā§āϝ āϏāĻ‚āĻ—ā§āϰāĻš āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻĢāϏāϞ āϏāĻ āĻŋāĻ•āĻ­āĻžāĻŦ⧇ āϏāĻžāϜāĻžāύ⧋ (sort āĻ•āϰāĻž)āĨ¤ + +āϏāĻŦ āĻĢāϏāϞ āϏāĻŽāĻžāύāĻ­āĻžāĻŦ⧇ āĻĒāϰāĻŋāĻĒāĻ•ā§āĻŦ āĻšā§ŸāύāĻžāĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āϟāĻŽā§‡āĻŸā§‹ āĻ•ā§āώ⧇āϤ⧇ āĻ•āĻŋāϛ⧁ āĻ•āĻŋāϛ⧁ āϏāĻŦ⧁āϜ āĻĢāϞ āĻĨāĻžāĻ•āϤ⧇āχ āĻāχ āĻĢāϏāϞ āϤ⧋āϞāĻžāϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāĻ¸ā§āϤ⧁āϤ āĻĨāĻžāϕ⧇āĨ¤ āϝāĻĻāĻŋāĻ“ āϤāĻžāĻĄāĻŧāĻžāϤāĻžāĻĄāĻŧāĻŋ āĻĢāϏāϞ āϤ⧋āϞāĻž āĻ…āĻĒāϚāϝāĻŧ, āϤāĻŦ⧁āĻ“ āĻ•ā§ƒāώāϕ⧇āϰ āϜāĻ¨ā§āϝ āϝāĻ¨ā§āĻ¤ā§āϰāĻĒāĻžāϤāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϏāĻŦ āĻĢāϏāϞ āϏāĻ‚āĻ—ā§āϰāĻš āĻ•āϰāĻž āĻāĻŦāĻ‚ āĻĒāϰāĻŦāĻ°ā§āϤ⧀āϤ⧇ āĻ…āĻĒāϰāĻŋāĻĒāĻ•ā§āĻ• āĻĢāϏāϞ⧇āϰ āύāĻŋāĻˇā§āĻĒāĻ¤ā§āϤāĻŋ āĻ•āϰāĻž āϏāĻ¸ā§āϤāĻž āĻāĻŦāĻ‚ āϏāĻšāϜāĨ¤ + +✅ āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻžāĻ›āĻžāĻ•āĻžāĻ›āĻŋ āĻ–āĻžāĻŽāĻžāϰ⧇ āĻŦāĻž āφāĻŽāĻžāĻĻ⧇āϰ āĻŦāĻžāĻ—āĻžāύ⧇ āĻŦāĻž āĻĻā§‹āĻ•āĻžāύ⧇ āĻĨāĻžāĻ•āĻž āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻĢāϞ āĻŦāĻž āϏāĻŦāϜāĻŋ āĻĒāĻ°ā§āϝāĻŦ⧇āĻ•ā§āώāĻŖ āĻ•āϰāĻŋāĨ¤ āϏ⧇āϗ⧁āϞāĻŋ āĻ•āĻŋ āĻāĻ•āχ āϰāĻ•āĻŽ āĻĒāϰāĻŋāĻĒāĻ•ā§āĻ• āύāĻžāĻ•āĻŋ āĻŦ⧈āϚāĻŋāĻ¤ā§āϰ āĻĻ⧇āĻ–āĻž āϝāĻžāĻšā§āϛ⧇ ? + +āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āĻĒāĻĻā§āϧāϤāĻŋāϤ⧇ āĻĢāϏāϞ āϤ⧋āϞāĻžāϰ āĻĢāϞ⧇, āĻ‰ā§ŽāĻĒāĻžāĻĻāĻŋāϤ āĻĒāĻŖā§āϝ⧇āϰ āĻļā§āϰ⧇āĻŖāĻŋāĻŦāĻŋāĻ¨ā§āϝāĻžāϏ āĻ•āĻžāĻ°ā§āϝāĻ•ā§āϰāĻŽ āĻŦāĻ°ā§āϤāĻŽāĻžāύ⧇ āĻ•āĻžāϰāĻ–āĻžāύāĻžāϝāĻŧ āĻšā§Ÿā§‡ āĻĨāĻžāϕ⧇āĨ¤ āĻ–āĻžāĻĻā§āϝ āϞāĻŽā§āĻŦāĻž āĻ•āύāϭ⧇āϝāĻŧāĻžāϰ āĻŦ⧇āĻ˛ā§āϟ āĻĻāĻŋā§Ÿā§‡ āϝāĻžāĻŦ⧇ āĻāĻŦāĻ‚ āĻļā§āϰāĻŽāĻŋāϕ⧇āϰāĻž āύāĻŋāĻŽā§āύāĻŽāĻžāύ⧇āϰ āĻĒāĻŖā§āϝ āĻ…āĻĒāϏāĻžāϰāĻŖ āĻ•āϰāĻŦ⧇āĨ¤ āϝāĻ¨ā§āĻ¤ā§āϰāĻĒāĻžāϤāĻŋāϰ āĻ•āĻ˛ā§āϝāĻžāϪ⧇ āĻĢāϏāϞ āĻ•āĻžāϟāĻž āĻ“ āϏāĻ‚āĻ—ā§āϰāĻš āĻ•āϰāĻžāϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻ–āϰāϚ āĻ•āĻŽ āĻ›āĻŋāϞ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻŽā§āϝāĻžāύ⧁āϝāĻŧāĻžāϞāĻŋ āĻĒāĻŖā§āϝ āĻŦāĻžāĻ›āĻžāχ āĻ•āϰāĻž āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āĻ–āϰāϚ āĻ“ āĻļā§āϰāĻŽā§‡āϰ āĻ•āĻžāϜāĨ¤ + +![If a red tomato is detected it continues its journey uninterrupted. If a green tomato is detected it is flicked into a waste bin by a lever](../../../../images/optical-tomato-sorting.png) + +āĻāχ āϝāĻžāĻ¤ā§āϰāĻžā§Ÿ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻŦāĻŋāĻŦāĻ°ā§āϤāύ āĻ›āĻŋāϞ āĻŽā§‡āĻļāĻŋāύāϗ⧁āϞāĻŋāϕ⧇ āĻŦāĻžāĻ›āĻžāχ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž, āĻšāϝāĻŧ āĻšāĻžāĻ°ā§āϭ⧇āĻ¸ā§āϟāĻžāϰ⧇ āύāĻŋāĻ°ā§āĻŽāĻŋāϤ āĻ…āĻĨāĻŦāĻž āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāĻ•āϰāĻŖ āĻ•āĻžāϰāĻ–āĻžāύāĻžāϝāĻŧāĨ¤ āĻāχ āĻŽā§‡āĻļāĻŋāύ⧇āϰ āĻĒā§āϰāĻĨāĻŽ āĻĒā§āϰāϜāĻ¨ā§āĻŽ āĻ…āĻĒāϟāĻŋāĻ•ā§āϝāĻžāϞ āϏ⧇āĻ¨ā§āϏāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϰāĻ‚ āϏāύāĻžāĻ•ā§āϤ āĻ•āϰ⧇, āĻ…ā§āϝāĻžāĻ•āϚ⧁āϝāĻŧ⧇āϟāϰāϗ⧁āϞāĻŋāϕ⧇ āύāĻŋāϝāĻŧāĻ¨ā§āĻ¤ā§āϰāĻŖ āĻ•āϰ⧇ āϏāĻŦ⧁āϜ āϟāĻŽā§‡āĻŸā§‹āϕ⧇ āĻāĻ•āϟāĻŋ āĻĒāĻžāĻ¤ā§āϰ⧇ āϧāĻžāĻ•ā§āĻ•āĻž āĻĻāĻŋāϝāĻŧ⧇ āĻĢ⧇āϞ⧇ āĻĻāĻŋāϤ⧋, āĻŦāĻžāϤāĻžāϏ⧇āϰ āϞāĻŋāĻ­āĻžāϰ āĻŦāĻž āĻĒāĻĢ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ āφāĻŦāĻžāϰ āϞāĻžāϞ āϟāĻŽā§‡āĻŸā§‹ āϗ⧁āϞ⧋āϕ⧇ āϛ⧇āĻĄāĻŧ⧇ āĻĻāĻŋāϤ⧋ āϝāĻžāϤ⧇ āϤāĻžāϰāĻž āĻ•āύāϭ⧇āϝāĻŧāϰ āĻŦ⧇āĻ˛ā§āĻŸā§‡ āĻāĻ—āĻŋā§Ÿā§‡ āϝ⧇āϤ⧇ āĻĨāĻžāϕ⧇āĨ¤ + +āύ⧀āĻšā§‡āϰ āĻ­āĻŋāĻĄāĻŋāĻ“āϟāĻŋ āĻāχ āĻŽā§‡āĻļāĻŋāύāϗ⧁āϞāĻŋāϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋāϕ⧇ āĻĻ⧇āĻ–āĻžāϝāĻŧāĨ¤ + +[![Automatic sorting of tomatoes via color](https://img.youtube.com/vi/AcRL91DouAU/0.jpg)](https://www.youtube.com/watch?v=AcRL91DouAU) + +> đŸŽĨ āωāĻĒāϰ⧇āϰ āĻ›āĻŦāĻŋāϤ⧇ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰ⧇ āĻ­āĻŋāĻĄāĻŋāĻ“āϟāĻŋ āĻĻ⧇āϖ⧇ āύāĻŋāχ + +āĻāχ āĻ­āĻŋāĻĄāĻŋāĻ“āϤ⧇, āϟāĻŽā§‡āĻŸā§‹ āϝāĻ–āύ āĻāĻ•āϟāĻŋ āĻĒāϰāĻŋāĻŦāĻžāĻšāĻ• āĻŦ⧇āĻ˛ā§āϟ (conveyer belt) āĻĨ⧇āϕ⧇ āĻ…āĻ¨ā§āϝāϟāĻŋāϤ⧇ āϝāĻžā§Ÿ, āϏāĻŦ⧁āϜ āϟāĻŽā§‡āĻŸā§‹ āϏāύāĻžāĻ•ā§āϤ āĻ•āϰāĻž āĻšāϝāĻŧ āĻāĻŦāĻ‚ āϞāĻŋāĻ­āĻžāϰ⧇āϰ āϏāĻžāĻšāĻžāĻ¯ā§āϝ⧇ āĻāĻ•āϟāĻŋ āφāϞāĻžāĻĻāĻž āĻĒāĻžāĻ¤ā§āϰ⧇ āϏāϰāĻŋā§Ÿā§‡ āĻĢ⧇āϞāĻž āĻšā§ŸāĨ¤ + +✅ āĻāχ āĻ…āĻĒāϟāĻŋāĻ•ā§āϝāĻžāϞ āϏ⧇āĻ¨ā§āϏāϰāϗ⧁āϞāĻŋ āϏāĻ āĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ•āĻžāϰāĻ–āĻžāύāĻžāϝāĻŧ āĻŦāĻž āϖ⧇āϤ⧇ āϕ⧇āĻŽāύ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāĻŦ⧇? + +āĻāχ āĻŦāĻžāĻ›āĻžāχ āĻŽā§‡āĻļāĻŋāύ⧇āϰ āϏāĻ°ā§āĻŦāĻļ⧇āώ āĻŦāĻŋāĻŦāĻ°ā§āϤāύ āĻāφāχ āĻāĻŦāĻ‚ āĻāĻŽāĻāϞ āĻāϰ āϏ⧁āĻŦāĻŋāϧāĻž āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇, āĻ­āĻžāϞ āĻĒāĻŖā§āϝāϕ⧇ āĻ–āĻžāϰāĻžāĻĒ āĻĨ⧇āϕ⧇ āφāϞāĻžāĻĻāĻž āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŋāϤ āĻŽāĻĄā§‡āϞāϗ⧁āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĨ¤ āĻāϟāĻŋ āϕ⧇āĻŦāϞāĻŽāĻžāĻ¤ā§āϰ āϏāĻŦ⧁āϜ āϟāĻŽā§‡āĻŸā§‹ āĻŦāύāĻžāĻŽ āϞāĻžāϞ āϰāϙ⧇āϰ āϏ⧁āĻ¸ā§āĻĒāĻˇā§āϟ āϰāϙ⧇āϰ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āĻĻā§āĻŦāĻžāϰāĻž āύāϝāĻŧ, āĻŦāϰāĻ‚ āĻĒāĻŖā§āϝ⧇āϰ āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻĨ⧇āϕ⧇ āφāϰāĻ“ āϏ⧂āĻ•ā§āĻˇā§āĻŽ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āϧāϰāϤ⧇ āĻĒāĻžāϰ⧇ āϝāĻž āϰ⧋āĻ— āĻŦāĻž āĻ•ā§āώāϤ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇ āĨ¤ + +## āĻŽā§‡āĻļāĻŋāύ āϞāĻžāĻ°ā§āύāĻŋāĻ‚ āĻĻā§āĻŦāĻžāϰāĻž āĻ›āĻŦāĻŋ āϚāĻŋāĻšā§āύāĻŋāϤāĻ•āϰāĻŖ + +āϏāĻžāĻ°ā§āĻŦāϜāύ⧀āύāĻ­āĻžāĻŦ⧇ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāĻŋāĻ‚ āĻšāϞ⧋ āĻāĻŽāύ āĻāĻ•āϟāĻŋ āĻ•āĻžāĻ°ā§āϝāĻ•ā§āϰāĻŽ āϝ⧇āĻ–āĻžāύ⧇ āφāĻŽāϰāĻž āĻĄā§‡āϟāĻž āĻ—ā§āϰāĻšāĻŖ āĻ•āϰāĻŋ, āĻĄā§‡āϟāĻžāϤ⧇ āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻāĻŦāĻ‚ āφāωāϟāĻĒ⧁āϟ āĻĒāĻžāχāĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻ—āϤ āĻĒā§āϰāĻœā§‡āĻ•ā§āĻŸā§‡ āφāĻŽāϰāĻž āϜāĻŋāĻĒāĻŋāĻāϏ āϕ⧋āĻ…āĻ°ā§āĻĄāĻŋāύ⧇āϟāϏ āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āϜāĻŋāĻ“āĻĢ⧇āĻ¨ā§āϏ āύāĻŋāϝāĻŧ⧇āĻ›āĻŋā§āϞāĻžāĻŽ, āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰāĻž āĻšā§Ÿā§‡āĻ›āĻŋāϞ⧋ āϝāĻž Azure āĻŽā§āϝāĻžāĻĒ āĻĻā§āĻŦāĻžāϰāĻž āϏāϰāĻŦāϰāĻžāĻš āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ āĻāĻŦāĻ‚ āϜāĻŋāĻ“āĻĢ⧇āĻ¨ā§āϏ⧇āϰ āĻ­āĻŋāϤāϰ⧇ āĻŦāĻž āĻŦāĻžāχāϰ⧇ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟ āĻĨāĻžāĻ•āϞ⧇ āϤāĻžāϰ āĻĢāϞāĻžāĻĢāϞ āĻĒā§‡ā§Ÿā§‡āĻ›āĻŋāϞāĻžāĻŽāĨ¤ āφāĻŽāϰāĻž āφāϰāĻ“ āĻĄā§‡āϟāĻž āχāύāĻĒ⧁āϟ āύāĻŋāϞ⧇, āφāĻŽāϰāĻž āφāϰāĻ“ āĻŦ⧇āĻļāĻŋ āφāωāϟāĻĒ⧁āϟ āĻĒāĻžāĻŦāĨ¤ + +![Traditional development takes input and an algorithm and gives output. Machine learning uses input and output data to train a model, and this model can take new input data to generate new output](../../../../images/traditional-vs-ml.png) + +āĻŽā§‡āĻļāĻŋāύ āϞāĻžāĻ°ā§āύāĻŋāĻ‚ āĻāϟāĻŋāϕ⧇ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āωāĻ˛ā§āĻŸā§‹āĻĻāĻŋāĻ• āĻĨ⧇āϕ⧇ āĻ•āϰ⧇ - āφāĻŽāϰāĻž āĻĄā§‡āϟāĻž āĻāĻŦāĻ‚ āĻĒāϰāĻŋāϚāĻŋāϤ āφāωāϟāĻĒ⧁āϟ āĻĻāĻŋāϝāĻŧ⧇ āĻļ⧁āϰ⧁ āĻ•āϰāĻŋ āĻāĻŦāĻ‚ āĻŽā§‡āĻļāĻŋāύ āϞāĻžāĻ°ā§āύāĻŋāĻ‚ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āϏ⧇āχ āϏāĻ‚āĻ—ā§ƒāĻšā§€āϤ āĻĢāϞāĻžāĻĢāϞ⧇āϰ āĻĄā§‡āϟāĻž āĻĨ⧇āϕ⧇ āĻļāĻŋāϖ⧇ āϝ⧇ āϤāĻžāϕ⧇ āϕ⧀ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āϤāĻžāϰāĻĒāϰ āφāĻŽāϰāĻž āϏ⧇āχ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŋāϤ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āύāĻŋāϤ⧇ āĻĒāĻžāϰāĻŋ, āϝāĻžāϕ⧇ āĻŦāϞāĻž āĻšāϝāĻŧ *āĻŽā§‡āĻļāĻŋāύ āϞāĻžāĻ°ā§āύāĻŋāĻ‚ āĻŽāĻĄā§‡āϞ* āĻŦāĻž āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ *āĻŽāĻĄā§‡āϞ*, āĻāĻŦāĻ‚ āĻāϟāĻŋāϤ⧇ āύāϤ⧁āύ āĻĄā§‡āϟāĻž āχāύāĻĒ⧁āϟ āĻ•āϰ⧇ āφāĻŽāϰāĻž āύāϤ⧁āύ āφāωāϟāĻĒ⧁āϟ āĻĒāĻžāĻŦāĨ¤ + +> 🎓 āϤāĻĨā§āϝ āĻĨ⧇āϕ⧇ āĻŽā§‡āĻļāĻŋāύ āϞāĻžāĻ°ā§āύāĻŋāĻ‚ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āĻļ⧇āĻ–āĻžāϰ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϕ⧇ āĻŦāϞāĻž āĻšāϝāĻŧ *āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ (training)*āĨ¤ āχāύāĻĒ⧁āϟ āĻāĻŦāĻ‚ āĻĒāϰāĻŋāϚāĻŋāϤ āφāωāϟāĻĒ⧁āϟāϗ⧁āϞāĻŋāϕ⧇ *āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĄā§‡āϟāĻž (training data)*āĻŦāϞāĻž āĻšāϝāĻŧāĨ¤ + +āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āχāύāĻĒ⧁āϟ āĻŸā§āϰ⧇āύāĻŋāĻ‚ āĻĄā§‡āϟāĻž āĻšāĻŋāϏāĻžāĻŦ⧇ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āĻŽāĻĄā§‡āϞāϕ⧇ āĻ•āĻžāρāϚāĻž āĻ•āϞāĻž āĻāϰ āĻ•ā§Ÿā§‡āĻ• āϞāĻ•ā§āώ āĻ›āĻŦāĻŋ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰāĻŋ, āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āφāωāϟāĻĒ⧁āϟāϕ⧇ `āĻ•āĻžāρāϚāĻž` āĻšāĻŋāϏāĻžāĻŦ⧇ āϏ⧇āϟ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ, āĻāĻŦāĻ‚ āĻāĻ•āχāĻ­āĻžāĻŦ⧇ āϞāĻ•ā§āώ āϞāĻ•ā§āώ āĻĒāĻžāĻ•āĻž āĻ•āϞāĻžāϰ āĻ›āĻŦāĻŋāϗ⧁āϞāĻŋāϕ⧇ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĄā§‡āϟāĻž āĻšāĻŋāϏāĻžāĻŦ⧇ āφāωāϟāĻĒ⧁āϟ āϏ⧇āϟ `āĻĒāĻžāĻ•āĻž` āĻšāĻŋāϏāĻžāĻŦ⧇ āϏ⧇āϟ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āĻāĻŽāĻāϞ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āϤāĻžāϰāĻĒāϰ āĻāχ āĻĄā§‡āϟāĻž āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āĻāĻ•āϟāĻŋ āĻŽāĻĄā§‡āϞ āϤ⧈āϰāĻŋ āĻ•āϰāĻŦ⧇āĨ¤ āφāĻŽāϰāĻž āϤāĻžāϰāĻĒāϰ āĻāχ āĻŽāĻĄā§‡āϞāϟāĻŋāϕ⧇ āϝ⧇āϕ⧋āύ āĻāĻ•āϟāĻŋ āĻ•āϞāĻžāϰ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āĻ›āĻŦāĻŋ āĻĻāĻŋāϞ⧇, āĻāϟāĻŋ āϜāĻžāύāĻžāĻŦ⧇ āϝ⧇ āύāϤ⧁āύ āĻ›āĻŦāĻŋāϟāĻŋ āĻāĻ•āϟāĻŋ āĻĒāĻžāĻ•āĻž āύāĻžāĻ•āĻŋ āĻ•āĻžāρāϚāĻž āĻ•āϞāĻžāĨ¤ + +> 🎓 āĻāĻŽāĻāϞ āĻŽāĻĄā§‡āϞ⧇āϰ āĻĢāϞāĻžāĻĢāϞāϕ⧇ āĻŦāϞāĻž āĻšāϝāĻŧ *āĻĒā§‚āĻ°ā§āĻŦāĻžāĻ­āĻžāϏ (predictions)* āĨ¤ + +![2 bananas, a ripe one with a prediction of 99.7% ripe, 0.3% unripe, and an unripe one with a prediction of 1.4% ripe, 98.6% unripe](../../../../images/bananas-ripe-vs-unripe-predictions.png) + +āĻāĻŽāĻāϞ āĻŽāĻĄā§‡āϞāϗ⧁āϞāĻŋ āĻŦāĻžāχāύāĻžāϰāĻŋ āωāĻ¤ā§āϤāϰ āĻĻ⧇āϝāĻŧ āύāĻž, āĻŦāϰāĻ‚ āϤāĻžāϰāĻž āϏāĻŽā§āĻ­āĻžāĻŦā§āϝāϤāĻž āĻĻ⧇āϝāĻŧāĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻāĻ•āϟāĻŋ āĻŽāĻĄā§‡āϞāϕ⧇ āĻāĻ•āϟāĻŋ āĻ•āϞāĻžāϰ āĻ›āĻŦāĻŋ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϞ⧇ āĻāĻŦāĻ‚ `āĻĒāĻžāĻ•āĻž` āϤ⧇ ⧝⧝.ā§­% āĻāĻŦāĻ‚ `āĻ•āĻžāρāϚāĻž` āϤ⧇ ā§Ļ.ā§Ļā§Š% āĻāϰ āϰ⧇āϜāĻžāĻ˛ā§āϟ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āφāĻŽāĻžāĻĻ⧇āϰ āϕ⧋āĻĄ āϤāĻžāϰāĻĒāϰ āϏ⧇āχ āĻĒā§‚āĻ°ā§āĻŦāĻžāĻ­āĻžāϏ āĻŦāĻžāĻ›āĻžāχ āĻ•āϰāĻŦ⧇ āĻāĻŦāĻ‚ āĻ•āϞāĻž āĻĒāĻžāĻ•āĻž - āĻāχ āϏāĻŋāĻĻā§āϧāĻžāĻ¨ā§āϤ āύ⧇āĻŦ⧇āĨ¤ + +āĻāχāϰāĻ•āĻŽ āĻ›āĻŦāĻŋ āϏāύāĻžāĻ•ā§āϤ āĻ•āϰāϤ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻāĻŽāĻāϞ āĻŽāĻĄā§‡āϞāϟāĻŋāϕ⧇ āĻŦāϞāĻž āĻšāϝāĻŧ *āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ* - āĻāϟāĻŋāϕ⧇ āϞ⧇āĻŦ⧇āϞāϝ⧁āĻ•ā§āϤ āĻ›āĻŦāĻŋ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϝāĻŧ āĻāĻŦāĻ‚ āϤāĻžāϰāĻĒāϰ⧇ āĻāχ āϞ⧇āĻŦ⧇āϞāϗ⧁āϞāĻŋāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋāϤ⧇ āύāϤ⧁āύ āϚāĻŋāĻ¤ā§āϰāϗ⧁āϞāĻŋ āĻļā§āϰ⧇āĻŖāĻŋāĻŦāĻĻā§āϧ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ + +> 💁 āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻ…āϤāĻŋ-āϏāϰāϞ⧀āĻ•āϰāĻŖ āĻŦā§āϝāĻ–ā§āϝāĻž āĻāĻŦāĻ‚ āĻŽāĻĄā§‡āϞāϗ⧁āϞāĻŋāϕ⧇ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĻ⧇āĻ“āϝāĻŧāĻžāϰ āφāϰāĻ“ āĻ…āύ⧇āĻ• āωāĻĒāĻžāϝāĻŧ āϰāϝāĻŧ⧇āϛ⧇ āϝāĻž āϏāĻ°ā§āĻŦāĻĻāĻž āϞ⧇āĻŦ⧇āϞāϝ⧁āĻ•ā§āϤ āφāωāϟāĻĒ⧁āϟāϗ⧁āϞāĻŋāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāϝāĻŧ āύāĻž, āϝ⧇āĻŽāύ unsupervised learning āĻĒā§āϰāĻ•ā§āϰāĻŋ⧟āĻžāĨ¤ āφāĻŽāϰāĻž āϝāĻĻāĻŋ āĻāĻŽāĻāϞ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āφāϰāĻ“ āϜāĻžāύāϤ⧇ āϚāĻžāχ, āϤāĻžāĻšāϞ⧇ [āĻŽā§‡āĻļāĻŋāύ āϞāĻžāĻ°ā§āύāĻŋāĻ‚ āĻāϰ ⧍ā§Ē āϞ⧇āϏāύ⧇āϰ āĻ•āĻžāϰāĻŋāĻ•ā§āϝ⧁āϞāĻžāĻŽāϟāĻŋ](https://aka.ms/ML-beginners) āĻĻ⧇āĻ–āĻŋāĨ¤ + +## āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰāϕ⧇ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĒā§āϰāĻĻāĻžāύ + +āĻāĻ•āϟāĻŋ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ āϏāĻĢāϞāĻ­āĻžāĻŦ⧇ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāϪ⧇āϰ āϜāĻ¨ā§āϝ āφāĻŽāĻžāĻĻ⧇āϰ āϞāĻ•ā§āώ āϞāĻ•ā§āώ āχāĻŽā§‡āϜ āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤ āϝ⧇āĻŽāύ āĻĻ⧇āĻ–āĻž āϝāĻžāĻšā§āϛ⧇, āĻāĻ•āĻŦāĻžāϰ āφāĻŽāĻžāĻĻ⧇āϰ āϞāĻ•ā§āώ āϞāĻ•ā§āώ āĻŦāĻž āϕ⧋āϟāĻŋ āϕ⧋āϟāĻŋ āχāĻŽā§‡āĻœā§‡āϰ āωāĻĒāϰ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖāĻĒā§āϰāĻžāĻĒā§āϤ āĻāĻ•āϟāĻŋ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ āĻšāϝāĻŧ⧇ āϗ⧇āϞ⧇, āφāĻŽāϰāĻž āĻāϟāĻŋ āĻĒ⧁āύāϰāĻžāϝāĻŧ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ āĻāĻŦāĻ‚ āĻ›āĻŦāĻŋāϗ⧁āϞāĻŋāϰ āĻāĻ•āϟāĻŋ āϛ⧋āϟ āϏ⧇āϟ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĒ⧁āύāϰāĻžāϝāĻŧ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰāĻŋ āĻāĻŦāĻ‚ *āĻŸā§āϰāĻžāĻ¨ā§āϏāĻĢāĻžāϰ āϞāĻžāĻ°ā§āύāĻŋāĻ‚* āύāĻžāĻŽāĻ• āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĻ⧁āĻ°ā§āĻĻāĻžāĻ¨ā§āϤāϰāĻ•āĻŽā§‡āϰ āĻāĻ•ā§āϝ⧁āϰ⧇āϟ āĻĢāϞāĻžāĻĢāϞ āĻĒ⧇āϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āĨ¤ + +> 🎓 āĻŸā§āϰāĻžāĻ¨ā§āϏāĻĢāĻžāϰ āϞāĻžāĻ°ā§āύāĻŋāĻ‚ āĻšāϞ āĻāĻŽāύ āĻĒā§āϰāĻ•ā§āϰāĻŋ⧟āĻž āϝ⧇āĻ–āĻžāύ⧇ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻāĻŽāĻāϞ āĻŽāĻĄā§‡āϞ āĻĨ⧇āϕ⧇ āύāϤ⧁āύ āĻĄā§‡āϟāĻž āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āύāϤ⧁āύ āĻŽāĻĄā§‡āϞ⧇ āφāϗ⧇āϰ āϞāĻžāĻ°ā§āύāĻŋāĻ‚ āĻŸā§āϰāĻžāĻ¨ā§āϏāĻĢāĻžāϰ āĻ•āϰāĻŋāĨ¤ + +āĻāĻ•āĻŦāĻžāϰ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰāϕ⧇ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϧāϰāϪ⧇āϰ āϚāĻŋāĻ¤ā§āϰ⧇āϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϞ⧇, āĻāϰ āĻ…āĻ­ā§āϝāĻ¨ā§āϤāϰ⧀āĻŖ āφāĻ•āĻžāϰ, āϰāĻ™ āĻāĻŦāĻ‚ āύāĻŋāĻĻāĻ°ā§āĻļāύāϗ⧁āϞāĻŋ āϏāύāĻžāĻ•ā§āϤ āĻ•āϰāϤ⧇ āĻŦ⧇āĻļ āĻĒāĻžāϰāĻĻāĻ°ā§āĻļā§€ āĻšā§Ÿā§‡ āϝāĻžā§ŸāĨ¤ āĻŸā§āϰāĻžāĻ¨ā§āϏāĻĢāĻžāϰ āϞāĻžāĻ°ā§āύāĻŋāĻ‚ āĻāϰ āĻĻā§āĻŦāĻžāϰāĻž āĻŽāĻĄā§‡āϞāϟāĻŋ āχāĻŽā§‡āϜ āĻĒāĻžāĻ°ā§āϟāϏ āĻāϰ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇ āϝāĻž āĻļāĻŋāϖ⧇āϛ⧇ āϤāĻž āύāĻŋāϤ⧇ āĻāĻŦāĻ‚ āύāϤ⧁āύ āχāĻŽā§‡āϜ āϚāĻŋāύāϤ⧇ āĻŦ⧇āĻļ āϏ⧁āĻŦāĻŋāϧāĻž āĻšā§ŸāĨ¤ + +![Once you can recognize shapes, they can be put into different configurations to make a boat or a cat](../../../../images/shapes-to-images.png) + +āφāĻŽāϰāĻž āĻāϟāĻŋāϕ⧇ āϛ⧋āϟāĻĻ⧇āϰāϕ⧇ āφāĻ•āĻžāϰ-āφāĻ•ā§ƒāϤāĻŋ āĻšā§‡āύāĻžāύ⧋āϰ āϜāĻ¨ā§āϝ āĻ›āĻŦāĻŋāϰ āĻŦāχāϝāĻŧ⧇āϰ āĻŽāϤ⧋ āĻŽāύ⧇ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ, āϝ⧇āĻ–āĻžāύ⧇ āĻāĻ•āĻŦāĻžāϰ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āĻ…āĻ°ā§āϧ-āĻŦ⧃āĻ¤ā§āϤ, āĻāĻ•āϟāĻŋ āφāϝāĻŧāϤāĻ•ā§āώ⧇āĻ¤ā§āϰ āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āĻ¤ā§āϰāĻŋāϭ⧁āϜ āϚāĻŋāύāϤ⧇ āĻĒāĻžāϰāĻŋāĻĻāĨ¤ āφāĻŽāϰāĻž āĻāχ āφāĻ•āĻžāϰāϗ⧁āϞāĻŋāϰ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ⧇āϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āĻĒāĻžāϞ āϤ⧋āϞāĻž āύ⧌āĻ•āĻž āĻŦāĻž āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻĄāĻŧāĻžāϞāϕ⧇ āϚāĻŋāύāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ āφāĻ•āĻžāϰ āϚāĻŋāύāϤ⧇ āĻĒāĻžāϰ⧇ āĻāĻŦāĻ‚ āĻŸā§āϰāĻžāĻ¨ā§āϏāĻĢāĻžāϰ āϞāĻžāĻ°ā§āύāĻŋāĻ‚ āĻāϟāĻŋ āĻļ⧇āĻ–āĻžāϝāĻŧ āϝ⧇ āϕ⧀ āϕ⧀ āϏāĻŽāĻ¨ā§āĻŦāϝāĻŧ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āύ⧌āĻ•āĻž āĻŦāĻž āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻĄāĻŧāĻžāϞ āϤ⧈āϰāĻŋ āĻ•āϰ⧇ - āĻ…āĻĨāĻŦāĻž āĻāĻ•āϟāĻŋ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻāĻ•āϟāĻŋ āĻĒāĻžāĻ•āĻž āĻ•āϞāĻž āĻĒāĻžāĻ“ā§ŸāĻž āϝāĻžā§ŸāĨ¤ + +āĻ•ā§āϞāĻžāωāĻĄ-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āϏāĻžāĻ°ā§āĻ­āĻŋāϏāϗ⧁āϞāĻŋ āϝāĻž āφāĻŽāĻžāĻĻ⧇āϰāϕ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻŽāĻĄā§‡āϞāϕ⧇ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĻāĻŋāϤ⧇ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰ⧇āĨ¤ āϤāĻžāϰāĻĒāϰ āĻ“āϝāĻŧ⧇āĻŦ āĻāĻĒāĻŋāφāχāϝāĻŧ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ + +> 💁 āĻāχ āĻŽāĻĄā§‡āϞāϗ⧁āϞāĻŋāϕ⧇ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĻāĻŋāϤ⧇ āĻĒā§āϰāϚ⧁āϰ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ āϰāĻŋāϏ⧋āĻ°ā§āϏ āϞāĻžāϗ⧇, āϏāĻžāϧāĻžāϰāĻŖāϤ āĻ—ā§āϰāĻžāĻĢāĻŋāĻ•ā§āϏ āĻĒā§āϰāϏ⧇āϏāĻŋāĻ‚ āχāωāύāĻŋāϟ āĻŦāĻž āϜāĻŋāĻĒāĻŋāχāω āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āϤāĻž āĻ•āϰāĻž āĻšā§ŸāĨ¤ āĻāϟāĻŋ āϏ⧇āχ āĻŦāĻŋāĻļ⧇āώ āĻšāĻžāĻ°ā§āĻĄāĻ“āϝāĻŧā§āϝāĻžāϰ āϝāĻž āφāĻŽāĻžāĻĻ⧇āϰ āĻāĻ•ā§āϏāĻŦāĻ•ā§āϏ⧇ āϗ⧇āĻŽāϗ⧁āϞāĻŋ āϚāĻžāϞāĻžā§ŸāĨ¤ āĻŽā§‡āĻļāĻŋāύ āϞāĻžāĻ°ā§āύāĻŋāĻ‚ āĻŽāĻĄā§‡āϞāϗ⧁āϞāĻŋ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāϪ⧇āϰ āϜāĻ¨ā§āϝāĻ“ āĻāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻ•ā§āϞāĻžāωāĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāĻŽāϰāĻž āĻāχ āĻŽāĻĄā§‡āϞāϗ⧁āϞāĻŋāϕ⧇ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāϪ⧇āϰ āϜāĻ¨ā§āϝ āϜāĻŋāĻĒāĻŋāχāω āϏāĻš āĻļāĻ•ā§āϤāĻŋāĻļāĻžāϞ⧀ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ⧇āϰ āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻĒ⧇āϤ⧇ āĻĒāĻžāϰāĻŋ, āφāĻŽāĻžāĻĻ⧇āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻŋāĻ‚ āĻĒāĻžāĻ“āϝāĻŧāĻžāϰ āĻāϰ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻĒ⧇āϤ⧇ āĻĒāĻžāϰāĻŋ, āϕ⧇āĻŦāϞ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āϏāĻŽāϝāĻŧ⧇āϰ āϜāĻ¨ā§āϝ - āĻāϤ⧇ āĻ•āϰ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻ–āϰāϚāĻ“ āĻ•āĻŽ, āĻ•āĻžāϜāĻ“ āĻšā§Ÿā§‡ āϝāĻžāĻŦ⧇āĨ¤ + +## āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāĻļāύ + +āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāĻļāύ āĻšāϞ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāϪ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻ•ā§āϞāĻžāωāĻĄ āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āϟ⧁āϞāĨ¤ āĻāϟāĻŋ āφāĻŽāĻžāĻĻ⧇āϰāϕ⧇ āĻ…āĻ˛ā§āĻĒ āϏāĻ‚āĻ–ā§āϝāĻ• āϚāĻŋāĻ¤ā§āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĻ⧇āĻ“āϝāĻŧāĻžāϰ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻ⧇āϝāĻŧāĨ¤ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āĻ“āϝāĻŧ⧇āĻŦ āĻĒā§‹āĻ°ā§āϟāĻžāϞ, āĻ“āϝāĻŧ⧇āĻŦ āĻāĻĒāĻŋāφāχ āĻŦāĻž āĻāĻ•āϟāĻŋ āĻāϏāĻĄāĻŋāϕ⧇ āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻ›āĻŦāĻŋ āφāĻĒāϞ⧋āĻĄ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ, āĻĒā§āϰāϤāĻŋāϟāĻŋ āχāĻŽā§‡āϜāϕ⧇ āĻāĻ•āϟāĻŋ *āĻŸā§āϝāĻžāĻ—* āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰāĻŋ āϝ⧇āϟāĻŋ āϏ⧇āχ āĻ›āĻŦāĻŋāϰ āĻļā§āϰ⧇āĻŖāĻŋāĻŦāĻŋāĻ¨ā§āϝāĻžāϏ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇āĨ¤ āϤāĻžāϰāĻĒāϰ⧇ āφāĻŽāϰāĻž āĻŽāĻĄā§‡āϞāϟāĻŋāϕ⧇ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĻāĻŋāĻŦ āĻāĻŦāĻ‚ āĻāϟāĻŋ āĻ•āϤāϟāĻž āĻ­āĻžāϞ āĻ•āĻžāϜ āĻ•āϰ⧇ āϤāĻž āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧇ āĻĻ⧇āĻ–āĻŦāĨ¤ āĻāĻ•āĻŦāĻžāϰ āφāĻŽāϰāĻž āĻŽāĻĄā§‡āϞāϟāĻŋ āύāĻŋāϝāĻŧ⧇ āϏāĻ¨ā§āϤ⧁āĻˇā§āϟ āĻšāϞ⧇, āφāĻŽāϰāĻž āĻāϰ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖāϗ⧁āϞāĻŋ āĻĒā§āϰāĻ•āĻžāĻļ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ āϝāĻž āĻāĻ•āϟāĻŋ āĻ“āϝāĻŧ⧇āĻŦ API āĻŦāĻž SDK āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝāĻžāϝāĻŧāĨ¤ + +![The Azure Custom Vision logo](../../../../images/custom-vision-logo.png) + +> 💁 āĻāĻ•āϟāĻŋ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāĻļāύ āĻŽāĻĄā§‡āϞāϕ⧇ āĻĒā§āϰāϤāĻŋ āĻļā§āϰ⧇āĻŖāĻŋāĻŦāĻŋāĻ¨ā§āϝāĻžāϏ⧇āϰ āϜāĻ¨ā§āϝ āĻ•āĻŽāĻĒāĻ•ā§āώ⧇ 5āϟāĻŋāϰ āĻŽāϤ⧋ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻ›āĻŦāĻŋ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰāĻŋ, āϤāĻŦ⧇ āϝāϤ āĻŦ⧇āĻļā§€ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰāĻŦā§‹, āϤāϤ āĻ­āĻžāϞ⧋āĨ¤ āωāĻ¨ā§āύāϤ āĻĢāϞāĻžāĻĢāϞ⧇āϰ āϜāĻ¨ā§āϝ āĻ•āĻŽāĻĒāĻ•ā§āώ⧇ 30 āϟāĻŋ āĻ›āĻŦāĻŋ āĻĻā§‡ā§ŸāĻž āωāϚāĻŋāϤāĨ¤ + +āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāĻļāύ āĻŽāĻžāχāĻ•ā§āϰ⧋āϏāĻĢāĻŸā§‡āϰ āĻ•āĻ—āύāĻŋāϟāĻŋāĻ­ āϏāĻžāĻ°ā§āĻ­āĻŋāϏ āύāĻžāĻŽā§‡ āĻĒāϰāĻŋāϚāĻŋāϤ āĻāφāχ āϟ⧁āϞ⧇āϰ āĻāĻ•āϟāĻŋ āĻ…āĻ‚āĻļ⧇āϰ āĻ…āĻ‚āĻļāĨ¤ āĻāϗ⧁āϞāĻŋ āĻšāϞ āĻāφāχ āϟ⧁āϞāϏ āϝāĻž āϕ⧋āύ⧋ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻ›āĻžāĻĄāĻŧāĻžāχ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇ āĻ…āĻĨāĻŦāĻž āĻ…āĻ˛ā§āĻĒ āĻĒāϰāĻŋāĻŽāĻžāϪ⧇ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĻāĻŋāϝāĻŧ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻāϰ āĻŽāĻ§ā§āϝ⧇ āϰāϝāĻŧ⧇āϛ⧇ speech recognition, āĻ…āύ⧁āĻŦāĻžāĻĻ, āĻ­āĻžāώāĻž āĻŦā§‹āĻāĻž āĻāĻŦāĻ‚ āϚāĻŋāĻ¤ā§āϰ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖāĨ¤ āĻāϗ⧁āϞāĻŋ Azure āϏāĻžāĻ°ā§āĻ­āĻŋāϏ āĻšāĻŋāϏāĻžāĻŦ⧇ āωāĻĒāϞāĻŦā§āϧ āφāϛ⧇, Free tier āĻāĨ¤ + +> 💁 āĻŦāĻŋāύāĻžāĻŽā§‚āĻ˛ā§āϝ⧇ āĻ¸ā§āϤāϰ āĻŦāĻž Free tier āĻāĻ•āϟāĻŋ āĻŽāĻĄā§‡āϞ āϤ⧈āϰāĻŋ āĻ•āϰāĻž, āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĻ⧇āĻ“āϝāĻŧāĻž, āϤāĻžāϰāĻĒāϰ āωāĻ¨ā§āύāϝāĻŧāύ āĻ•āĻžāĻœā§‡āϰ āϜāĻ¨ā§āϝ āĻāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āϝāĻĨ⧇āĻˇā§āϟāĨ¤ [āĻŽāĻžāχāĻ•ā§āϰ⧋āϏāĻĢāϟ āĻĄāĻ•āϏ āĻ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāĻļāύ āĻāϰ āϞāĻŋāĻŽāĻŋāϟ āĻāĻŦāĻ‚ āϕ⧋āϟāĻž - āĻāχ āĻĒ⧇āχāĻœā§‡](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/limits-and-quotas?WT.mc_id=academic-17441-jabenn) āĻŦāĻŋāύāĻžāĻŽā§‚āĻ˛ā§āϝ⧇ āĻ¸ā§āϤāϰ (Free tier) āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āφāĻŽāϰāĻž āĻĒāĻĄāĻŧāϤ⧇ āĻĒāĻžāϰāĻŋ + +### āĻ•āĻžāϜ - āĻ•āĻ—āύāĻŋāϟāĻŋāĻ­ āϏāĻžāĻ°ā§āĻ­āĻŋāϏ āϰāĻŋāϏ⧋āĻ°ā§āϏ āϤ⧈āϰ⧀ + +āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ, āφāĻŽāĻžāĻĻ⧇āϰāϕ⧇ āĻĒā§āϰāĻĨāĻŽā§‡ Azure CLI āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ Azure- āĻ āĻĻ⧁āϟāĻŋ cognitive services resources āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇, āĻāĻ•āϟāĻŋ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāĻļāύ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāϪ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāĻļāύ āĻĢāϞāĻžāĻĢāϞ⧇āϰ āϜāĻ¨ā§āϝāĨ¤ + +1. āĻāĻ•āϟāĻŋ āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻ—ā§āϰ⧁āĻĒ āϤ⧈āϰ⧀ āĻ•āϰāĻŋ āϝāĻžāϰ āύāĻžāĻŽ `fruit-quality-detector` + +1. āĻāĻ•āϟāĻŋ āĻŦāĻŋāύāĻžāĻŽā§‚āĻ˛ā§āϝ⧇ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāĻļāύ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āϰāĻŋāϏ⧋āĻ°ā§āϏ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ ā§āĻ•āϰāĻŋ: + + ```sh + az cognitiveservices account create --name fruit-quality-detector-training \ + --resource-group fruit-quality-detector \ + --kind CustomVision.Training \ + --sku F0 \ + --yes \ + --location + ``` + + `` āĻāϰ āĻ¸ā§āĻĨāϞ⧇ āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻ—ā§āϰ⧁āĻĒ āϤ⧈āϰ⧀āϤ⧇ āϝ⧇ āϞ⧋āϕ⧇āĻļā§‹āύ āĻĻā§‡ā§ŸāĻž āĻšā§Ÿā§‡āϛ⧇ āϤāĻž āĻŦāϏāĻžāχāĨ¤ + + āĻāϟāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻ—ā§āϰ⧁āĻĒ⧇ āĻāĻ•āϟāĻŋ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāĻļāύ āĻŸā§āϰ⧇āύāĻŋāĻ‚ āϰāĻŋāϏ⧋āĻ°ā§āϏ āϤ⧈āϰāĻŋ āĻ•āϰāĻŦ⧇āĨ¤ āĻāϟāĻŋāϕ⧇ āύāĻžāĻŽ āĻĻā§‡ā§ŸāĻž āĻšāĻŦ⧇ `fruit-quality-detector-training` (āĻĢāϞ⧇āϰ-āϗ⧁āĻŖ-āϏāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀-āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ) āĻāĻŦāĻ‚ `F0` sku āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŋ, āϝāĻž āĻŦāĻŋāύāĻžāĻŽā§‚āĻ˛ā§āϝ āĻ¸ā§āϤāϰ⧇ āĻĒāĻžāĻ“ā§ŸāĻž āϝāĻžā§ŸāĨ¤ `--yes` āĻ…āĻĒāĻļāύ⧇āϰ āĻ…āĻ°ā§āĻĨ āĻšāϞ āĻ•āĻ—āύāĻŋāϟāĻŋāĻ­ āϏāĻžāĻ°ā§āĻ­āĻŋāϏ⧇āϰ āĻļāĻ°ā§āϤāĻžāĻŦāϞ⧀āϤ⧇ āφāĻŽāϰāĻž āϏāĻŽā§āĻŽāϤāĨ¤ + +> 💁 āφāĻŽāϰāĻž āϝāĻĻāĻŋ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇ āϕ⧋āύ āĻĢā§āϰ⧀ āĻāĻ•āĻžāωāĻ¨ā§āϟ āĻĨ⧇āϕ⧇ āĻ•āĻ—āύāĻŋāϟāĻŋāĻ­ āϏāĻžāĻ°ā§āĻ­āĻŋāϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĨāĻžāĻ•āĻŋ, āϤāĻžāĻšāϞ⧇ `S0` sku āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ + +1. āĻāĻ•āϟāĻŋ āĻŦāĻŋāύāĻžāĻŽā§‚āĻ˛ā§āϝ⧇ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāĻļāύ āĻĒā§āϰ⧇āĻĄāĻŋāĻ•āĻļā§‹āύ āϰāĻŋāϏ⧋āĻ°ā§āϏ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŋ: + + ```sh + az cognitiveservices account create --name fruit-quality-detector-prediction \ + --resource-group fruit-quality-detector \ + --kind CustomVision.Prediction \ + --sku F0 \ + --yes \ + --location + ``` + + `` āĻāϰ āĻ¸ā§āĻĨāϞ⧇ āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻ—ā§āϰ⧁āĻĒ āϤ⧈āϰ⧀āϤ⧇ āϝ⧇ āϞ⧋āϕ⧇āĻļā§‹āύ āĻĻā§‡ā§ŸāĻž āĻšā§Ÿā§‡āϛ⧇ āϤāĻž āĻŦāϏāĻžāχāĨ¤ + + āĻāϟāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻ—ā§āϰ⧁āĻĒ⧇ āĻāĻ•āϟāĻŋ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāĻļāύ ā§āĻĒā§āϰ⧇āĻĄāĻŋāĻ•āĻļāύ āϰāĻŋāϏ⧋āĻ°ā§āϏ āϤ⧈āϰāĻŋ āĻ•āϰāĻŦ⧇āĨ¤ āĻāϟāĻŋāϕ⧇ āĻŦāϞāĻž āĻšāĻŦ⧇ `fruit-quality-detector-prediction` āĻāĻŦāĻ‚ 'F0' āĻ¸ā§āϕ⧁ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŋ, āϝāĻž āĻĢā§āϰ⧀āĨ¤ `-yes` āĻ…āĻĒāĻļāύ⧇āϰ āĻ…āĻ°ā§āĻĨ āĻšāϞ āĻ•āĻ—āύāĻŋāϟāĻŋāĻ­ āϏāĻžāĻ°ā§āĻ­āĻŋāϏ⧇āϰ āĻļāĻ°ā§āϤāĻžāĻŦāϞ⧀āϤ⧇ āφāĻŽāϰāĻž āϏāĻŽā§āĻŽāϤāĨ¤ + +### āĻ•āĻžāϜ - āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ āϤ⧈āϰ⧀ + +1. Custom Vision portal āϚāĻžāϞ⧁ āĻ•āϰāĻŋ [CustomVision.ai](https://customvision.ai) āĻāĻŦ⧁āĻ‚ Azure āĻāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻŽāĻžāχāĻ•ā§āϰ⧋āϏāĻĢāϟ āĻāĻ•āĻžāωāĻ¨ā§āĻŸā§‡ āϞāĻ—āĻŋāύ āĻ•āϰāĻŋāĨ¤ + +1. āĻāĻ–āύ [āĻāĻ•āϟāĻŋ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ āύāĻŋāĻ°ā§āĻŽāĻžāϪ⧇āϰ āϜāĻ¨ā§āϝ āύāϤ⧁āύ āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ āϤ⧈āϰāĻŋ āĻ•āϰāĻžāϰ āĻĒā§āϰāĻ•ā§āϰāĻŋ⧟āĻž - Microsoft docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#create-a-new-project) āĻĒā§œā§‡ āύāϤ⧁āύ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāĻļāύ āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ āύāĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻ•āϰāĻŋāĨ¤ + + āĻĒā§āϰāĻœā§‡āĻ•ā§āĻŸā§‡āϰ āύāĻžāĻŽ āĻĻāĻŋāχ `fruit-quality-detector`. + + āφāĻŽāϰāĻž āĻāĻ–āύ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ āϤ⧈āϰāĻŋ āĻ•āϰāĻŋ, āφāĻŽāĻžāĻĻ⧇āϰ āφāϗ⧇ āϤ⧈āϰāĻŋ āĻ•āϰāĻž `fruit-quality-detector-training` āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻāĻ•āϟāĻŋ *āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻŋāϕ⧇āĻļāύ* āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ āϟāĻžāχāĻĒ, āĻāĻ•āϟāĻŋ *āĻŽāĻžāĻ˛ā§āϟāĻŋāĻ•ā§āϞāĻžāϏ* āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻŋāϕ⧇āĻļāύ āϟāĻžāχāĻĒ āĻāĻŦāĻ‚ *āĻĢ⧁āĻĄ* āĻĄā§‹āĻŽā§‡āχāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŋāĨ¤ + + ![The settings for the custom vision project with the name set to fruit-quality-detector, no description, the resource set to fruit-quality-detector-training, the project type set to classification, the classification types set to multi class and the domains set to food](../../../../images/custom-vision-create-project.png) + +✅ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāĻļāύ āχāωāφāχ āĻāĻ•ā§āϏāĻĒā§āϞ⧋āϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ•āĻŋāϛ⧁ āϏāĻŽāϝāĻŧ āύāĻŋāχāĨ¤ + +### āĻ•āĻžāϜ - āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰāϕ⧇ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĒā§āϰāĻĻāĻžāύ + +āĻāĻ•āϟāĻŋ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰāϕ⧇ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĻ⧇āĻ“āϝāĻŧāĻžāϰ āϜāĻ¨ā§āϝ, āφāĻŽāĻžāĻĻ⧇āϰ āĻ­āĻžāϞ āĻāĻŦāĻ‚ āĻ–āĻžāϰāĻžāĻĒ āωāĻ­āϝāĻŧ āϗ⧁āϪ⧇āϰ āĻĢāϞ⧇āϰ āĻāĻ•āĻžāϧāĻŋāĻ• āĻ›āĻŦāĻŋ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāĻŦ⧇, āϝ⧇āĻŽāύ āĻāĻ•āϟāĻŋ āĻĒāĻžāĻ•āĻž āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āĻĒāĻžāĻ•āĻž āĻ•āϞāĻžāĨ¤ + +> 💁āĻāχ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰāϗ⧁āϞ⧋ āϝ⧇āϕ⧋āύ⧋ āĻ•āĻŋāϛ⧁āϰ āĻ›āĻŦāĻŋāϕ⧇ āĻļā§āϰ⧇āĻŖā§€āĻŦāĻĻā§āϧ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āϤāĻžāχ āϝāĻĻāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻžāϛ⧇ āĻ­āĻŋāĻ¨ā§āύ āĻŽāĻžāύ⧇āϰ āĻĢāϞ āύāĻž āĻĨāĻžāϕ⧇ āϤāĻŦ⧇ āφāĻŽāϰāĻž āĻ…āĻ¨ā§āϝ āϝ⧇āϕ⧋āύ āĻĻ⧁āϟāĻŋ āĻ­āĻŋāĻ¨ā§āύ āϧāϰāύ⧇āϰ āĻĢāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ, āĻ…āĻĨāĻŦāĻž āĻŦāĻŋāĻĄāĻŧāĻžāϞ āĻāĻŦāĻ‚ āϕ⧁āϕ⧁āϰ - āĻāχ āϧāϰā§ĻāϪ⧇āϰ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻŋāϕ⧇āĻļāύāĻ“ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ! + +āφāĻĻāĻ°ā§āĻļāĻ­āĻžāĻŦ⧇ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻ›āĻŦāĻŋāϤ⧇ āĻļ⧁āϧ⧁ āĻĢāϞ āĻĨāĻžāĻ•āĻž āωāϚāĻŋāϤ, āϝāĻžāϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋ āϏāĻžāĻŽāĻžā§āϜāĻ¸ā§āϝāĻĒā§‚āĻ°ā§āĻŖ āĻŦā§āϝāĻžāĻ•āĻ—ā§āϰāĻžāωāĻŖā§āĻĄ , āĻ…āĻĨāĻŦāĻž āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻĒā§āϰāĻ•āĻžāϰ⧇āϰ āĻŦā§āϝāĻžāĻ•āĻ—ā§āϰāĻžāωāĻŖā§āĻĄ āĻĨāĻžāĻ•āϤ⧇ āĻšāĻŦ⧇āĨ¤ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāĻŋ āϝ⧇ āĻŦā§āϝāĻžāĻ•āĻ—ā§āϰāĻžāωāĻŖā§āĻĄ āĻ āĻāĻŽāύ āĻ•āĻŋāϛ⧁ āύ⧇āχ āϝāĻž āĻĒāĻžāĻ•āĻž āĻŦāύāĻžāĻŽ āĻ•āĻžāρāϚāĻž āĻĢāϞ⧇āϰ āϏāύāĻžāĻ•ā§āϤāĻ•āϰāϪ⧇ āĻĒā§āϰāĻ­āĻžāĻŦ āĻĢ⧇āϞāĻŦ⧇āĨ¤ + +> 💁 āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻŦā§āϝāĻžāĻ•āĻ—ā§āϰāĻžāωāĻŖā§āĻĄ āĻŦāĻž āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āφāχāĻŸā§‡āĻŽ āύāĻž āĻĨāĻžāĻ•āĻžāχ āĻ­āĻžāϞ⧋ āϝāĻž āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ āĻ…āĻĒā§āϰāĻžāϏāĻ™ā§āĻ—āĻŋāĻ•, āĻ…āĻ¨ā§āϝāĻĨāĻžāϝāĻŧ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ⧇āϰ āϕ⧇āĻŦāϞ āĻŦā§āϝāĻžāĻ•āĻ—ā§āϰāĻžāωāĻŖā§āĻĄ āĻāϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āĻļā§āϰ⧇āĻŖā§€āĻŦāĻĻā§āϧ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻ¤ā§āĻŦāϕ⧇āϰ āĻ•ā§āϝāĻžāĻ¨ā§āϏāĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ āĻ›āĻŋāϞ āϝāĻž āĻŽā§‹āϞāϗ⧁āϞāĻŋāϰ āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ• āĻāĻŦāĻ‚ āĻ•ā§āϝāĻžāĻ¨ā§āϏāĻžāϰāϝ⧁āĻ•ā§āϤ āωāĻ­āϝāĻŧ āĻāϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŋāϤ āĻ›āĻŋāϞāĨ¤ āĻ•ā§āϝāĻžāĻ¨ā§āϏāĻžāϰāϝ⧁āĻ•ā§āϤ āĻŽā§‹āϞ⧇āϰ āĻ›āĻŦāĻŋāϤ⧇ āφāĻ•āĻžāϰ āĻĒāϰāĻŋāĻŽāĻžāĻĒ⧇āϰ āϜāĻ¨ā§āϝ āϏ⧇āĻ–āĻžāύ⧇ āĻ¸ā§āϕ⧇āϞ āϰāĻžāĻ–āĻž āĻ›āĻŋāϞ⧋āĨ¤ āĻāϟāĻŋ āĻĻ⧇āĻ–āĻž āϝāĻžā§Ÿ āϝ⧇, āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ⧇āϰ āĻ›āĻŦāĻŋāϗ⧁āϞāĻŋāϤ⧇ āĻ¸ā§āϕ⧇āĻ˛ā§āϗ⧁āϞ⧋āϕ⧇ āϚāĻŋāĻšā§āύāĻŋāϤ āĻ•āϰāĻžāϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻĒā§āϰāĻžāϝāĻŧ 100% āύāĻŋāĻ°ā§āϭ⧁āϞ āĻ›āĻŋāϞ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āϏāĻ¤ā§āϝāĻŋāĻ•āĻžāϰ⧇āϰ āĻ•ā§āϝāĻžāĻ¨ā§āϏāĻžāϰāϝ⧁āĻ•ā§āϤ āĻŽā§‹āϞ āĻāϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ (āĻ›āĻŦāĻŋāϤ⧇ āĻ¸ā§āϕ⧇āϞ āύāĻž āϰ⧇āϖ⧇) āϤāĻž āϤāϤāϟāĻž āĻ­āĻžāϞ⧋ āĻĒā§āϰ⧇āĻĄāĻŋāĻ•āĻļāύ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰ⧇āύāĻŋāĨ¤āĨ¤ + +āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ āϖ⧁āĻŦ āĻ•āĻŽ āϰ⧇āĻœā§āϝ⧁āϞ⧇āĻļāύ⧇ āϚāϞ⧇āĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāĻļāύ 10240x10240 āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻāĻŦāĻ‚ āĻ­āĻŦāĻŋāĻˇā§āϝāĻĻā§āĻŦāĻžāĻŖā§€ āϚāĻŋāĻ¤ā§āϰ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇, āĻ•āĻŋāĻ¨ā§āϤ⧁ 227x227 āϰ⧇āĻœā§āϝ⧁āϞ⧇āĻļāύ⧇ āϚāĻŋāĻ¤ā§āϰāϗ⧁āϞāĻŋāϤ⧇ āĻŽāĻĄā§‡āϞāϟāĻŋ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻāĻŦāĻ‚ āϰāĻžāύ āĻ•āϰ⧇āĨ¤ āĻŦāĻĄāĻŧ āφāĻ•āĻžāϰ⧇āϰ āĻ›āĻŦāĻŋāϗ⧁āϞāĻŋ āĻāχ āφāĻ•āĻžāϰ⧇ āϏāĻ™ā§āϕ⧁āϚāĻŋāϤ āĻšāϝāĻŧ, āϤāĻžāχ āφāĻŽāĻžāĻĻ⧇āϰāϕ⧇ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϝ⧇ āφāĻŽāϰāĻž āϝ⧇ āϜāĻŋāύāĻŋāϏāϟāĻŋ āĻļā§āϰ⧇āĻŖāĻŋāĻŦāĻĻā§āϧ āĻ•āϰāĻ›āĻŋ āϤāĻž āϚāĻŋāĻ¤ā§āϰ⧇āϰ āĻāĻ•āϟāĻŋ āĻŦāĻĄāĻŧ āĻ…āĻ‚āĻļ āĻĻāĻ–āϞ āĻ•āϰ⧇ āĻ…āĻ¨ā§āϝāĻĨāĻžāϝāĻŧ āĻāϟāĻŋ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ āĻĻā§āĻŦāĻžāϰāĻž āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāĻŋāϤ āϛ⧋āϟ āĻ›āĻŦāĻŋāϤ⧇ āϖ⧁āĻŦāχ āϛ⧋āϟ āĻšā§Ÿā§‡ āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ + +1. āφāĻŽāĻžāĻĻ⧇āϰ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ āĻ›āĻŦāĻŋ āϏāĻ‚āĻ—ā§āϰāĻš āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰāϕ⧇ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāϪ⧇āϰ āϜāĻ¨ā§āϝ āφāĻŽāĻžāĻĻ⧇āϰāϕ⧇ āĻĒā§āϰāϤāĻŋāϟāĻŋ āϞ⧇āĻŦ⧇āϞ⧇āϰ āĻ•āĻŽāĻĒāĻ•ā§āώ⧇ .ā§Ģ āϟāĻŋ āĻ›āĻŦāĻŋāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāĻŦ⧇, āϤāĻŦ⧇ āĻŦ⧇āĻļāĻŋ āĻšāϞ⧇ āφāϰāĻ“ āĻ­āĻžāϞāĨ¤ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āϚāĻŋāĻ¤ā§āϰ⧇āϰāĻ“ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāĻŦ⧇āĨ¤ āĻāχ āĻ›āĻŦāĻŋāϗ⧁āϞāĻŋ āϏāĻŦ āĻāĻ•āχ āϜāĻŋāύāĻŋāϏ⧇āϰ āĻ­āĻŋāĻ¨ā§āύ āϚāĻŋāĻ¤ā§āϰ āĻšāĻ“āϝāĻŧāĻž āωāϚāĻŋāϤāĨ¤ āωāĻĻāĻžāĻšāϰāĻŖ āĻ¸ā§āĻŦāϰ⧂āĻĒ: + + * ⧍āϟāĻŋ āĻĒāĻžāĻ•āĻž āĻ•āϞāĻž āύāĻŋā§Ÿā§‡, āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻ­āĻŋāĻ¨ā§āύ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāύ āĻĨ⧇āϕ⧇ āĻĒā§āϰāĻ¤ā§āϝ⧇āĻ•āϟāĻŋāϰ āĻ•āĻŋāϛ⧁ āĻ›āĻŦāĻŋ āϤ⧁āϞāĻŋ, āĻ•āĻŽāĻĒāĻ•ā§āώ⧇ ā§­ āϟāĻŋ āĻ›āĻŦāĻŋ āϤ⧁āϞāϤ⧇ āĻšāĻŦ⧇ (ā§Ģ āϟāĻŋ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ, ⧍āϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž)āĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāϰāĻ“ āĻŦ⧇āĻļāĻŋ āĻ›āĻŦāĻŋ āϤ⧁āϞāϤ⧇ āĻĒāĻžāϰāϞ⧇ āĻ­āĻžāϞ⧋āĨ¤ + + ![Photos of 2 different bananas](../../../../images/banana-training-images.png) + + * ⧍āϟāĻŋ āĻ•āĻžāρāϚāĻž āĻ•āϞāĻž āĻāĻ•āχ āĻ•āĻžāϜāϟāĻŋ āφāĻŦāĻžāϰāĻ“ āĻ•āϰāĻŋāĨ¤ + + āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻŽāĻĒāĻ•ā§āώ⧇ ā§§ā§ĻāϟāĻŋ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āϚāĻŋāĻ¤ā§āϰ āĻĨāĻžāĻ•āϤ⧇ āĻšāĻŦ⧇, āϝāĻžāϰ āĻŽāĻ§ā§āϝ⧇ āĻ•āĻŽāĻĒāĻ•ā§āώ⧇ ā§Ģ āϟāĻŋ āĻĒāĻžāĻ•āĻž āĻāĻŦāĻ‚ ā§Ģ āϟāĻŋ āĻ•āĻžāρāϚāĻž āĻāĻŦāĻ‚ ā§Ē āϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻžāϰ āϚāĻŋāĻ¤ā§āϰ, āϝ⧇āĻ–āĻžāύ⧇ ⧍āϟāĻŋ āĻĒāĻžāĻ•āĻž, ⧍āϟāĻŋ āĻ•āĻžāρāϚāĻžāĨ¤ āφāĻŽāĻžāĻĻ⧇āϰ āĻ›āĻŦāĻŋāϗ⧁āϞāĻŋ png āĻŦāĻž jpegs āĻšāĻ“āϝāĻŧāĻž āωāϚāĻŋāϤ āϝāĻž 6MB āĻāϰ āĻšā§‡āϝāĻŧ⧇ āϛ⧋āϟāĨ¤ āϝāĻĻāĻŋ āφāĻŽāϰāĻž āϏ⧇āϗ⧁āϞ⧋āϕ⧇ āφāχāĻĢā§‹āύ āĻĻāĻŋāϝāĻŧ⧇ āϧāĻžāϰāĻŖ āĻ•āϰāĻŋ, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ āϏ⧇āϗ⧁āϞ⧋ āĻšāϤ⧇ āĻĒāĻžāϰ⧇ āωāĻšā§āϚ āϰ⧇āĻœā§‹āϞāĻŋāωāĻļāύ⧇āϰ HEIC āĻ›āĻŦāĻŋ, āϤāĻžāχ āϰ⧂āĻĒāĻžāĻ¨ā§āϤāϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āĻāĻŦāĻ‚ āϏāĻŽā§āĻ­āĻŦāϤ āϏāĻ™ā§āϕ⧁āϚāĻŋāϤ āĻšāϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻŽāύ⧇ āϰāĻžāĻ–āϤ⧇ āĻšāĻŦ⧇, āϝāϤ āĻŦ⧇āĻļāĻŋ āĻ›āĻŦāĻŋ āϤāϤ āĻ­āĻžāϞ āĻāĻŦāĻ‚ āφāĻŽāĻžāĻĻ⧇āϰ āĻāĻ•āχ āϏāĻ‚āĻ–ā§āϝāĻ• āĻĒāĻžāĻ•āĻž āĻāĻŦāĻ‚ āĻ•āĻžāρāϚāĻž ā§āĻ•āϞāĻžāϰ āĻ›āĻŦāĻŋ āĻĨāĻžāĻ•āϤ⧇ āĻšāĻŦ⧇āĨ¤ + + āϝāĻĻāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒāĻžāĻ•āĻž āĻāĻŦāĻ‚ āĻ•āĻžāρāϚāĻž āωāĻ­āϝāĻŧ āĻĢāϞāχ āύāĻž āĻĨāĻžāϕ⧇, āϤāĻžāĻšāϞ⧇ āφāĻŽāϰāĻž āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻĢāϞ, āĻ…āĻĨāĻŦāĻž āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻžāϛ⧇ āĻĨāĻžāĻ•āĻž āϝ⧇āϕ⧋āύ⧋ āĻĻ⧁āϟāĻŋ āĻŦāĻ¸ā§āϤ⧁ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦāĨ¤ āφāĻŽāϰāĻž āĻĒāĻžāĻ•āĻž āĻāĻŦāĻ‚ āĻ•āĻžāρāϚāĻž āĻ•āϞāĻžāϗ⧁āϞāĻŋāϰ [images](./images) āĻĢā§‹āĻ˛ā§āĻĄāĻžāϰ⧇ āĻ•āĻŋāϛ⧁ āωāĻĻāĻžāĻšāϰāĻŖ āϚāĻŋāĻ¤ā§āϰ āϖ⧁āρāĻœā§‡ āĻĒāĻžāĻŦ āϝāĻž āφāĻŽāϰāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āϚāĻžāχāϞ⧇ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ + +1. āĻāĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āϏāĻšāĻœā§‡ āĻ…āύ⧁āϏāϰāĻŖāϝ⧋āĻ—ā§āϝ āĻ—āĻžāχāĻĄ āĻšāĻŋāϏ⧇āĻŦ⧇ [āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ āĻ›āĻŦāĻŋ āφāĻĒāϞ⧋āĻĄ āĻ“ āĻŸā§āϝāĻžāĻ—](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#upload-and-tag-images) ā§āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āĻĒāĻžāĻ•āĻž āĻ•āϞāĻžāϕ⧇ `ripe` āĻāĻŦāĻ‚ āĻ•āĻžāρāϚāĻžāϗ⧁āϞ⧋āϕ⧇ `unripe` āĻšāĻŋāϏ⧇āĻŦ⧇ āĻŸā§āϝāĻžāĻ— āĻĻāĻŋāχāĨ¤ + + ![The upload dialogs showing the upload of ripe and unripe banana pictures](../../../../images/image-upload-bananas.png) + +1. āĻāĻ–āύ [āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ⧇āϰ āĻŸā§āϰ⧇āύāĻŋāĻ‚ āϕ⧁āχāĻ•āĻ¸ā§āϟāĻžāĻ°ā§āϟ āĻ—āĻžāχāĻĄ ](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#train-the-classifier) āĻĻ⧇āϖ⧇ āĻŸā§āϰ⧇āύāĻŋāĻ‚ āϏāĻŽā§āĻĒāĻ¨ā§āύ āĻ•āϰāĻŋāĨ¤ + + āĻŸā§āϰ⧇āύāĻŋāĻ‚ āϟāĻžāχāĻĒ⧇āϰ āϜāĻ¨ā§āϝ **Quick Training** āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰāĻŋāĨ¤ + +> 🍌 āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āϚāϞāĻžāĻ•āĻžāϞ⧀āύ āϝāĻĻāĻŋ āĻāχ āĻĢāϞāϗ⧁āϞ⧋ āĻ–āĻžāĻ“āϝāĻŧāĻžāϰ āϚāĻŋāĻ¨ā§āϤāĻž āĻŽāĻžāĻĨāĻžā§Ÿ āφāϏ⧇, āϤāĻžāĻšāϞ⧇ āφāϗ⧇āχ āϝāĻĨ⧇āĻˇā§āϟ āϏāĻ‚āĻ–ā§āϝāĻ• āĻ›āĻŦāĻŋ āϤ⧁āϞ⧇ āϰāĻžāĻ–āĻŋ ! + +## āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰāϕ⧇ āĻŽā§‚āĻ˛ā§āϝāĻžā§ŸāĻŖ + +āĻāĻ•āĻŦāĻžāϰ āĻāχ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ āĻŸā§āϰ⧇āχāύāĻĄ āĻšāϝāĻŧ⧇ āϗ⧇āϞ⧇, āĻāϟāĻŋāϤ⧇ āĻ›āĻŦāĻŋ āϚāĻŋāĻšā§āύāĻŋāϤāĻ•āϰāϪ⧇āϰ āϜāĻ¨ā§āϝ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ (āĻŸā§‡āĻ¸ā§āϟ) āϚāĻŋāĻ¤ā§āϰ āĻĻāĻŋāϝāĻŧ⧇ āĻāϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻŋāĨ¤ + +### āĻ•āĻžāϜ - āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰāϕ⧇ āĻŽā§‚āĻ˛ā§āϝāĻžā§ŸāĻŖ + +1. āĻāĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āϏāĻšāĻœā§‡ āĻ…āύ⧁āϏāϰāĻŖāϝ⧋āĻ—ā§āϝ [āĻŽāĻĄā§‡āϞ āĻŸā§‡āĻ¸ā§āϟ āĻ•āϰāĻžāϰ āĻ—āĻžāχāĻĄ](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/test-your-model?WT.mc_id=academic-17441-jabenn#test-your-model) āĻ…āύ⧁āϏāϰāĻŖ āĻ•āϰāĻŋ, āύāϤ⧁āύ āĻ›āĻŦāĻŋ āĻĻāĻŋā§Ÿā§‡ āĻŸā§‡āĻ¸ā§āϟ āĻ•āϰāϤ⧇āĨ¤ + + ![A unripe banana predicted as unripe with a 98.9% probability, ripe with a 1.1% probability](../../../../images/banana-unripe-quick-test-prediction.png) + +1. āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻžāϛ⧇ āĻĨāĻžāĻ•āĻž āϏāĻŽāĻ¸ā§āϤ āĻ›āĻŦāĻŋāϗ⧁āϞāĻŋ āĻĻāĻŋā§Ÿā§‡ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰāĻŋ āĻāĻŦāĻ‚ āĻĢāϞāĻžāĻĢāϞ⧇āϰ āύāĻŋāĻ°ā§āϭ⧁āϞ āĻšāĻŦāĻžāϰ āϏāĻŽā§āĻ­āĻžāĻŦāύāĻž āĻĒāĻ°ā§āϝāĻŦ⧇āĻ•ā§āώāĻŖ āĻ•āϰāĻŋāĨ¤ + +## āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰāϕ⧇ āĻĒ⧁āύāϰāĻžā§Ÿ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ + +āϝāĻ–āύ āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻŋ, āĻāϟāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒā§āϰāĻ¤ā§āϝāĻžāĻļāĻŋāϤ āĻĢāϞāĻžāĻĢāϞ āύāĻžāĻ“ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ āĻŽā§‡āĻļāĻŋāύ āϞāĻžāĻ°ā§āύāĻŋāĻ‚ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āĻ›āĻŦāĻŋāϤ⧇ āĻ•āĻŋ āφāϛ⧇ āϏ⧇ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻ­āĻŦāĻŋāĻˇā§āϝāĻĻā§āĻŦāĻžāĻŖā§€ āĻ•āϰ⧇, āϏāĻŽā§āĻ­āĻžāĻŦāύāĻžāϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āχāĻŽā§‡āĻœā§‡āϰ āĻŦāĻŋāĻļ⧇āώ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ (āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āϞ⧇āĻŦ⧇āϞ⧇āϰ) āϏāĻžāĻĨ⧇ āĻŽāĻŋāϞāĻŋā§Ÿā§‡ āĻĻ⧇āϖ⧇āĨ¤ āĻāϟāĻŋ āĻ›āĻŦāĻŋāϤ⧇ āĻ•āĻŋ āφāϛ⧇ āϤāĻž āĻŦā§‹āĻā§‡ āύāĻž - āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻ•āϞāĻž āϕ⧀ āϤāĻž āϜāĻžāύ⧇ āύāĻž āĻŦāĻž āĻŦ⧁āĻāϤ⧇ āĻĒāĻžāϰ⧇āύāĻž āϝ⧇ āĻāĻ•āϟāĻŋ āĻ•āϞāĻž āĻ“ āύ⧌āĻ•āĻžāϰ āĻŽāĻ§ā§āϝ⧇ āϕ⧀ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝāĨ¤ āϕ⧋āύ āϭ⧁āϞ āĻĨāĻžāĻ•āϞ⧇, āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰāϕ⧇ āχāĻŽā§‡āϜ āĻĻāĻŋāϝāĻŧ⧇ āĻĒ⧁āύāϰāĻžāϝāĻŧ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĻāĻŋā§Ÿā§‡ āφāϰ⧋ āωāĻ¨ā§āύāϤ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ + +āĻĒā§āϰāϤāĻŋāĻŦāĻžāϰ āφāĻŽāϰāĻž quick test āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϰāĻžāύ āĻĻāĻŋāϞ⧇, āĻ›āĻŦāĻŋ āĻāĻŦāĻ‚ āĻĢāϞāĻžāĻĢāϞ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āĻŽāĻĄā§‡āϞ āĻĒ⧁āύāϰāĻžāϝāĻŧ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĻāĻŋāϤ⧇ āĻāχ āĻ›āĻŦāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ + +### āĻ•āĻžāϜ - āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰāϕ⧇ āĻĒ⧁āύāϰāĻžā§Ÿ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ + +1. āĻāĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āϏāĻšāĻœā§‡ āĻ…āύ⧁āϏāϰāĻŖāϝ⧋āĻ—ā§āϝ āĻ—āĻžāχāĻĄ āĻšāĻŋāϏ⧇āĻŦ⧇ [Predicted āĻ›āĻŦāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻŸā§āϰ⧇āύāĻŋāĻ‚ āĻĒā§āϰāĻĻāĻžāύ - āĻāχ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āϟ ](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/test-your-model?WT.mc_id=academic-17441-jabenn#use-the-predicted-image-for-training) āĻĒā§œā§‡, āφāĻŽāĻžāĻĻ⧇āϰ āĻŽāĻĄā§‡āϞāϕ⧇ āĻĒ⧁āύāϰāĻžā§Ÿ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰāĻŋ, āϏāĻ āĻŋāĻ• āĻŸā§āϝāĻžāĻ— āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ + +1. āĻŽāĻĄā§‡āϞāϕ⧇ retrain āĻ•āϰāĻž āĻšā§Ÿā§‡ āϗ⧇āϞ⧇, āĻŸā§‡āĻ¸ā§āϟ āχāĻŽā§‡āϜ āĻĻāĻŋā§Ÿā§‡ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧇ āĻĻ⧇āĻ–āĻŋāĨ¤ + +--- + +## 🚀 āĻšā§āϝāĻžāϞ⧇āĻžā§āϜ + +āϝāĻĻāĻŋ āφāĻŽāϰāĻž āĻ•āϞāĻžāϰ āωāĻĒāϰ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŋāϤ āĻāĻ•āϟāĻŋ āĻŽāĻĄā§‡āϞāϕ⧇ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŸā§āϰāĻŦ⧇āϰāĻŋ āĻāϰ āĻ›āĻŦāĻŋ āĻ…āĻĨāĻŦāĻž āĻāĻ•āϜāύ āĻŦā§āϝāĻ•ā§āϤāĻŋ āϝāĻŋāύāĻŋ āĻ•āϞāĻžāϰ āĻ¸ā§āϝ⧁āϟ āĻŦāĻž āĻ•āĻ¸ā§āϟāĻŋāωāĻŽ āĻĒāϰ⧇ āĻ°ā§Ÿā§‡āϛ⧇āύ āĻ…āĻĨāĻŦāĻž āĻāĻ•āϟāĻŋ āĻšāϞ⧁āĻĻ āϰāϙ⧇āϰ āĻ•āĻžāĻ°ā§āϟ⧁āύ āϚāϰāĻŋāĻ¤ā§āϰ āϝ⧇āĻŽāύ āϏāĻŋāĻŽā§āĻĒāϏāύ āĻāϰ āĻ›āĻŦāĻŋ āĻĻāĻŋā§Ÿā§‡ āĻŸā§‡āĻ¸ā§āϟ āĻ•āϰāϤ⧇ āϝāĻžāχ, āϤāĻžāĻšāϞ⧇ āϕ⧋āύ āϧāϰāϪ⧇āϰ āĻĢāϞāĻžāĻĢāϞ āφāϏāϤ⧇ āĻĒāĻžāϰ⧇ āĻŦāϞ⧇ āĻŽāύ⧇ āĻšā§Ÿ ? + +āύāĻŋāĻļā§āϚāĻŋāϤ āύāĻž āĻšāϞ⧇, āφāĻŽāϰāĻž āĻŦāϰāĻ‚ āĻ•āĻžāϜāϟāĻŋ āφāϏāϞ⧇āχ āĻ•āϰ⧇ āĻĻ⧇āĻ–āĻŋ āϝ⧇ āϕ⧇āĻŽāύ āĻĢāϞāĻžāĻĢāϞ āφāϏ⧇āĨ¤ āĻ›āĻŦāĻŋ āφāĻŽāϰāĻž [Bing Image search](https://www.bing.com/images/trending) āĻĨ⧇āϕ⧇āχ āĻĒā§‡ā§Ÿā§‡ āϝāĻžāĻŦāĨ¤ + +## āϞ⧇āĻ•āϚāĻžāϰ-āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āϕ⧁āχāϜ + +[āϞ⧇āĻ•āϚāĻžāϰ-āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āϕ⧁āχāϜ](https://brave-island-0b7c7f50f.azurestaticapps.net/quiz/30) + +## āϰāĻŋāĻ­āĻŋāω āĻāĻŦāĻ‚ āĻ¸ā§āĻŦ-āĻ…āĻ§ā§āϝ⧟āύ + + +* āϝāĻ–āύ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰāϕ⧇ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĻāĻŋāĻšā§āĻ›āĻŋāϞāĻžāĻŽ, āϤāĻ–āύ āϏ⧇āĻ–āĻžāύ⧇ āφāĻŽāϰāĻž āĻšā§ŸāϤ⧋ *Precision*, *Recall*, and *AP* āĻāϰ āĻŽāĻžāύ āĻĻ⧇āϖ⧇āĻ›āĻŋ āϝāĻž āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻŽāĻĄā§‡āϞāϟāĻŋāϕ⧇ āϰ⧇āϟāĻŋāĻ‚ āĻĻā§‡ā§ŸāĨ¤ āĻāχ āĻŽāĻžāύāϗ⧁āϞāĻŋ āϕ⧀ āϤāĻž āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āφāϰ⧋ āϜāĻžāύāϤ⧇ āφāĻŽāϰāĻž [āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ āĻŽā§‚āĻ˛ā§āϝāĻžā§Ÿāύ āϏāĻ‚āĻ•ā§āϰāĻžāĻ¨ā§āϤ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āϟ](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#evaluate-the-classifier) āĻĒ⧜āϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ +* āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ⧇āϰ āĻŽāĻžāύ āφāϰ⧋ āωāĻ¨ā§āύāϤ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ [āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāĻļāύ āĻŽāĻžāύ⧋āĻ¨ā§āύ⧟āύ āϏāĻ‚āĻ•ā§āϰāĻžāĻ¨ā§āϤ āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āϟ](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-improving-your-classifier?WT.mc_id=academic-17441-jabenn) āĻĒ⧜āϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ + + +## āĻāϏāĻžāχāύāĻŽā§‡āĻ¨ā§āϟ + +[āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻĢāϞ āĻ“ āϏāĻŦāϜāĻŋāϰ āϜāĻ¨ā§āϝ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ āϤ⧈āϰ⧀](assignment.bn.md) diff --git a/4-manufacturing/lessons/1-train-fruit-detector/translations/assignment.bn.md b/4-manufacturing/lessons/1-train-fruit-detector/translations/assignment.bn.md new file mode 100644 index 00000000..b2810945 --- /dev/null +++ b/4-manufacturing/lessons/1-train-fruit-detector/translations/assignment.bn.md @@ -0,0 +1,16 @@ +# āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻĢāϞ āĻ“ āϏāĻŦāϜāĻŋāϰ āϜāĻ¨ā§āϝ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ āϤ⧈āϰ⧀ + +## āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻžāĻŦāϞ⧀ + +āĻāχ āĻĒāĻžāϠ⧇ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰāϕ⧇ āĻĒāĻžāĻ•āĻž āĻāĻŦāĻ‚ āĻ•āĻžāρāϚāĻž āĻĢāϞ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āĻ•āϰāϤ⧇ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĻāĻŋāϝāĻŧ⧇āĻ›āĻŋ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻāĻ• āϧāϰāύ⧇āϰ āĻĢāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ āĻĢāϞ⧇āϰ āϧāϰāĻŖ āĻāĻŦāĻ‚ āĻĒāĻžāĻ•āĻž āĻ“ āĻ•āĻžāρāϚāĻž āĻāϰ āĻŽāĻ§ā§āϝ⧇ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āĻ…āύ⧁āϏāĻžāϰ⧇ āϏāĻžāĻĢāĻ˛ā§āϝ⧇āϰ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻšāĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ āĻāĻ•āϟāĻŋ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰāϕ⧇ āĻāĻ•āĻžāϧāĻŋāĻ• āĻĢāϞ āϚāĻŋāύāϤ⧇ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĻ⧇āĻ“āϝāĻŧāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ + +āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āϝ⧇āϏāĻŦ āĻĢāϞ āĻĒāĻžāĻ•āϞ⧇ āϰāĻ™ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰ⧇ āϤāĻžāĻĻ⧇āϰ āϏāĻžāĻĨ⧇, āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰāϗ⧁āϞāĻŋ āϰāĻ™ āϏāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀ āϏ⧇āĻ¨ā§āϏāϰ⧇āϰ āĻšā§‡āϝāĻŧ⧇ āĻ•āĻŽ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ āĻšāϤ⧇ āĻĒāĻžāϰ⧇ āĻ•āĻžāϰāĻŖ āϤāĻžāϰāĻž āϏāĻžāϧāĻžāϰāĻŖāϤ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āϰāϙ⧇āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āϧ⧂āϏāϰ āĻ¸ā§āϕ⧇āϞ⧇āϰ āĻ›āĻŦāĻŋāϤ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤ + +āφāĻŽāĻžāĻĻ⧇āϰ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰāϕ⧇ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻĢāϞ⧇āϰ āϏāĻžāĻĨ⧇ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĻāĻŋā§Ÿā§‡ āĻĻ⧇āĻ–āĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇ āϝ⧇ āĻāϟāĻŋ āĻ•āϤāϟāĻž āĻ­āĻžāϞ āĻ•āĻžāϜ āĻ•āϰ⧇, āĻŦāĻŋāĻļ⧇āώ āĻ•āϰ⧇ āϝāĻ–āύ āĻĢāϞāϗ⧁āϞāĻŋ āĻĒā§āϰāĻžā§Ÿ āĻāĻ•āχ āϰāĻ•āĻŽ āĻĻ⧇āĻ–āϤ⧇ āĻšā§ŸāĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āφāĻĒ⧇āϞ āĻāĻŦāĻ‚ āϟāĻŽā§‡āĻŸā§‹āĨ¤ + +## āĻāϏāĻžāχāύāĻŽā§‡āĻ¨ā§āϟ āĻŽā§‚āĻ˛ā§āϝāĻžā§Ÿāύ āĻŽāĻžāύāĻĻāĻ¨ā§āĻĄ + +| āĻ•ā§āϰāĻžāχāĻŸā§‡āϰāĻŋ⧟āĻž | āĻĻ⧃āĻˇā§āϟāĻžāĻ¨ā§āϤāĻŽā§‚āϞāĻ• (āϏāĻ°ā§āĻŦā§‹āĻ¤ā§āϤāĻŽ) | āĻĒāĻ°ā§āϝāĻžāĻĒā§āϤ (āĻŽāĻžāĻāĻžāϰāĻŋ) | āωāĻ¨ā§āύāϤāĻŋ āĻĒā§āϰāϝāĻŧā§‹āϜāύ (āύāĻŋāĻŽā§āύāĻŽāĻžāύ) | +| --------- | ------------------ | -------------- | -------------------- | +|āĻāĻ•āĻžāϧāĻŋāĻ• āĻ–āĻžāĻĻā§āϝāĻĒāĻŖā§āϝ⧇āϰ āϜāĻ¨ā§āϝ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰāϕ⧇ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĒā§āϰāĻĻāĻžāύ | āĻāĻ•āĻžāϧāĻŋāĻ• āĻĢāϞ⧇āϰ āϜāĻ¨ā§āϝ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĻāĻŋāϤ⧇ āϏāĻ•ā§āώāĻŽ | āϕ⧇āĻŦāϞ āĻāĻ•āϧāϰāϪ⧇āϰ āĻĢāϞ⧇āϰ āϜāĻ¨ā§āϝ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰāϕ⧇ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĻāĻŋāϤ⧇ āϏāĻ•ā§āώāĻŽ| āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĻāĻŋāϤ⧇ āĻŦā§āϝāĻžāĻ°ā§āĻĨ | +| āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ⧇āϰ āϏāĻžāĻĢāĻ˛ā§āϝ āύāĻŋāϰ⧂āĻĒāĻŖ | āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻ–āĻžāĻĻā§āϝāĻĒāĻŖā§āϝ⧇āϰ āϜāĻ¨ā§āϝ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ⧇āϰ āϏāĻžāĻĢāĻ˛ā§āϝ āύāĻŋāϰ⧂āĻĒāĻŖ āĻ•āϰ⧇ āϤāĻž āϝāĻĨāĻžāϝāĻĨāĻ­āĻžāĻŦ⧇ āĻŦā§āϝāĻ–ā§āϝāĻž āĻ•āϰāϤ⧇ āϏāĻ•ā§āώāĻŽ | āĻĒāĻ°ā§āϝāĻŦ⧇āĻ•ā§āĻ•āĻ–āĻŖ āĻāĻŦāĻ‚ āĻŽāĻžāύ⧋āĻ¨ā§āύ⧟āύ⧇āϰ āϜāĻ¨ā§āϝ āϏ⧁āĻĒāĻžāϰāĻŋāĻļ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰāϤ⧇ āϏāĻ•ā§āώāĻŽ | āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ⧇āϰ āϏāĻžāĻĢāĻ˛ā§āϝ āύāĻŋāĻ°ā§āϧāĻžāϰāϪ⧇ āĻŦā§āϝāĻžāĻ°ā§āĻĨ | From 3fb1bbacde1364ca3f6a7740b83d05b421538e02 Mon Sep 17 00:00:00 2001 From: "Mohammad Iftekher (Iftu) Ebne Jalal" Date: Wed, 6 Oct 2021 21:38:53 +0600 Subject: [PATCH 18/35] [Bn Translation] Manufacture (#317) * Delete .dummy.md * Create README.bn.md Co-authored-by: Jim Bennett --- 4-manufacturing/translations/.dummy.md | 9 -------- 4-manufacturing/translations/README.bn.md | 26 +++++++++++++++++++++++ 2 files changed, 26 insertions(+), 9 deletions(-) delete mode 100644 4-manufacturing/translations/.dummy.md create mode 100644 4-manufacturing/translations/README.bn.md diff --git a/4-manufacturing/translations/.dummy.md b/4-manufacturing/translations/.dummy.md deleted file mode 100644 index 6e7db247..00000000 --- a/4-manufacturing/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/4-manufacturing/translations/README.bn.md b/4-manufacturing/translations/README.bn.md new file mode 100644 index 00000000..cab07855 --- /dev/null +++ b/4-manufacturing/translations/README.bn.md @@ -0,0 +1,26 @@ +# āĻ‰ā§ŽāĻĒāĻžāĻĻāύ āĻāĻŦāĻ‚ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāĻ•āϰāĻŖ - āĻ–āĻžāĻĻā§āϝ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϜāĻžāϤāĻ•āϰāϪ⧇ IoT āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ + +āĻāĻ•āĻŦāĻžāϰ āĻ–āĻžāĻĻā§āϝ āĻāĻ•āϟāĻŋ āϕ⧇āĻ¨ā§āĻĻā§āϰ⧀āϝāĻŧ āĻšāĻžāĻŦ āĻŦāĻž āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāĻ•āϰāĻŖ āĻ•āĻžāϰāĻ–āĻžāύāĻžāϝāĻŧ āĻĒ⧌āρāϛ⧇ āϗ⧇āϞ⧇, āĻāϟāĻŋ āϝ⧇ āϏāϰāĻžāϏāϰāĻŋ āϏ⧁āĻĒāĻžāϰ āĻŽāĻžāĻ°ā§āϕ⧇āĻŸā§‡ āĻĒāĻžāĻ āĻžāύ⧋ āĻšāϝāĻŧ āϤāĻž āĻ•āĻŋāĻ¨ā§āϤ⧁ āϏāĻŦāϏāĻŽā§Ÿ āϏāĻ¤ā§āϝ āύ⧟āĨ¤ āĻ…āύ⧇āĻ• āϏāĻŽāϝāĻŧ āĻ–āĻžāĻĻā§āϝ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϜāĻžāϤāĻ•āϰāϪ⧇āϰ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āϧāĻžāĻĒ⧇āϰ āĻŽāĻ§ā§āϝ āĻĻāĻŋāϝāĻŧ⧇ āϝāĻžāϝāĻŧ, āϝ⧇āĻŽāύ āϗ⧁āĻŖāĻŽāĻžāύ āĻ…āύ⧁āϏāĻžāϰ⧇ āĻŦāĻžāĻ›āĻžāχ āĻ•āϰāĻžāĨ¤ āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āϝāĻž āφāϗ⧇ āĻŽāĻžāύ⧁āώ āύāĻŋāĻœā§‡ āĻ•āϰāϤ⧋ - āĻāϟāĻŋ āĻļāĻ¸ā§āϝāĻ•ā§āώ⧇āϤ āĻĨ⧇āϕ⧇āχ āĻļ⧁āϰ⧁ āĻšāϤ⧋ āĻāĻŦāĻ‚ āĻŦāĻžāĻ›āĻžāχāĻ•āĻžāϰ⧀āϰāĻž āϕ⧇āĻŦāϞ āĻĒāĻžāĻ•āĻž āĻĢāϞ āφāϞāĻžāĻĻāĻž āĻ•āϰāϤ⧋, āϤāĻžāϰāĻĒāϰ āĻ•āĻžāϰāĻ–āĻžāύāĻžāϝāĻŧ āĻĢāϞ āĻāĻ•āϟāĻŋ āĻ•āύāϭ⧇āϝāĻŧāĻžāϰ āĻŦ⧇āĻ˛ā§āĻŸā§‡ āϚāĻĄāĻŧāϤ⧋ āĻāĻŦāĻ‚ āĻ•āĻ°ā§āĻŽāϚāĻžāϰ⧀āϰāĻž āĻŽā§āϝāĻžāύ⧁āϝāĻŧāĻžāϞāĻŋ āϝ⧇ āϕ⧋āύāĻ“ āĻ•ā§āώāϤ āĻŦāĻž āĻĒāϚāĻž āĻĢāϞ āϏāϰāĻŋāϝāĻŧ⧇ āĻĻ⧇āĻŦ⧇āĨ¤ āĻ¸ā§āϕ⧁āϞāĻœā§€āĻŦāύ⧇ āĻ—ā§āϰ⧀āĻˇā§āĻŽāĻ•āĻžāϞ⧀āύ āϚāĻžāĻ•āϰāĻŋ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻ¸ā§āĻŸā§āϰāĻŦ⧇āϰāĻŋ āĻŦāĻžāĻ›āĻžāχ āĻ•āϰāĻžāϰ āĻ•āĻžāϜ āĻ•āϰ⧇, āφāĻŽāĻŋ āϏāĻžāĻ•ā§āĻˇā§āϝ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰāĻŋ āϝ⧇ āĻāϟāĻŋ āϖ⧁āĻŦ āĻāĻ•āϟāĻž āĻŽāϜāĻžāĻĻāĻžāϰ āĻ•āĻžāϜ āύāϝāĻŧāĨ¤ + +āϤāĻ–āύ āĻ•āĻŋāϛ⧁ āφāϧ⧁āύāĻŋāĻ• āϏ⧇āϟāφāĻĒāϗ⧁āϞ⧋āϤ⧇ āĻŦāĻžāĻ›āĻžāχāϝāĻŧ⧇āϰ āϜāĻ¨ā§āϝ IoT- āĻāϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇āĨ¤ [Weco](https://wecotek.com) āĻāϰ āĻŽāϤ⧋ āĻĒā§āϰāĻĨāĻŽ āĻĻāĻŋāϕ⧇āϰ āĻ•āĻŋāϛ⧁ āϝāĻ¨ā§āĻ¤ā§āϰ āĻ›āĻŋāϞ⧋, āϝ⧇āϗ⧁āϞ⧋ āĻ‰ā§ŽāĻĒāĻžāĻĻāύ⧇āϰ āĻŽāĻžāύ āϏāύāĻžāĻ•ā§āϤ āĻ•āϰāϤ⧇ āĻ…āĻĒāϟāĻŋāĻ•ā§āϝāĻžāϞ āϏ⧇āĻ¨ā§āϏāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ āϏāĻŦ⧁āϜ āϟāĻŽā§‡āĻŸā§‹ āĻĒā§āϰāĻ¤ā§āϝāĻžāĻ–ā§āϝāĻžāύ āĻ•āϰ⧇āĨ¤ āĻāϗ⧁āϞāĻŋ āĻ–āĻžāĻŽāĻžāϰ⧇āχāĻŦāĻž āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāĻ•āϰāĻŖ āĻ•āĻžāϰāĻ–āĻžāύāĻžāϝāĻŧ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ + +āφāĻ°ā§āϟāĻŋāĻĢāĻŋāĻļāĻŋāϝāĻŧāĻžāϞ āχāĻ¨ā§āĻŸā§‡āϞāĻŋāĻœā§‡āĻ¨ā§āϏ (āĻāφāχ) āĻāĻŦāĻ‚ āĻŽā§‡āĻļāĻŋāύ āϞāĻžāĻ°ā§āύāĻŋāĻ‚ (āĻāĻŽāĻāϞ) -āĻāϰ āĻ…āĻ—ā§āϰāĻ—āϤāĻŋāϰ āĻĢāϞ⧇, āĻāχ āĻŽā§‡āĻļāĻŋāύāϗ⧁āϞāĻŋ āφāϰāĻ“ āωāĻ¨ā§āύāϤ āĻšāϝāĻŧ⧇ āωāĻ āϤ⧇ āĻĒāĻžāϰāϛ⧇, āĻāĻŽāĻāϞ āĻŽāĻĄā§‡āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĢāϞ āĻāĻŦāĻ‚ āĻŦāĻŋāĻĻ⧇āĻļā§€ āĻŦāĻ¸ā§āϤ⧁ āϝ⧇āĻŽāύ āĻĒāĻžāĻĨāϰ, āĻŽāϝāĻŧāϞāĻž āĻŦāĻž āĻĒā§‹āĻ•āĻžāĻŽāĻžāĻ•āĻĄāĻŧ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāϛ⧇āĨ¤ āĻāχ āĻŽāĻĄā§‡āϞāϗ⧁āϞāĻŋāϕ⧇ āĻĢāϞ⧇āϰ āϗ⧁āĻŖāĻžāϗ⧁āĻŖ āϏāύāĻžāĻ•ā§āϤ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĻ⧇āĻ“āϝāĻŧāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇; āϕ⧇āĻŦāϞāĻŽāĻžāĻ¤ā§āϰ āĻĢ⧇āĻŸā§‡ āϝāĻžāĻ“āϝāĻŧāĻž āĻĢāϞāχ āύāϝāĻŧ āĻŦāϰāĻ‚ āĻĢāϏāϞ⧇āϰ āϰ⧋āĻ— āĻŦāĻž āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āϏāĻŽāĻ¸ā§āϝāĻž āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āϏāύāĻžāĻ•ā§āϤāĻ•āϰāĻŖ āĻ•āϰāĻžāĻ• āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ + +> 🎓 *āĻāĻŽāĻāϞ āĻŽāĻĄā§‡āϞ* āĻļāĻŦā§āĻĻāϟāĻŋ āĻĄā§‡āϟāĻž āϏ⧇āĻŸā§‡āϰ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŋāϤ (trained) āĻŽā§‡āĻļāĻŋāύ āϞāĻžāĻ°ā§āύāĻŋāĻ‚ āϏāĻĢāϟāĻ“āϝāĻŧā§āϝāĻžāϰ⧇āϰ āφāωāϟāĻĒ⧁āϟāϕ⧇ āĻŦā§‹āĻāĻžāϝāĻŧāĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻāĻ•āϟāĻŋ āĻāĻŽāĻāϞ āĻŽāĻĄā§‡āϞāϕ⧇ āĻĒāĻžāĻ•āĻž āĻāĻŦāĻ‚ āĻ•āĻžāρāϚāĻž āϟāĻŽā§‡āĻŸā§‹āϰ āĻŽāĻ§ā§āϝ⧇ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āĻ•āϰāϤ⧇ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĻā§‡ā§ŸāĻž āϝāĻžā§Ÿ, āϤāĻžāϰāĻĒāϰ āϟāĻŽā§‡āĻŸā§‹ āĻĒāĻžāĻ•āĻž āĻ•āĻŋ āύāĻž āϤāĻž āĻĻ⧇āĻ–āϤ⧇ āύāϤ⧁āύ āĻ›āĻŦāĻŋāϤ⧇ āĻŽāĻĄā§‡āϞāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ + +āĻāχ 4āϟāĻŋ āĻĒāĻžāϠ⧇ āφāĻŽāϰāĻž āĻļāĻŋāĻ–āĻŦ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻĢāϞ⧇āϰ āϗ⧁āĻŖāĻŽāĻžāύ āϏāύāĻžāĻ•ā§āϤ āĻ•āϰāϤ⧇ āχāĻŽā§‡āϜ-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āĻāφāχ āĻŽāĻĄā§‡āϞāϗ⧁āϞāĻŋāϕ⧇ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĻāĻŋāϤ⧇ āĻšāϝāĻŧ, āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻāĻ•āϟāĻŋ āφāχāĻ“āϟāĻŋ āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨ⧇āϕ⧇ āĻāϗ⧁āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻšāϝāĻŧ āĻāĻŦāĻ‚ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻāϗ⧁āϞāĻŋ Edge āĻĄāĻŋāĻ­āĻžāχāϏ āĻšāĻŋāϏ⧇āĻŦ⧇ āϚāĻžāϞāĻžāϤ⧇ āĻšāϝāĻŧ - āϝ⧇āϟāĻŋ āĻ•ā§āϞāĻžāωāĻĄā§‡āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āĻāĻ•āϟāĻŋ āφāχāĻ“āϟāĻŋ āĻĄāĻŋāĻ­āĻžāχāϏ⧇ āĻ•āĻžāϜ āĻ•āϰāĻŦ⧇ āĨ¤ + +> 💁 āĻāχ āϞ⧇āϏāύāϗ⧁āϞ⧋āϤ⧇ āφāĻŽāϰāĻž āĻ•āĻŋāϛ⧁ āĻ•ā§āϞāĻžāωāĻĄ āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦā§‹āĨ¤ āĻāĻ–āĻžāύ⧇ āϏāĻŦāϗ⧁āϞ⧋ āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āύāĻž āĻšāϞ⧇āĻ“, āφāĻŽāĻžāĻĻ⧇āϰāϕ⧇ [āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ āĻ•ā§āϞ⧀āύ-āφāĻĒ](../translations/clean-up.bn.md) āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ + +## āĻĒāĻžāĻ ā§āϝāϏ⧂āϚāĻŋ + +1. [āĻ–āĻžāĻĻā§āϝāĻĒāĻŖā§āϝ⧇āϰ āϗ⧁āĻŖāĻŽāĻžāύ āϏāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀āϕ⧇ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĒā§āϰāĻĻāĻžāύ](./lessons/1-train-fruit-detector/translations/README.bn.md) +1. [āĻāĻ•āϟāĻŋ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨ⧇āϕ⧇ āĻĢāϞ⧇āϰ āϗ⧁āĻŖāĻŽāĻžāύ āĻĒāϰ⧀āĻ•ā§āώāĻžāĻ•āϰāĻŖ](./lessons/2-check-fruit-from-device/translations/README.bn.md) +1. [āĻĢāϞ⧇āϰ āĻŽāĻžāύ āϏāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽ āϕ⧇ Edge āĻ āϚāĻžāϞāĻžāύ⧋](./lessons/3-run-fruit-detector-edge/translations/README.bn.md) +1. [āϏ⧇āĻ¨ā§āϏāϰ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻĢāϞ⧇āϰ āĻŽāĻžāύ āϏāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀āϕ⧇ āϚāĻžāϞāύāĻž āĻ•āϰāĻž](./lessons/4-trigger-fruit-detector/translations/README.bn.md) + +## āĻ•ā§āϰ⧇āĻĄāĻŋāϟ + +â™Ĩī¸ āĻ­āĻžāϞ⧋āĻŦāĻžāϏāĻžāϰ āϏāĻžāĻĨ⧇ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻ…āĻ§ā§āϝāĻžā§Ÿ āϞāĻŋāϖ⧇āϛ⧇āύ [Jen Looper](https://github.com/jlooper) āĻāĻŦāĻ‚ [Jim Bennett](https://GitHub.com/JimBobBennett) + + From d636a1f3328f6ea04fe85216c5469fdbddded729 Mon Sep 17 00:00:00 2001 From: Abu Mushonnip Date: Thu, 7 Oct 2021 07:05:35 +0700 Subject: [PATCH 19/35] Fix ID translation (#318) * remove translated sentence * [id translation] fix typo --- .../lessons/1-introduction-to-iot/translations/README.id.md | 2 +- 1-getting-started/translations/README.id.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/1-getting-started/lessons/1-introduction-to-iot/translations/README.id.md b/1-getting-started/lessons/1-introduction-to-iot/translations/README.id.md index 5fb3dcc2..aec9c927 100644 --- a/1-getting-started/lessons/1-introduction-to-iot/translations/README.id.md +++ b/1-getting-started/lessons/1-introduction-to-iot/translations/README.id.md @@ -10,7 +10,7 @@ ## Pengantar -Pelajaran ini mencakup beberapa topok pengantar mengenai Internet of Things, dan membuat Anda dapat mempersiapkan dan mengatur perangkat keras Anda. +Pelajaran ini mencakup beberapa topik pengantar mengenai Internet of Things, dan membuat Anda dapat mempersiapkan dan mengatur perangkat keras Anda. Dalam pelajaran ini kita akan membahas: diff --git a/1-getting-started/translations/README.id.md b/1-getting-started/translations/README.id.md index 438bdaad..cd827385 100644 --- a/1-getting-started/translations/README.id.md +++ b/1-getting-started/translations/README.id.md @@ -1,6 +1,6 @@ # Memulai dengan IoT -Pada bagian ini, Anda akan diperkenalkan dengan Internet of Things, dan mempelajari konsep dasar termasuk membangung proyek IoT 'Hello World' pertama Anda yang terhubung ke *cloud*. Proyek ini merupakan lampu malam yang akan menyala saat tingkat pencahayaan diukur dengan penurunan sensor. This project is a nightlight that lights up as light levels measured by a sensor drop. +Pada bagian ini, Anda akan diperkenalkan dengan Internet of Things, dan mempelajari konsep dasar termasuk membangung proyek IoT 'Hello World' pertama Anda yang terhubung ke *cloud*. Proyek ini merupakan lampu malam yang akan menyala saat tingkat pencahayaan diukur dengan penurunan sensor. ![Lampu LED terhubung ke WIO menyala dan mati saat tingkat pencahayaan berubah](../../images/wio-running-assignment-1-1.gif) From 2f8d1ea71dbd1f7b62a00c5c6e725862aacc99a2 Mon Sep 17 00:00:00 2001 From: Abu Mushonnip Date: Sat, 9 Oct 2021 01:07:22 +0700 Subject: [PATCH 20/35] Add [ID] translation (#319) * remove translated sentence * [id translation] fix typo * add [id] translation for assignment * add README.id.md --- lesson-template/translations/README.id.md | 51 +++++++++++++++++++ lesson-template/translations/assignment.id.md | 9 ++++ 2 files changed, 60 insertions(+) create mode 100644 lesson-template/translations/README.id.md create mode 100644 lesson-template/translations/assignment.id.md diff --git a/lesson-template/translations/README.id.md b/lesson-template/translations/README.id.md new file mode 100644 index 00000000..5c77535b --- /dev/null +++ b/lesson-template/translations/README.id.md @@ -0,0 +1,51 @@ +# [Topik Pelajaran] + +![Sematkan video di sini](video-url) + +## [Kuis Pra-Kuliah](quiz-url) + +[Jelaskan apa yang akan kita pelajari] + +### Pengenalan + +Jelaskan apa yang akan dibahas + +> Catatan + +### Prasyarat + +Langkah-langkah apa yang seharusnya sudah dibahas sebelum pelajaran ini? + +### Persiapan + +Langkah-langkah persiapan untuk memulai pelajaran ini + +--- + +[Melangkah melalui konten dalam blok] + +## [Topik 1] + +### Tugas: + +Bekerja sama untuk meningkatkan *codebase* anda secara progresif untuk membangun proyek dengan kode bersama: + +```html +blok kode +``` + +✅ Cek Pengetahuan - gunakan momen ini untuk memperluas pengetahuan siswa dengan membuka pertanyaan + +## [Topik 2] + +## [Topik 3] + +🚀 Tantangan: Tambahkan sebuah tantangan kepada siswa untuk dikerjakan secara kolaboratif di kelas untuk menyempurnakan project + +Opsional: tambahkan tangkapan layar UI dari pelajaran yang telah selesai jika sesuai + +## [Kuis Setelah Kuliah](quiz-url) + +## Ulasan & Belajar Mandiri + +**Keterlambatan Tugas [MM/YY]**: [Nama Tugas](assignment.md) diff --git a/lesson-template/translations/assignment.id.md b/lesson-template/translations/assignment.id.md new file mode 100644 index 00000000..e47776fa --- /dev/null +++ b/lesson-template/translations/assignment.id.md @@ -0,0 +1,9 @@ +# [Nama Tugas] + +## Instruksi + +## Rubrik + +| Kriteria | Teladan | Memadai | Perlu Perbaikan | +| -------- | --------- | -------- | ----------------- | +| | | | | From c3d044a579a0d43afda7e9d746a701005db472c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ali=20Hakim=20Ta=C5=9Fk=C4=B1ran?= <52009742+alihakimtaskiran@users.noreply.github.com> Date: Sat, 9 Oct 2021 21:42:15 +0300 Subject: [PATCH 21/35] Correction of spelling mistake.[TR translation] (#321) * Update README.tr.md * Update README.tr.md --- translations/README.tr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/README.tr.md b/translations/README.tr.md index ee25bbfd..54bef696 100644 --- a/translations/README.tr.md +++ b/translations/README.tr.md @@ -121,7 +121,7 @@ Bir çeviriyle katkÄąda bulunmak ister miydiniz? LÃŧtfen [çeviri rehberimizi](. ## Diğer Dersler -TakÄąmÄąmÄąz başka derler de yapÄąyor: +TakÄąmÄąmÄąz başka dersler de yapÄąyor: - [Yeni başlayanlar için web geliştiriciliği](https://aka.ms/webdev-beginners) - [Yeni başlayanlar için makine Ãļğrenimi](https://aka.ms/ml-beginners) From 69087654bfb525748417c186129790f41c634f1c Mon Sep 17 00:00:00 2001 From: Jim Bennett Date: Mon, 11 Oct 2021 12:43:50 -0700 Subject: [PATCH 22/35] Fix typos (#324) * Update README.md * Spelling fixes * Update hardware.md * Adding IoT for beginners episode * Adding intro video * Fixing formatting of read more and self study sections. * Adding instructions for installing the ReSpeaker * Adding auth to language understanding * Adding Wio terminal timer setting * Update config.h * Fixing links and images * Increasing version numbers for SD card fix * Adding SD card requirement * speech and translations * Adding more on translations * All Wio Terminal now working except playing audio * Adding more details on virtual environments. * Fixing tracking links * Update app.py * Changing casing for case sensitive OSes * Fix for #322 * Fix for #323 --- 4-manufacturing/lessons/2-check-fruit-from-device/README.md | 2 +- 4-manufacturing/lessons/3-run-fruit-detector-edge/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/4-manufacturing/lessons/2-check-fruit-from-device/README.md b/4-manufacturing/lessons/2-check-fruit-from-device/README.md index e8d5ca06..2eadee45 100644 --- a/4-manufacturing/lessons/2-check-fruit-from-device/README.md +++ b/4-manufacturing/lessons/2-check-fruit-from-device/README.md @@ -24,7 +24,7 @@ In this lesson we'll cover: ## Camera sensors -Camera sensors, as the name suggests, are cameras that you can connect to your IoT device. They can take still images, or capture streaming video. Some will return raw image data, others will compress the image data into an image file such as a JPEG or PNG. Usually the cameras that work with IoT devices are much smaller and lower resolution that what you might be used to, but you can get high resolution cameras that will rival top end phones. You can get all manner of interchangeable lenses, multiple camera setups, infra-red thermal cameras, or UV cameras. +Camera sensors, as the name suggests, are cameras that you can connect to your IoT device. They can take still images, or capture streaming video. Some will return raw image data, others will compress the image data into an image file such as a JPEG or PNG. Usually the cameras that work with IoT devices are much smaller and lower resolution than what you might be used to, but you can get high resolution cameras that will rival top end phones. You can get all manner of interchangeable lenses, multiple camera setups, infra-red thermal cameras, or UV cameras. ![The light from a scene passes through a lens and is focused on a CMOS sensor](../../../images/cmos-sensor.png) diff --git a/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md b/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md index 0e1ede34..f75452c3 100644 --- a/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md +++ b/4-manufacturing/lessons/3-run-fruit-detector-edge/README.md @@ -71,7 +71,7 @@ There are downsides to edge computing, where the cloud may be a preferred option 1. **Scale and flexibility** - cloud computing can adjust to network and data needs in real-time by adding or reducing servers and other resources. To add more edge computers requires manually adding more devices. -1. **Reliability and resiliency** - cloud computing provides multiple servers often in multiple locations for redundancy and disaster recovery. To have the same level of redundancy on the edge requires large investments and a lor of configuration work. +1. **Reliability and resiliency** - cloud computing provides multiple servers often in multiple locations for redundancy and disaster recovery. To have the same level of redundancy on the edge requires large investments and a lot of configuration work. 1. **Maintenance** - cloud service providers provide system maintenance and updates. From ed62baba50f272baaf28d811e5102b5054e458b5 Mon Sep 17 00:00:00 2001 From: emilyf11 <89915168+emilyf11@users.noreply.github.com> Date: Tue, 12 Oct 2021 10:30:02 -0500 Subject: [PATCH 23/35] Lesson 18 that to than - in Introduction (#325) --- 4-manufacturing/lessons/4-trigger-fruit-detector/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/4-manufacturing/lessons/4-trigger-fruit-detector/README.md b/4-manufacturing/lessons/4-trigger-fruit-detector/README.md index addc74db..51b0c3e8 100644 --- a/4-manufacturing/lessons/4-trigger-fruit-detector/README.md +++ b/4-manufacturing/lessons/4-trigger-fruit-detector/README.md @@ -10,7 +10,7 @@ ## Introduction -An IoT application is not just a single device capturing data and sending it to the cloud, it is more often that not multiple devices all working together to capture data from the physical world using sensors, make decisions based off that data, and interacting back with the physical world via actuators or visualizations. +An IoT application is not just a single device capturing data and sending it to the cloud, it is more often than not multiple devices all working together to capture data from the physical world using sensors, make decisions based off that data, and interacting back with the physical world via actuators or visualizations. In this lesson you will learn more about architecting complex IoT applications, incorporating multiple sensors, multiple cloud services to analyze and store data, and showing a response via an actuator. You will learn how to architect a fruit quality control system prototype, including about using proximity sensors to trigger the IoT application, and what the architecture of this prototype would be. From 7419dfdd22a8264d526152ce6797755d13c7e216 Mon Sep 17 00:00:00 2001 From: Wu-Haitao <59434361+Wu-Haitao@users.noreply.github.com> Date: Thu, 14 Oct 2021 23:39:23 +0800 Subject: [PATCH 24/35] [zh-cn Translation] Add Translation for 2-farm (#320) * Create README.zh-cn.md * Create README.zh-cn.md for 2-farm lesson 1 * Update lesson 1 README.zh-cn.md Co-authored-by: Jim Bennett --- .../translations/README.zh-cn.md | 271 ++++++++++++++++++ 2-farm/translations/README.zh-cn.md | 20 ++ 2 files changed, 291 insertions(+) create mode 100644 2-farm/lessons/1-predict-plant-growth/translations/README.zh-cn.md create mode 100644 2-farm/translations/README.zh-cn.md diff --git a/2-farm/lessons/1-predict-plant-growth/translations/README.zh-cn.md b/2-farm/lessons/1-predict-plant-growth/translations/README.zh-cn.md new file mode 100644 index 00000000..12739f20 --- /dev/null +++ b/2-farm/lessons/1-predict-plant-growth/translations/README.zh-cn.md @@ -0,0 +1,271 @@ +# åē”į”¨į‰Šč”įŊ‘éĸ„æĩ‹æ¤į‰Šį”Ÿé•ŋ + +![čŋ™ä¸Ēč¯žį¨‹æĻ‚čŋ°įš„æļ‚é¸ĻįŦ”čްīŧˆsketchnoteīŧ‰](../../../../sketchnotes/lesson-5.jpg) + +> Sketchnote by [Nitya Narasimhan](https://github.com/nitya). åĻ‚æžœäŊ æƒŗįœ‹æ¯”čžƒå¤§įš„å›žį‰‡īŧŒč¯ˇį‚šå‡ģ厃。 + +## č¯žå‰æĩ‹énj + +[č¯žå‰æĩ‹énj](https://brave-island-0b7c7f50f.azurestaticapps.net/quiz/9) + +## äģ‹įģ + +æ¤į‰Šéœ€čρ䏀äē›ä¸œčĨŋ才čƒŊį”Ÿé•ŋ - æ°´īŧŒä猿°§åŒ–įĸŗīŧŒå…ģ分īŧŒå…‰į…§īŧŒčŋ˜æœ‰įƒ­ã€‚在čŋ™čŠ‚č¯žį¨‹ä¸­īŧŒäŊ å°†äŧšå­Ļäš æ€Žæ ˇé€ščŋ‡æĩ‹é‡įŠē气渊åēĻæĨčŽĄįŽ—æ¤į‰Šįš„į”Ÿé•ŋå’Œæˆį†ŸįŽ‡ã€‚ + +čŋ™čŠ‚č¯žį¨‹å°†åŒ…åĢīŧš + +* [数字农业](#数字农业) +* [ä¸ēäģ€äšˆæ¸ŠåēĻåœ¨č€•äŊœä¸­åžˆé‡čρīŧŸ](#ä¸ēäģ€äšˆæ¸ŠåēĻåœ¨č€•äŊœä¸­åžˆé‡čρīŧŸ) +* [æĩ‹é‡įޝåĸƒæ¸ŠåēĻ](#æĩ‹é‡įޝåĸƒæ¸ŠåēĻ) +* [į”Ÿé•ŋåēĻæ—Ĩ (GDD)](#į”Ÿé•ŋåēĻæ—Ĩ) +* [į”¨æ¸ŠåēĻäŧ æ„Ÿå™¨æ•°æŽčŽĄįŽ— GDD](#į”¨æ¸ŠåēĻäŧ æ„Ÿå™¨æ•°æŽčŽĄįŽ— GDD) + +## 数字农业 + +通čŋ‡äŊŋᔍåˇĨå…ˇæĨæ”ļé›†ã€å­˜å‚¨å’Œåˆ†æžč€•äŊœæ•°æŽīŧŒæ•°å­—农业 (Digital Agriculture) æ­Ŗåœ¨æ”šå˜æˆ‘äģŦįš„č€•äŊœæ–šåŧã€‚我äģŦį›Žå‰æ­Ŗå¤„äēŽčĸĢä¸–į•ŒįģæĩŽčŽē坛描čŋ°ä¸ē“įŦŦ四æŦĄåˇĨ业革å‘Ŋâ€įš„æ—ļ期īŧŒč€Œæ•°å­—å†œä¸šįš„å´›čĩˇäšŸčĸĢį§°ä¸ē“įŦŦ四æŦĄå†œä¸šéŠå‘Ŋ”īŧŒæˆ–“农业4.0”。 + +> 🎓 æ•°å­—å†œä¸šä¸€č¯äšŸåŒ…æ‹Ŧ整ä¸Ē“农业äģˇå€ŧ链”īŧŒåŗäģŽå†œåœēåˆ°é¤æĄŒįš„æ•´ä¸Ēčŋ‡į¨‹ã€‚厃包æ‹Ŧåœ¨éŖŸå“čŋčž“和加åˇĨčŋ‡į¨‹ä¸­čˇŸč¸Ē农äē§å“č´¨é‡īŧŒäģ“åē“å’Œį”ĩå­å•†åŠĄįŗģįģŸīŧŒį”šč‡ŗæ‹–拉æœē᧟čĩåē”ᔍፋåēīŧ + +čŋ™ä盿”šå˜äŊŋ垗农民äģŦčƒŊ够提é̘äē§é‡īŧŒå‡å°‘č‚Ĩæ–™å’Œå†œč¯įš„äŊŋᔍīŧŒåšļæ›´æœ‰æ•ˆįŽ‡åœ°æĩ‡æ°´ã€‚å°ŊįŽĄä¸ģčĻåœ¨å¯ŒčŖ•å›ŊåŽļ中äŊŋᔍīŧŒäŧ æ„Ÿå™¨å’Œå…ļåŽƒčŽžå¤‡įš„ä쎿 ŧ在æ…ĸæ…ĸ降äŊŽīŧŒäŊŋ垗厃äģŦåœ¨å‘åą•ä¸­å›ŊåŽļ䚟更厚易čĸĢäŊŋᔍäē†ã€‚ + +数字农业所äŋƒæˆįš„æŠ€æœ¯åŒ…æ‹Ŧīŧš + +* 渊åēĻæĩ‹é‡â€”—æĩ‹é‡æ¸ŠåēĻäŊŋ农民čƒŊ够éĸ„æĩ‹æ¤į‰Šįš„į”Ÿé•ŋå’Œæˆį†ŸåēĻ。 +* č‡Ē动æĩ‡æ°´â€”—æĩ‹é‡åœŸåŖ¤æšŋåēĻīŧŒåœ¨åœŸåŖ¤čŋ‡äēŽåš˛į‡Ĩæ—ļåŧ€å¯įŒæē‰įŗģįģŸīŧŒč€Œä¸æ˜¯åޚæ—ļæĩ‡æ°´ã€‚åޚæ—ļæĩ‡æ°´å¯čƒŊå¯ŧ致äŊœį‰Šåœ¨éĢ˜æ¸Šåš˛æ—ąæ—ļæĩ‡æ°´ä¸čļŗīŧŒæˆ–在下雨æ—ļæĩ‡æ°´čŋ‡å¤šã€‚通čŋ‡åĒæœ‰åœ¨åœŸåŖ¤éœ€čρæ—ļ才æĩ‡æ°´įš„æ–šåŧīŧŒå†œæ°‘可äģĨäŧ˜åŒ–æ°´čĩ„æēįš„äŊŋį”¨ã€‚ +* č™ĢåŽŗæŽ§åˆļ——农民可äģĨäŊŋᔍč‡Ē动æœē器äē翈–æ— äē翜ēä¸Šįš„æ‘„åƒå¤´æĨæŖ€æŸĨč™ĢåŽŗīŧŒį„ļ后åĒ在需čĻįš„åœ°æ–šæ–Ŋį”¨å†œč¯ã€‚čŋ™æ ˇä¸äģ…čƒŊå‡å°‘å†œč¯įš„äŊŋį”¨é‡īŧŒäšŸčƒŊ减少æĩå…ĨåŊ“地水æēä¸­įš„å†œč¯é‡ã€‚ + +✅ 做äē›į ”įŠļ。čŋ˜æœ‰å“Ēä盿Š€æœ¯æ˜¯į”¨æĨ提éĢ˜å†œä¸šäē§é‡įš„īŧŸ + +> 🎓 â€œį˛žå‡†å†œä¸šâ€ä¸€č¯čĸĢᔍæĨåŽšäš‰åœ¨æŸå—į”°åœ°īŧŒį”šč‡ŗåœ¨æŸå—į”°åœ°įš„éƒ¨åˆ†åŒēåŸŸįš„å°ēåēĻ上īŧŒå¯šäŊœį‰Ščŋ›čĄŒįš„č§‚å¯Ÿã€æĩ‹é‡å’Œååē”。čŋ™åŒ…æ‹Ŧæĩ‹é‡æ°´ã€å…ģ分和č™ĢåŽŗį¨‹åēĻīŧŒåšļäŊœå‡ēå‡†įĄŽįš„ååē”īŧŒäž‹åĻ‚åĒå¯šä¸€å°éƒ¨åˆ†į”°åœ°čŋ›čĄŒæĩ‡įŒã€‚ +> + +## ä¸ēäģ€äšˆæ¸ŠåēĻåœ¨č€•äŊœä¸­åžˆé‡čρīŧŸ + +在å­Ļäš æ¤į‰Šæ—ļīŧŒå¤§å¤šæ•°å­Ļį”ŸéƒŊäē†č§Ŗä熿°´ã€å…‰ã€ä猿°§åŒ–įĸŗ (CO2) 和å…ģåˆ†įš„åŋ…čĻæ€§ã€‚å…ļåŽžæ¤į‰Šįš„į”Ÿé•ŋ也需čĻæ¸Šæš–â€”â€”čŋ™å°ąæ˜¯ä¸ēäģ€äšˆæ¤į‰Šåœ¨æ˜Ĩå¤Šéšį€æ¸ŠåēĻįš„å‡éĢ˜č€Œåŧ€čŠąīŧŒä¸ēäģ€äšˆé›Ēé’ŸčŠąæˆ–æ°´äģ™čŠąäŧšå› ä¸ēįŸ­æš‚įš„æš–æĩč€Œæå‰å‘čŠŊīŧŒäģĨ及ä¸ēäģ€äšˆæš–æˆŋ和渊厤čƒŊé‡Œįš„æ¤į‰Šį”Ÿé•ŋ垗垈åĨŊ。 + +> 🎓 暖æˆŋ和渊厤æŒēįąģäŧŧįš„īŧŒäŊ†åރäģŦ有一ä¸Ē重čρåŒēåˆĢ。暖æˆŋ是äēēåˇĨåŠ įƒ­įš„īŧŒå†œæ°‘čƒŊå¤Ÿæ›´å‡†įĄŽåœ°æŽ§åˆļ渊åēĻīŧŒč€Œæ¸ŠåŽ¤äžé å¤Ēé˜ŗå–æš–īŧŒé€šå¸¸å”¯ä¸€įš„æŽ§åˆļæ˜¯åˆŠį”¨įĒ—æˆˇæˆ–å…ļäģ–åŧ€åŖæĨčŽŠįƒ­é‡æ•Ŗå‘å‡ēåŽģ。 + +æ¤į‰Šæœ‰åŸēįĄ€æ¸ŠåēĻæˆ–č€…č¯´æœ€äŊŽæ¸ŠåēĻ、最äŊŗæ¸ŠåēĻ和最éĢ˜æ¸ŠåēĻīŧŒæ‰€æœ‰čŋ™äē›éƒŊåŸēäēŽæ—Ĩåšŗå‡æ¸ŠåēĻ。 + +* åŸēįĄ€æ¸ŠåēĻ (Base temperature) - čŋ™æ˜¯æ¤į‰Šį”Ÿé•ŋæ‰€éœ€įš„æœ€äŊŽæ—Ĩåšŗå‡æ¸ŠåēĻ。 +* 最äŊŗæ¸ŠåēĻ (Optimum temperature) - čŋ™æ˜¯čƒŊ够äŊŋæ¤į‰ŠčŽˇåž—æœ€å¤šį”Ÿé•ŋįš„æœ€äŊŗæ—Ĩåšŗå‡æ¸ŠåēĻ。 +* 最éĢ˜æ¸ŠåēĻ (Maximum temperature) - čŋ™æ˜¯æ¤į‰Šå¯äģĨæ‰ŋå—įš„æœ€éĢ˜æ¸ŠåēĻ。čļ…čŋ‡čŋ™ä¸Ē渊åēĻīŧŒæ¤į‰Šå°ąäŧšåœæ­ĸį”Ÿé•ŋīŧŒäģĨčŠ‚įœæ°´åˆ†å’ŒäŋæŒå­˜æ´ģ。 + +> 💁 čŋ™äē›éƒŊæ˜¯åšŗå‡æ¸ŠåēĻīŧŒæ˜¯æ¯æ—Ĩ和每夜渊åēĻįš„åšŗå‡å€ŧã€‚æ¤į‰ŠäšŸéœ€čρæ˜ŧå¤œä¸åŒįš„æ¸ŠåēĻäģĨ帎劊厃äģŦ更有效地čŋ›čĄŒå…‰åˆäŊœį”¨åšļåœ¨å¤œé—´čŠ‚įœčƒŊ量。 + +æ¯į§æ¤į‰ŠéƒŊæœ‰ä¸åŒįš„åŸēįĄ€ã€æœ€äŊŗã€æœ€éĢ˜æ¸ŠåēĻå€ŧ。čŋ™å°ąæ˜¯ä¸ēäģ€äšˆä¸€ä盿¤į‰ŠčƒŊå¤Ÿåœ¨į‚Žįƒ­įš„åœ°åŒēčŒåŖŽæˆé•ŋīŧŒč€ŒåĻ一äē›åˆ™æ›´é€‚åē”å¯’å†ˇåœ°åŒē。 + +✅ 做äē›į ”įŠļ。寚äēŽé‚Ŗäē›čŠąå›­ã€å­Ļæ Ąæˆ–åŊ“地å…Ŧå›­é‡Œįš„æ¤į‰ŠīŧŒäŊ æ˜¯åĻ可äģĨ扞到å…ļåŸēįĄ€æ¸ŠåēĻ。 + +![æœŦå›žåą•į¤ēäē†į”Ÿé•ŋįŽ‡éšį€æ¸ŠåēĻįš„å‡éĢ˜č€Œåĸžé•ŋīŧŒį„ļ后在渊åēĻčŋ‡é̘æ—ļä¸‹čˇŒįš„čŋ‡į¨‹](../../../../images/plant-growth-temp-graph.png) + +上回昞į¤ēäē†ä¸€ä¸Ēį”Ÿé•ŋįŽ‡ä¸Žæ¸ŠåēĻå…ŗįŗģå›žįš„äž‹å­ã€‚åœ¨æœ€äŊŽæ¸ŠåēĻäš‹å‰æ¤į‰Šä¸äŧšį”Ÿé•ŋã€‚éšį€æ¸ŠåēĻ升éĢ˜į”Ÿé•ŋįŽ‡åĸžåŠ īŧŒåšļ在最äŊŗæ¸ŠåēĻå¤„čžžåˆ°čŋ™ä¸Ēåŗ°å€ŧīŧŒį„ļ后下降。在最éĢ˜æ¸ŠåēĻ处īŧŒį”Ÿé•ŋ停æ­ĸ。 + +č¯Ĩå›žįš„åŊĸįŠļå› æ¤į‰Šį§įąģįš„ä¸åŒč€Œä¸åŒã€‚æœ‰ä盿¤į‰Šåœ¨æœ€äŊŗæ¸ŠåēĻäš‹åŽæœ‰čžƒæ˜Žæ˜žįš„ä¸‹é™īŧŒæœ‰ä盿¤į‰ŠäģŽæœ€äŊŽæ¸ŠåēĻ到最äŊŗæ¸ŠåēĻįš„åĸžé•ŋ更加įŧ“æ…ĸ。 + +> 💁 寚äēŽå†œæ°‘æĨ蝴īŧŒčĻæƒŗčŽŠäŊœį‰Šé•ŋåž—æ›´åĨŊīŧŒäģ–äģŦ需čρįŸĨ道čŋ™ä¸‰ä¸Ē渊åēĻå€ŧīŧŒåšļäē†č§Ŗäģ–äģŦæ‰€į§æ¤įš„äŊœį‰Šįš„回åŊĸåŊĸįŠļ。 + +åĻ‚æžœå†œæ°‘čƒŊ够控åˆļ渊åēĻīŧŒæ¯”åĻ‚åœ¨å•†ä¸šæš–æˆŋ中īŧŒé‚Ŗäšˆäģ–äģŦ可äģĨä¸ēå…ļäŊœį‰Ščŋ›čĄŒæ¸ŠåēĻįš„äŧ˜åŒ–。䞋åĻ‚īŧŒä¸€ä¸Ēį§æ¤čĨŋįēĸæŸŋįš„å•†ä¸šæš–æˆŋ可äģĨ在į™Ŋ夊将渊åēĻ莞įŊŽä¸ē25°Cč€Œåœ¨æ™šä¸ŠčŽžįŊŽä¸ē20°CīŧŒčŋ™æ ˇčƒŊå¤ŸčŽˇåž—æœ€åŋĢįš„į”Ÿé•ŋ。 + +> 🍅 将渊控与äēēåˇĨį…§æ˜Žã€č‚Ĩ料和 CO2 æ°´åšŗæŽ§åˆļᛏįģ“合čƒŊ够čƒŊå¤ŸåŽžįŽ°å…¨åš´įš„į§æ¤å’Œæ”ļčŽˇã€‚ + +## æĩ‹é‡įޝåĸƒæ¸ŠåēĻ + +渊åēĻäŧ æ„Ÿå™¨å¯ä¸Žį‰Šč”įŊ‘čŽžå¤‡ä¸€čĩˇäŊŋᔍæĨæĩ‹é‡įޝåĸƒæ¸ŠåēĻ。 + +### äģģåŠĄ - æĩ‹é‡æ¸ŠåēĻ + +通čŋ‡äģĨ下čŋ™äē›į›¸å…ŗæŒ‡å—īŧŒåē”ᔍäŊ įš„į‰Šč”įŊ‘čŽžå¤‡į›‘æĩ‹æ¸ŠåēĻīŧš + +* [Arduino - Wio Terminal](../wio-terminal-temp.md) +* [单æŋæœē - Raspberry Pi](../pi-temp.md) +* [单æŋæœē - č™šæ‹ŸčŽžå¤‡](../virtual-device-temp.md) + +## į”Ÿé•ŋåēĻæ—Ĩ + +į”Ÿé•ŋåēĻæ—Ĩ (Growing degree days)īŧŒäšŸį§°ä¸ēį”Ÿé•ŋåēĻ单äŊ (growing degree units)īŧŒæ˜¯æ šæŽæ¸ŠåēĻčĄĄé‡æ¤į‰Šį”Ÿé•ŋįš„ä¸€į§æ–šåŧã€‚å‡čŽžä¸€æ Ēæ¤į‰Šå…ˇæœ‰čļŗå¤Ÿįš„æ°´åˆ†ã€å…ģ分和ä猿°§åŒ–įĸŗīŧŒæ¸ŠåēĻ将äŧšå†ŗåŽšæ¤į‰Šįš„į”Ÿé•ŋįŽ‡ã€‚ + +į”Ÿé•ŋåēĻæ—ĨīŧŒæˆ–į§° GDDīŧŒæ˜¯äģĨ每æ—Ĩ中é̘äēŽæ¤į‰ŠåŸēįĄ€æ¸ŠåēĻįš„įš„åšŗå‡æ¸ŠåēĻīŧˆæ‘„氏åēĻīŧ‰æĨčŽĄįŽ—įš„ã€‚æ¯ä¸Ēæ¤į‰Šéœ€čĻä¸€åŽšæ•°é‡įš„į”Ÿé•ŋåēĻæ—ĨæĨį”Ÿé•ŋ、åŧ€čŠąã€æˆį†Ÿã€‚æ¯å¤Šįš„ GDD čļŠå¤šīŧŒæ¤į‰Šįš„į”Ÿé•ŋå°ąčļŠåŋĢ。 + +> đŸ‡ē🇸 For Americans, growing degree days can also be calculated using Fahrenheit. 5 GDDC (growing degree days in Celsius) is the equivalent of 9 GDDF (growing degree days in Fahrenheit). <= 华氏åēĻčŽĄįŽ— + +GDD įš„åŽŒæ•´å…Ŧåŧæœ‰į‚šå¤æ‚īŧŒå¤§å¤šæ˜¯æƒ…å†ĩ下äŊŋᔍ䏀ä¸ĒįŽ€åŒ–æ–šį¨‹å°ąčƒŊ垗到一ä¸Ē垈åĨŊįš„čŋ‘äŧŧå€ŧīŧš + +![GDD = T max + T min 除äģĨ 2īŧŒå†å‡åŽģ T base](../../../../images/gdd-calculation.png) + +* **GDD** - į”Ÿé•ŋåēĻæ—Ĩįš„æ•°é‡ +* **Tmax** - 每æ—Ĩ最éĢ˜æ¸ŠåēĻīŧŒå•äŊæ˜¯æ‘„氏åēĻ +* **Tmin** - 每æ—Ĩ最äŊŽæ¸ŠåēĻīŧŒå•äŊæ˜¯æ‘„氏åēĻ +* **Tbase** - æ¤į‰Šįš„åŸēįĄ€æ¸ŠåēĻīŧŒå•äŊæ˜¯æ‘„氏åēĻ。 + +> 💁 Tmax é̘äēŽ 30°C æˆ–č€… Tmin äŊŽäēŽ Tbase įš„æƒ…å†ĩ下有所不同īŧŒäŊ†æ˜¯æˆ‘äģŦ暂且åŋŊį•Ĩ。 + +### 䞋子 - įŽ‰įąŗ đŸŒŊ + +æ šæŽå“į§įš„ä¸åŒīŧŒįŽ‰įąŗå¤§æĻ‚需čρ 800 到 2,700 įš„ GDD æĨæˆį†ŸīŧŒåŸēįĄ€æ¸ŠåēĻæ˜¯ 10°C。 + +在é̘äēŽåŸēįĄ€æ¸ŠåēĻįš„įŦŦ一夊īŧŒæĩ‹é‡įš„æ¸ŠåēĻå€ŧåς䏋īŧš + +| æĩ‹é‡ | 渊åēĻ Â°C | +| :--- | :-----: | +| 最é̘ | 16 | +| 最äŊŽ | 12 | + +把čŋ™ä盿•°å­—äģŖå…Ĩå…Ŧåŧä¸­īŧš + +* Tmax = 16 +* Tmin = 12 +* Tbase = 10 + +可垗īŧš + +![GDD = 16 + 12 除äģĨ 2īŧŒå†å‡åŽģ 10īŧŒåž—åˆ°į­”æĄˆä¸ē 4](../../../../images/gdd-calculation-corn.png) + +įŽ‰įąŗåœ¨čŋ™ä¸€å¤ŠčŽˇåž—äē†4 GDDã€‚å‡čŽžčŋ™ä¸Ēå“į§įš„įŽ‰įąŗéœ€čρ800 GDDīŧŒé‚Ŗäšˆåރčŋ˜éœ€čρ796 GDD 才čƒŊæˆį†Ÿã€‚ + +✅ 做äē›į ”įŠļ。寚äēŽé‚Ŗäē›čŠąå›­ã€å­Ļæ Ąæˆ–åŊ“地å…Ŧå›­é‡Œįš„æ¤į‰ŠīŧŒäŊ æ˜¯åĻčƒŊ扞厃äģŦæˆį†Ÿæ‰€éœ€įš„ GDD 数量。 + +## į”¨æ¸ŠåēĻäŧ æ„Ÿå™¨æ•°æŽčŽĄįŽ— GDD + +æ¤į‰Šįš„į”Ÿé•ŋæ—ļ间不是å›ēåŽšįš„â€”â€”äž‹åĻ‚īŧŒäŊ ä¸å¯čƒŊį§ä¸‹ä¸€į˛’į§å­åšļįŸĨ道厃äŧšåˆšåĨŊ在100夊后åŧ€čŠąį쓿žœã€‚į„ļ而īŧŒäŊœä¸ē一ä¸Ē农民īŧŒäŊ äšŸčŽ¸æœ‰ä¸€ä¸Ēį”Ÿé•ŋ所需æ—ļé—´įš„į˛—į•ĨæĻ‚åŋĩīŧŒį„ļ后äŊ æ¯å¤ŠæŖ€æŸĨäŊœį‰Šæ˜¯åĻæˆį†Ÿã€‚ + +寚äēŽä¸€äē›å¤§åž‹å†œåœēæĨ蝴čŋ™æ˜¯ä¸€ä¸Ēåˇ¨å¤§įš„åŠŗåŠ¨åŠ›åŊąå“īŧŒč€Œä¸”农民有可čƒŊ错čŋ‡æ„å¤–æå‰æˆį†Ÿįš„äŊœį‰Šã€‚通čŋ‡æĩ‹é‡æ¸ŠåēĻīŧŒå†œæ°‘可äģĨčŽĄįŽ—å‡ēæ¤į‰Šæ‰€į´¯į§¯įš„ GDDīŧŒčŋ™æ ˇå¯äģĨå°ąčƒŊåĒ在æŽĨčŋ‘éĸ„æœŸæˆį†ŸåēĻæ—ļčŋ›čĄŒæŖ€æŸĨ。 + +通čŋ‡äŊŋį”¨į‰Šč”įŊ‘čŽžå¤‡æ”ļ集渊åēĻæ•°æŽīŧŒå†œæ°‘可äģĨåœ¨æ¤į‰ŠæŽĨčŋ‘æˆį†Ÿæ—ļč‡Ē动æ”ļ到通įŸĨ。čŋ™æ–šéĸįš„å…¸åž‹æžļæž„æ˜¯čŽŠį‰Šč”įŊ‘čŽžå¤‡æĩ‹é‡æ¸ŠåēĻīŧŒį„ļ后äŊŋᔍįąģäŧŧ MQTT įš„åčŽŽåœ¨äē’联įŊ‘上发布čŋ™äē›éĨæĩ‹æ•°æŽã€‚æŽĨį€æœåŠĄå™¨äģŖį į›‘åŦčŋ™ä盿•°æŽåšļ将å…ļäŋå­˜åœ¨æŸä¸Ē地斚īŧŒæ¯”åĻ‚æ•°æŽåē“。čŋ™æ„å‘ŗį€äš‹åŽčƒŊ够寚čŋ™ä盿•°æŽčŋ›čĄŒåˆ†æžīŧŒæ¯”åĻ‚åœ¨æ¯æ™ščŽĄįŽ—åŊ“å¤Šįš„ GDDīŧŒå¯šæ¯į§äŊœį‰Šįš„ GDD čŋ›čĄŒį´¯čŽĄīŧŒåĻ‚æžœæ¤į‰ŠæŽĨčŋ‘æˆį†Ÿå°ąå‘å‡ēč­ĻæŠĨ。 + +![éĨæĩ‹æ•°æŽčĸĢ发送到一ä¸ĒæœåŠĄå™¨ä¸Šį„ļ后čĸĢäŋå­˜č‡ŗæ•°æŽåē“中](../../../../images/save-telemetry-database.png) + +æœåŠĄå™¨äģŖį äšŸå¯äģĨ通čŋ‡æˇģ加éĸå¤–įš„äŋĄæ¯æĨåĸžåŧēæ•°æŽã€‚äž‹åĻ‚īŧŒį‰Šč”įŊ‘čŽžå¤‡å¯é€ščŋ‡ä¸€ä¸Ēæ ‡č¯†įŦĻäģĨčĄ¨æ˜ŽåŽƒæ˜¯å“Ēä¸ĒčŽžå¤‡īŧŒč€ŒæœåŠĄå™¨äģŖį å¯äģĨäŊŋᔍčŋ™ä¸Ēæ ‡č¯†įŦĻæĨæŸĨæ‰žčŽžå¤‡įš„äŊįŊŽäģĨåŠåŽƒæ­Ŗåœ¨į›‘æĩ‹å“Ēäē›äŊœį‰Šã€‚čŋ˜å¯äģĨæˇģ加一äē›åŸēæœŦ数捎īŧŒåĻ‚åŊ“前æ—ļ间īŧŒå› ä¸ē一äē›į‰Šč”įŊ‘čŽžå¤‡æ˛Ąæœ‰čŋŊč¸Ēæ—ļé—´įš„åŋ…čĻįš„įĄŦäģ￈–č€…æ˜¯éœ€čρéĸå¤–įš„äģŖį æĨ通čŋ‡äē’联įŊ‘č¯ģ取åŊ“前æ—ļ间。 + +✅ äŊ č§‰åž—ä¸ēäģ€äšˆä¸åŒåœ°æ–šįš„æ¸ŠåēĻ可čƒŊäŧšä¸åŒīŧŸ + +### äģģåŠĄ - 发布渊åēĻäŋĄæ¯ + +通čŋ‡äģĨ下čŋ™äē›į›¸å…ŗæŒ‡å—īŧŒåē”ᔍäŊ įš„į‰Šč”įŊ‘čŽžå¤‡é€ščŋ‡ MQTT 发布渊åēĻæ•°æŽīŧŒäģĨäžŋäš‹åŽįš„åˆ†æžīŧš + +* [Arduino - Wio Terminal](../wio-terminal-temp-publish.md) +* [单æŋæœē - Raspberry Pi/č™šæ‹Ÿį‰Šč”įŊ‘čŽžå¤‡](../single-board-computer-temp-publish.md) + +### äģģåŠĄ - æ•čŽˇåšļ存储渊åēĻäŋĄæ¯ + +åĻ‚æžœį‰Šč”įŊ‘čŽžå¤‡æˆåŠŸå‘å¸ƒéĨæĩ‹æ•°æŽīŧŒå°ąå¯äģĨåŧ€å§‹įŧ–å†™æœåŠĄå™¨äģŖį æĨčŽĸ阅čŋ™ä盿•°æŽåšļ将å…ļ存储čĩˇæĨã€‚æœåŠĄå™¨äģŖį å°†å…ļäŋå­˜åˆ° CSV 文äģļ中而非äŊŋį”¨æ•°æŽå瓿Ĩ存储。CSV文äģļäģĨ文æœŦåŊĸåŧå­˜å‚¨æ•°æŽīŧŒæ¯ä¸Ēå€ŧį”¨é€—åˇéš”åŧ€īŧŒæ¯ä¸Ē莰åŊ•å ä¸€čĄŒã€‚åŽƒæ˜¯ä¸€į§æ–šäžŋįš„ã€äēēįąģ可č¯ģįš„ã€å—åˆ°č‰¯åĨŊæ”¯æŒįš„äŋå­˜æ•°æŽä¸ē文äģļįš„æ–šåŧã€‚ + +CSV 文äģļ将有两列 - *æ—ļ间 (date)*和*渊åēĻ (temperature)*。*æ—ļ间*åˆ—å°†å­˜å‚¨æœåŠĄå™¨æ”ļ到æļˆæ¯æ—ļįš„æ—Ĩ期和æ—ļ间īŧŒ*渊åēĻ*列存储éĨæĩ‹äŋĄæ¯ã€‚ + +1. 重复įŦŦ4č¯žįš„æ­ĨéǤīŧŒåˆ›åģ翜åŠĄå™¨äģŖį äģĨčŽĸ阅éĨæĩ‹æ•°æŽã€‚äŊ ä¸éœ€čρæˇģ加äģŖį æĨ发布å‘Ŋäģ¤ã€‚ + + å…ˇäŊ“æ­ĨéǤīŧš + + * 配įŊŽåšļæŋ€æ´ģ一ä¸Ē Python č™šæ‹ŸįŽ¯åĸƒ + + * åŽ‰čŖ… paho-mqtt pip 包 + + * įŧ–写äģŖį æĨᛑåŦ发布在éĨæĩ‹ä¸ģéĸ˜ä¸Šįš„ MQTT æļˆæ¯ + + > âš ī¸ åĻ‚æžœéœ€čĻįš„č¯äŊ å¯äģĨå‚č€ƒ [č¯žį¨‹ 4 䏭兺äēŽåˆ›åģē Python åē”ᔍæĨæŽĨ受éĨæĩ‹æ•°æŽįš„č¯´æ˜Ž](../../../../1-getting-started/lessons/4-connect-internet/README.md#receive-telemetry-from-the-mqtt-broker)。 + + čŋ™ä¸ĒéĄšį›Žįš„æ–‡äģļ多名是 `temperature-sensor-server`。 + +1. įĄŽäŋ `client_name` 反映č¯ĨéĄšį›Žīŧš + + ```cpp + client_name = id + 'temperature_sensor_server' + ``` + +1. 在文äģļåŧ€å¤´īŧŒåˇ˛æœ‰å¯ŧå…Ĩįš„ä¸‹æ–šīŧŒæˇģ加下列å¯ŧå…Ĩīŧš + + ```python + from os import path + import csv + from datetime import datetime + ``` + + čŋ™å°†äŧšå¯ŧå…Ĩ一ä¸ĒᔍäēŽč¯ģ取文äģļįš„åē“īŧŒä¸€ä¸Ē与 CSV 文äģļäē¤äē’įš„åē“īŧŒå’Œä¸€ä¸Ēå…ŗäēŽæ—Ĩ期和æ—ļé—´įš„åē“。 + +1. æˇģ加下éĸįš„äģŖį č‡ŗ `handle_telemetry` å‡Ŋ数前īŧš + + ```python + temperature_file_name = 'temperature.csv' + fieldnames = ['date', 'temperature'] + + if not path.exists(temperature_file_name): + with open(temperature_file_name, mode='w') as csv_file: + writer = csv.DictWriter(csv_file, fieldnames=fieldnames) + writer.writeheader() + ``` + + čŋ™æŽĩäģŖį åŖ°æ˜Žäē†ä¸€äē›į”¨äēŽå†™å…Ĩ文äģļįš„æ–‡äģļ名和 CSV 文äģļ列标éĸ˜åįš„常量。äŧ įģŸä¸ŠīŧŒCSV 文äģļįš„įŦŦä¸€čĄŒåŒ…åĢį”ąé€—åˇåˆ†éš”įš„åˆ—æ ‡éĸ˜ã€‚ + + į„ļ后äģŖį äŧšæŖ€æŸĨ CSV 文äģ￘¯åĻ厞įģå­˜åœ¨ã€‚åĻ‚æžœä¸å­˜åœ¨īŧŒåˆ™åœ¨įŦŦä¸€čĄŒåˆ›åģē列标éĸ˜ã€‚ + +1. æˇģ加下éĸįš„äģŖį č‡ŗ `handle_telemetry` å‡Ŋ数æœĢå°žīŧš + + ```python + with open(temperature_file_name, mode='a') as temperature_file: + temperature_writer = csv.DictWriter(temperature_file, fieldnames=fieldnames) + temperature_writer.writerow({'date' : datetime.now().astimezone().replace(microsecond=0).isoformat(), 'temperature' : payload['temperature']}) + ``` + + čŋ™æŽĩäģŖį äŧ𿉓åŧ€ CSV 文äģļīŧŒį„ļ后在æœĢå°žæˇģ加一ä¸Ēæ–°čĄŒã€‚čŋ™ä¸€čĄŒäŧšåŒ…åĢåŊ“å‰įš„æ—Ĩ期和æ—ļ间īŧˆå¯é˜…č¯ģæ ŧåŧīŧ‰īŧŒį´§čˇŸį€äģŽį‰Šč”įŊ‘čŽžå¤‡ä¸­æŽĨæ”ļåˆ°įš„æ¸ŠåēĻ。æ—ļ间数捎将äģĨ [ISO 8601 format](https://wikipedia.org/wiki/ISO_8601) čŋ›čĄŒäŋå­˜īŧŒåŒ…åĢæ—ļåŒēīŧŒäŊ†æ˜¯ä¸åŒ…åĢæ¯Ģį§’ã€‚ + +1. äģĨä¸Žäš‹å‰į›¸åŒįš„æ–šåŧčŋčĄŒæ­¤äģŖį īŧŒįĄŽäŋäŊ įš„į‰Šč”įŊ‘čŽžå¤‡æ­Ŗåœ¨å‘é€æ•°æŽã€‚ä¸€ä¸Ē名ä¸ē `temperature.csv` įš„ CSV 文äģļ将在同一文äģļ多中创åģē。åĻ‚æžœäŊ æŸĨįœ‹åŽƒīŧŒäŊ åē”č¯ĨčƒŊįœ‹åˆ°æ—Ĩ期/æ—ļ间和渊åēĻæ•°æŽīŧš + + ```output + date,temperature + 2021-04-19T17:21:36-07:00,25 + 2021-04-19T17:31:36-07:00,24 + 2021-04-19T17:41:36-07:00,25 + ``` + +1. čŋčĄŒčŋ™æŽĩäģŖį ä¸€æŽĩæ—ļ间äģĨčŽˇå–æ•°æŽã€‚į†æƒŗæƒ…å†ĩ下īŧŒäŊ åē”č¯ĨčŋčĄŒåŽƒä¸€æ•´å¤ŠæĨæ”ļ集čļŗå¤Ÿįš„æ•°æŽį”¨äēŽ GDD įš„čŽĄįŽ—ã€‚ + + > 💁 åĻ‚æžœäŊ æ­Ŗåœ¨äŊŋį”¨č™šæ‹Ÿį‰Šč”įŊ‘čŽžå¤‡īŧŒé€‰æ‹Šéšæœēå¤é€‰æĄ†åšļ莞įŊŽä¸€ä¸ĒčŒƒå›´æĨéŋ免每æŦĄčŋ”回渊åēĻæ—ļéƒŊåž—åˆ°åŒæ ˇįš„å€ŧ。 + > ![Select the random checkbox and set a range](../../../../images/select-the-random-checkbox-and-set-a-range.png) + + > 💁 åĻ‚æžœäŊ æƒŗčŋčĄŒä¸€æ•´å¤ŠīŧŒé‚ŖäšˆäŊ éœ€čĻįĄŽäŋį”¨äēŽæœåŠĄå™¨äģŖį čŋčĄŒįš„į”ĩ脑不äŧščŋ›å…Ĩäŧ‘įœ īŧŒäŊ å¯äģĨ攚变į”ĩæēčŽžįŊŽīŧŒæˆ–者čŋčĄŒ [čŋ™ä¸ĒäŋæŒįŗģį쟿´ģčˇƒįš„ Python 脚æœŦ](https://github.com/jaqsparow/keep-system-active)。 + +> 💁 äŊ å¯äģĨ在 [code-server/temperature-sensor-server](../code-server/temperature-sensor-server) 文äģļ多内扞到需čĻįš„äģŖį ã€‚ + +### äģģåŠĄ - äŊŋį”¨å­˜å‚¨įš„æ•°æŽčŽĄįŽ—å‡ē GDD + +一æ—ĻæœåŠĄå™¨é‡‡é›†ä熿¸ŠåēĻæ•°æŽīŧŒå°ąå¯äģĨčŽĄįŽ—å‡ēæ¤į‰Šįš„ GDD。 + +手动操äŊœįš„æ­ĨéĒ¤æ˜¯īŧš + +1. 扞到č¯Ĩæ¤į‰Šįš„åŸēįĄ€æ¸ŠåēĻ。䞋åĻ‚īŧŒå¯šäēŽč‰čŽ“æĨ蝴īŧŒåŸēįĄ€æ¸ŠåēĻæ˜¯10℃ + +1. 栚捎 `temperature.csv`īŧŒæ‰žåˆ°ä¸€å¤Šä¸­įš„æœ€äŊŽæ¸ŠåēĻ和最éĢ˜æ¸ŠåēĻ + +1. äŊŋį”¨äš‹å‰įģ™å‡ēįš„å…ŦåŧæĨčŽĄįŽ— GDD + +例åĻ‚īŧŒåĻ‚æžœčŋ™ä¸€å¤Šæœ€éĢ˜æ¸ŠåēĻæ˜¯ 25°CīŧŒæœ€äŊŽæ¸ŠåēĻæ˜¯ 12°Cīŧš + +![GDD = 25 + 12 除äģĨ 2īŧŒį„ļ后减åŽģ 10 垗到 8.5](../../../../images/gdd-calculation-strawberries.png) + +* 25 + 12 = 37 +* 37 / 2 = 18.5 +* 18.5 - 10 = 8.5 + +所äģĨč‰čŽ“čŽˇåž—äē† **8.5** GDDã€‚č‰čŽ“éœ€čρ大æĻ‚ 250 GDD æĨį쓿žœīŧŒįœ‹æĨčŋ˜åž—ᭉ䏀äŧšå„ŋå‘ĸ。 + +--- + +## 🚀 挑战 + +æ¤į‰Šįš„į”Ÿé•ŋīŧŒé™¤äē†įƒ­é‡äģĨ外īŧŒčŋ˜éœ€čρäē›äģ€äšˆīŧŸ + +寚äēŽčŋ™äē›īŧˆå…ļåŽƒå› į´ īŧ‰īŧŒå¯ģ扞是åĻ有可äģĨæĩ‹é‡åރäģŦįš„äŧ æ„Ÿå™¨ã€‚é‚ŖäšˆæŽ§åˆļ厃äģŦæ°´åšŗįš„æ‰§čĄŒå™¨å‘ĸīŧŸäŊ äŧšåĻ‚äŊ•把一ä¸Ē或多ä¸Ēį‰Šč”įŊ‘čŽžå¤‡æ”žåœ¨ä¸€čĩˇīŧŒäģĨäŧ˜åŒ–æ¤į‰Šįš„į”Ÿé•ŋīŧŸ + +## č¯žåŽæĩ‹énj + +[č¯žåŽæĩ‹énj](https://brave-island-0b7c7f50f.azurestaticapps.net/quiz/10) + +## 复䚠 & č‡Ēå­Ļ + +* 在 [Digital Agriculture Wikipedia page](https://wikipedia.org/wiki/Digital_agriculture) 上阅č¯ģæ›´å¤šå…ŗäēŽæ•°å­—å†œä¸šįš„įŸĨč¯†ã€‚åœ¨ [Precision Agriculture Wikipedia page](https://wikipedia.org/wiki/Precision_agriculture) 上阅č¯ģæ›´å¤šå…ŗäēŽį˛žå‡†å†œä¸šįš„įŸĨč¯†ã€‚ +* åŽŒæ•´įš„į”Ÿé•ŋåēĻæ—ĨčŽĄįŽ—æ¯”čŋ™é‡Œįģ™å‡ēįš„įŽ€åŒ–čŽĄįŽ—æ›´å¤æ‚ã€‚åœ¨ [Growing Degree Day Wikipedia page](https://wikipedia.org/wiki/Growing_degree-day) 上æŸĨįœ‹æ›´å¤æ‚įš„æ–šį¨‹äģĨåŠå¤„į†äŊŽæ¸ŠæĄäģļįš„æ–šæŗ•ã€‚ +* åŗäŊŋ我äģŦäģį„ļäŊŋį”¨į›¸åŒįš„č€•äŊœæ–šæŗ•īŧŒæœĒæĨįš„éŖŸį‰ŠäšŸå¯čƒŊæ˜¯į¨€įŧēįš„ã€‚åœ¨ [Hi-Tech Farms of Future video on YouTube](https://www.youtube.com/watch?v=KIEOuKD9KX8) 上äē†č§Ŗæ›´å¤šéĢ˜į§‘æŠ€į§æ¤æ‰‹æŽĩ。 + +## äŊœä¸š + +[äŊŋᔍ Jupyter Notebook čŋ›čĄŒ GDD æ•°æŽįš„å¯č§†åŒ–](../assignment.md) \ No newline at end of file diff --git a/2-farm/translations/README.zh-cn.md b/2-farm/translations/README.zh-cn.md new file mode 100644 index 00000000..97389d75 --- /dev/null +++ b/2-farm/translations/README.zh-cn.md @@ -0,0 +1,20 @@ +# åē”į”¨į‰Šč”įŊ‘č‡ŗå†œä¸š + +éšį€äēēåŖåĸžåŠ īŧŒå¯šäēŽå†œä¸šįš„éœ€æą‚äšŸä¸€åšļåĸžåŠ ã€‚å¯į”¨įš„åœŸåœ°æ•°é‡äŋæŒä¸å˜īŧŒäŊ†æ˜¯æ°”候却不断变化——čŋ™įģ™å†œæ°‘äģŦå¸ĻæĨä熿›´å¤šįš„æŒ‘战īŧŒå°¤å…ļæ˜¯é‚Ŗ20äēŋ䞝čĩ–äēŽäē˛č‡Ēč€•į§äģĨå…ģæ´ģč‡Ēåˇąå’ŒåŽļåē­įš„[č‡Ēč€•å†œ](https://wikipedia.org/wiki/Subsistence_agriculture)ã€‚į‰Šč”įŊ‘可äģĨ帎劊农民äģŦ做å‡ē更加čĒæ˜Žįš„å†ŗåŽšīŧŒæ¯”åĻ‚č€•į§äŊ•į§äŊœį‰Šã€äŊ•æ—ļæ”ļ获īŧŒåšļ且帎劊äģ–äģŦåĸžäē§ã€å‡å°‘åŠŗåŠ›ã€æŖ€æĩ‹å’Œå¤„į†åŽŗč™Ģ。 + +在čŋ™6čŠ‚č¯žį¨‹ä¸­äŊ å°†äŧšå­Ļåˆ°æ€Žæ ˇåē”į”¨į‰Šč”įŊ‘åŽģ攚čŋ›å’Œč‡ĒåŠ¨åŒ–å†œä¸šį”Ÿäē§ã€‚ + +> 💁 čŋ™äē›č¯žį¨‹å°†äŧšäŊŋᔍ䏀äē›äē‘į̝čĩ„æēã€‚åĻ‚æžœäŊ æ˛Ąæœ‰åŽŒæˆčŋ™ä¸ĒéĄšį›Žįš„æ‰€æœ‰č¯žį¨‹īŧŒč¯ˇįĄŽäŋäŊ [æ¸…į†äŊ įš„éĄšį›Ž](../clean-up.md). + +## ä¸ģéĸ˜ + +1. [åē”į”¨į‰Šč”įŊ‘éĸ„æĩ‹æ¤į‰Šį”Ÿé•ŋ](lessons/1-predict-plant-growth/translations/README.zh-cn.md) +1. [æŖ€æĩ‹åœŸåŖ¤æšŋåēĻ](lessons/2-detect-soil-moisture/README.md) +1. [č‡Ē动į왿¤į‰Šæĩ‡æ°´](lessons/3-automated-plant-watering/README.md) +1. [将äŊ įš„æ¤į‰Ščŋį§ģ到äē‘į̝](lessons/4-migrate-your-plant-to-the-cloud/README.md) +1. [将äŊ įš„åē”ᔍፋåēé€ģ辑čŋį§ģ到äē‘į̝](lessons/5-migrate-application-to-the-cloud/README.md) +1. [įĄŽäŋäŊ įš„æ¤į‰Šåމ免](lessons/6-keep-your-plant-secure/README.md) + +## äŊœč€… + +æ‰€æœ‰č¯žį¨‹å‡į”ą [Jim Bennett](https://GitHub.com/JimBobBennett) ᔍ â™Ĩī¸ įŧ–写。 From a23d8e9ca76e82a577dfc4b0fb04391bd5b621e9 Mon Sep 17 00:00:00 2001 From: emilyf11 <89915168+emilyf11@users.noreply.github.com> Date: Thu, 14 Oct 2021 10:40:01 -0500 Subject: [PATCH 25/35] change my to by in "Trigger fruit quality checking from a sensor" (#326) * Lesson 18 that to than - in Introduction * change my to by Co-authored-by: Jim Bennett --- 4-manufacturing/lessons/4-trigger-fruit-detector/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/4-manufacturing/lessons/4-trigger-fruit-detector/README.md b/4-manufacturing/lessons/4-trigger-fruit-detector/README.md index 51b0c3e8..c0d043ea 100644 --- a/4-manufacturing/lessons/4-trigger-fruit-detector/README.md +++ b/4-manufacturing/lessons/4-trigger-fruit-detector/README.md @@ -105,7 +105,7 @@ For the prototype, you will implement all of this on a single device. If you are ## Trigger fruit quality checking from a sensor -The IoT device needs some kind of trigger to indicate when fruit is ready to be classified. One trigger for this would be to measure when the fruit is at the right location on the conveyor belt my measuring the distance to a sensor. +The IoT device needs some kind of trigger to indicate when fruit is ready to be classified. One trigger for this would be to measure when the fruit is at the right location on the conveyor belt by measuring the distance to a sensor. ![Proximity sensors send laser beams to objects like bananas and time how long till the beam is bounced back](../../../images/proximity-sensor.png) From e23a162c226803e7568c7d54c1ad482b5aba79f6 Mon Sep 17 00:00:00 2001 From: Jim Bennett Date: Fri, 15 Oct 2021 08:19:34 -0700 Subject: [PATCH 26/35] Update TRANSLATIONS.md --- TRANSLATIONS.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/TRANSLATIONS.md b/TRANSLATIONS.md index 70171e2c..3f54b22f 100644 --- a/TRANSLATIONS.md +++ b/TRANSLATIONS.md @@ -19,6 +19,10 @@ where _[language]_ is a two letter language abbreviation following the ISO 639-1 > Important: when translating text in this repo, please ensure that you do not use machine translation. We will verify translations via the community, so please only volunteer for translations in languages where you are proficient. +## Links + +When translating, please update links to the translated files. If a file hasn't been translated, keep the link to the English version. As each file is in a `translations` folder, you will also need to update the link depth for hyperlinks and images. + ## Quizzes Add your translation to the quiz-app by adding a file here: https://github.com/microsoft/IoT-For-Beginners/tree/main/quiz-app/src/assets/translations. Please don't localize the words 'true' or 'false' however. thanks! From d58b9eaff117f8c22b490e2e129349eb9c85a069 Mon Sep 17 00:00:00 2001 From: emilyf11 <89915168+emilyf11@users.noreply.github.com> Date: Mon, 18 Oct 2021 13:51:30 -0500 Subject: [PATCH 27/35] know to known (#333) * Lesson 18 that to than - in Introduction * change my to by * know as to known as Co-authored-by: Jim Bennett --- 6-consumer/lessons/4-multiple-language-support/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/6-consumer/lessons/4-multiple-language-support/README.md b/6-consumer/lessons/4-multiple-language-support/README.md index bc0302b7..ee273f8a 100644 --- a/6-consumer/lessons/4-multiple-language-support/README.md +++ b/6-consumer/lessons/4-multiple-language-support/README.md @@ -42,7 +42,7 @@ Text translation has been a computer science problem that has been researched fo Text translation started out as a technology known as Machine Translation (MT), that can translate between different language pairs. MT works by substituting words in one language with another, adding techniques to select the correct ways of translating phrases or parts of sentences when a simple word-for-word translation doesn't make sense. -> 🎓 When translators support translating between one language and another, these are know as *language pairs*. Different tools support different language pairs, and these may not be complete. For example, a translator may support English to Spanish as a language pair, and Spanish to Italian as a language pair, but not English to Italian. +> 🎓 When translators support translating between one language and another, these are known as *language pairs*. Different tools support different language pairs, and these may not be complete. For example, a translator may support English to Spanish as a language pair, and Spanish to Italian as a language pair, but not English to Italian. For example, translating "Hello world" from English into French can be performed with a substitution - "Bonjour" for "Hello", and "le monde" for "world", leading to the correct translation of "Bonjour le monde". From 708f64aa6392e64d2a07e59e090b9e796e104826 Mon Sep 17 00:00:00 2001 From: Jiyeon Seo Date: Tue, 19 Oct 2021 03:53:01 +0900 Subject: [PATCH 28/35] fix a broken link (#331) Co-authored-by: USER Co-authored-by: Jim Bennett --- 6-consumer/lessons/2-language-understanding/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/6-consumer/lessons/2-language-understanding/README.md b/6-consumer/lessons/2-language-understanding/README.md index 0004c934..53be2c10 100644 --- a/6-consumer/lessons/2-language-understanding/README.md +++ b/6-consumer/lessons/2-language-understanding/README.md @@ -19,7 +19,7 @@ In this lesson you will learn about language understanding models, how to create In this lesson we'll cover: * [Language understanding](#language-understanding) -* [Create a language understanding model](create-a-language-understanding-model) +* [Create a language understanding model](#create-a-language-understanding-model) * [Intents and entities](#intents-and-entities) * [Use the language understanding model](#use-the-language-understanding-model) From 698e582d4779158db303cef78ff0c674110cf066 Mon Sep 17 00:00:00 2001 From: "Mohammad Iftekher (Iftu) Ebne Jalal" Date: Tue, 19 Oct 2021 00:54:46 +0600 Subject: [PATCH 29/35] Reflecting changes from English Version (#330) Co-authored-by: Jim Bennett --- translations/README.bn.md | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/translations/README.bn.md b/translations/README.bn.md index 535547b4..3ce2f415 100644 --- a/translations/README.bn.md +++ b/translations/README.bn.md @@ -9,8 +9,10 @@ [![GitHub stars](https://img.shields.io/github/stars/microsoft/IoT-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/IoT-For-Beginners/stargazers/) [![English](https://img.shields.io/badge/-English-red)](../README.md) -[![Chinese](https://img.shields.io/badge/-Chinese-yellow)](README.zh-cn.md) -[![Turkish](https://img.shields.io/badge/-Turkish-darkgreen)](README.tr.md) +[![Chinese](https://img.shields.io/badge/-Chinese-yellow)](translations/README.zh-cn.md) +[![Turkish](https://img.shields.io/badge/-Turkish-darkgreen)](translations/README.tr.md) +[![French](https://img.shields.io/badge/-French-purple)](translations/README.fr.md) + # āĻŦāĻŋāĻ—āĻŋāύāĻžāϰāĻĻ⧇āϰ āϜāĻ¨ā§āϝ āφāχāĻ“āϟāĻŋ - āĻāĻ•āϟāĻŋ āϏ⧁āĻŦāĻŋāĻ¨ā§āϝāĻ¸ā§āϤ āĻĒāĻžāĻ ā§āϝāĻ•ā§āϰāĻŽ @@ -24,7 +26,7 @@ **āĻšā§ƒāĻĻā§Ÿā§‡āϰ āĻ…āĻ¨ā§āϤāσāĻ¸ā§āĻĨāϞ āĻĨ⧇āϕ⧇ āĻ•ā§ƒāϤāĻœā§āĻžāϤāĻž āϜāĻžāύāĻžāχ āĻāχ āϕ⧋āĻ°ā§āϏ⧇āϰ āϰāϚ⧟āĻŋāϤāĻž [Jen Fox](https://github.com/jenfoxbot), [Jen Looper](https://github.com/jlooper), [Jim Bennett](https://github.com/jimbobbennett) āĻāĻŦāĻ‚ āĻ¸ā§āϕ⧇āϚāύ⧋āϟ āĻļāĻŋāĻ˛ā§āĻĒā§€ [Nitya Narasimhan](https://github.com/nitya)āϕ⧇ āĨ¤** -**āϧāĻ¨ā§āϝāĻŦāĻžāĻĻ āϜāĻžāύāĻžāϤ⧇ āϚāĻžāχ āφāĻŽāĻžāĻĻ⧇āϰ āϏ⧇āϏāĻ•āϞ [Microsoft Learn Student Ambassadors](https://studentambassadors.microsoft.com?WT.mc_id=academic-17441-jabenn)āĻĻ⧇āϰ, āϝāĻžāϰāĻž āĻāχ āĻ•āĻžāϰāĻŋāĻ•ā§āϝ⧁āϞāĻžāĻŽāϟāĻŋ āϰāĻŋāĻ­āĻŋāω āĻāĻŦāĻ‚ āĻ…āύ⧁āĻŦāĻžāĻĻ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇āϛ⧇ - [Aditya Garg](https://github.com/AdityaGarg00),[Anurag Sharma](https://github.com/Anurag-0-1-A), [Arpita Das](https://github.com/Arpiiitaaa), [Aryan Jain](https://www.linkedin.com/in/aryan-jain-47a4a1145/), [Bhavesh Suneja](https://github.com/EliteWarrior315),[Faith Hunja](https://faithhunja.github.io/), [Lateefah Bello](https://www.linkedin.com/in/lateefah-bello/), [Manvi Jha](https://github.com/Severus-Matthew), [Mireille Tan](https://www.linkedin.com/in/mireille-tan-a4834819a/), [Mohammad Iftekher (Iftu) Ebne Jalal](https://github.com/Iftu119), [Priyanshu Srivastav](https://www.linkedin.com/in/priyanshu-srivastav-b067241ba), [Thanmai Gowducheruvu](https://github.com/innovation-platform), āĻāĻŦāĻ‚ [Zina Kamel](https://www.linkedin.com/in/zina-kamel/).** +**āϧāĻ¨ā§āϝāĻŦāĻžāĻĻ āϜāĻžāύāĻžāϤ⧇ āϚāĻžāχ āφāĻŽāĻžāĻĻ⧇āϰ āϏ⧇āϏāĻ•āϞ [Microsoft Learn Student Ambassadors](https://studentambassadors.microsoft.com?WT.mc_id=academic-17441-jabenn)āĻĻ⧇āϰ, āϝāĻžāϰāĻž āĻāχ āĻ•āĻžāϰāĻŋāĻ•ā§āϝ⧁āϞāĻžāĻŽāϟāĻŋ āϰāĻŋāĻ­āĻŋāω āĻāĻŦāĻ‚ āĻ…āύ⧁āĻŦāĻžāĻĻ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇āϛ⧇ - [Aditya Garg](https://github.com/AdityaGarg00),[Anurag Sharma](https://github.com/Anurag-0-1-A), [Arpita Das](https://github.com/Arpiiitaaa), [Aryan Jain](https://www.linkedin.com/in/aryan-jain-47a4a1145/), [Bhavesh Suneja](https://github.com/EliteWarrior315),[Faith Hunja](https://faithhunja.github.io/), [Lateefah Bello](https://www.linkedin.com/in/lateefah-bello/), [Manvi Jha](https://github.com/Severus-Matthew), [Mireille Tan](https://www.linkedin.com/in/mireille-tan-a4834819a/), [Mohammad Iftekher (Iftu) Ebne Jalal](https://github.com/Iftu119),[Mohammad Zulfikar](https://github.com/mohzulfikar), [Priyanshu Srivastav](https://www.linkedin.com/in/priyanshu-srivastav-b067241ba), [Thanmai Gowducheruvu](https://github.com/innovation-platform), āĻāĻŦāĻ‚ [Zina Kamel](https://www.linkedin.com/in/zina-kamel/).** āĻĒ⧁āϰ⧋ āĻŸā§€āĻŽā§‡āϰ āϏāĻžāĻĨ⧇ āĻĒāϰāĻŋāϚāĻŋāϤ āĻšāĻ“ā§ŸāĻž āϝāĻžāĻ• ! @@ -89,9 +91,9 @@ | 12 | [āĻĒāϰāĻŋāĻŦāĻšāύ](../3-transport) | āϞ⧋āϕ⧇āĻļāύ āĻĄā§‡āϟāĻž āϏāĻ‚āϰāĻ•ā§āώāĻŖ | āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āϏāĻŽā§Ÿā§‡ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ āĻŦāĻž āϚāĻŋāĻ¤ā§āϰāĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āĻĄā§‡āϟāĻž āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ (Visualization) āĻāϰ āϜāĻ¨ā§āϝ āφāχāĻ“āϟāĻŋ āĻĄā§‡āϟāĻž āϕ⧀āĻ­āĻžāĻŦ⧇ āĻ¸ā§āĻŸā§‹āϰ āĻ•āϰāĻž āϝāĻžā§Ÿ āϤāĻž āϜāĻžāύāĻž | [āϞ⧋āϕ⧇āĻļāύ āĻĄā§‡āϟāĻž āϏāĻ‚āϰāĻ•ā§āώāĻŖ](../3-transport/lessons/2-store-location-data/translations/README.bn.md) | | 13 | [āĻĒāϰāĻŋāĻŦāĻšāύ](../3-transport) | āϞ⧋āϕ⧇āĻļāύ āĻĄā§‡āϟāĻž āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ |āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰ⧇ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāύ⧇āϰ āĻĄā§‡āϟāĻž āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰāĻž āĻāĻŦāĻ‚ āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰāϗ⧁āϞāĻŋ āϕ⧀āĻ­āĻžāĻŦ⧇ ⧍āϟāĻŋ āĻŽāĻžāĻ¤ā§āϰāĻžāϝāĻŧ āĻŦāĻžāĻ¸ā§āϤāĻŦ āĻ¤ā§āϰāĻŋāĻŽāĻžāĻ¤ā§āϰāĻŋāĻ• āĻŦāĻŋāĻļā§āĻŦ⧇āϰ āωāĻĒāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇ āϏ⧇ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻœā§āĻžāĻžāύ āĻ…āĻ°ā§āϜāύ | [āϞ⧋āϕ⧇āĻļāύ āĻĄā§‡āϟāĻž āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ](../3-transport/lessons/3-visualize-location-data/translations/README.bn.md) | | 14 | [āĻĒāϰāĻŋāĻŦāĻšāύ](../3-transport) | Geofences | Geofences āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϜāĻžāύāĻž āĻāĻŦāĻ‚ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϏāĻžāĻĒā§āϞāĻžāχ āĻšā§‡āχāύ⧇āϰ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻĒāĻ°ā§āϝāĻžā§Ÿā§‡āϰ āĻŦāĻžāĻšāύāϗ⧁āϞ⧋ āϝāĻ–āύ āĻ—āĻ¨ā§āϤāĻŦā§āϝ⧇āϰ āĻ•āĻžāĻ›āĻžāĻ•āĻžāĻ›āĻŋ āĻĒ⧌āρāĻ›āĻžā§Ÿ āϤāĻ–āύ āĻāϞāĻžāĻ°ā§āϟ āĻĻā§‡ā§ŸāĻž āϝāĻžā§Ÿ āϤāĻž āĻļ⧇āĻ–āĻž | [Geofences](../3-transport/lessons/4-geofences/README.md) | -| 15 | [āĻ‰ā§ŽāĻĒāĻžāĻĻāύ](../4-manufacturing) | Train a fruit quality detector | āĻ•ā§āϞāĻžāωāĻĄā§‡āϰ āĻ›āĻŦāĻŋ āĻļā§āϰ⧇āĻŖāĻŋāĻŦāĻĻā§āϧāĻ•āϰāĻŖ āĻŽāĻĄā§‡āϞāϕ⧇ (Image Classifier) āĻĢāϞ⧇āϰ āĻŽāĻžāύ āϏāύāĻžāĻ•ā§āϤ āĻ•āϰāϤ⧇ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŋāϤ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϏ⧇ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϜāĻžāύāĻž | [Train a fruit quality detector](../4-manufacturing/lessons/1-train-fruit-detector/README.md) | +| 15 | [āĻ‰ā§ŽāĻĒāĻžāĻĻāύ](../4-manufacturing) | āĻ–āĻžāĻĻā§āϝāĻĒāĻŖā§āϝ⧇āϰ āϗ⧁āĻŖāĻŽāĻžāύ āϏāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀ āĻŽāĻĄā§‡āϞāϕ⧇ āĻŸā§āϰ⧇āύāĻŋāĻ‚ āĻĒā§āϰāĻĻāĻžāύ | āĻ•ā§āϞāĻžāωāĻĄā§‡āϰ āĻ›āĻŦāĻŋ āĻļā§āϰ⧇āĻŖāĻŋāĻŦāĻĻā§āϧāĻ•āϰāĻŖ āĻŽāĻĄā§‡āϞāϕ⧇ (Image Classifier) āĻĢāϞ⧇āϰ āĻŽāĻžāύ āϏāύāĻžāĻ•ā§āϤ āĻ•āϰāϤ⧇ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŋāϤ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϏ⧇ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϜāĻžāύāĻž | [āĻ–āĻžāĻĻā§āϝāĻĒāĻŖā§āϝ⧇āϰ āϗ⧁āĻŖāĻŽāĻžāύ āϏāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀ āĻŽāĻĄā§‡āϞāϕ⧇ āĻŸā§āϰ⧇āύāĻŋāĻ‚ āĻĒā§āϰāĻĻāĻžāύ](../4-manufacturing/lessons/1-train-fruit-detector/translations/README.bn.md) | | 16 | [āĻ‰ā§ŽāĻĒāĻžāĻĻāύ](../4-manufacturing) | Check fruit quality from an IoT device | āφāχāĻ“āϟāĻŋ āĻĄāĻŋāĻ­āĻžāχāϏ⧇ āĻĢāϞ⧇āϰ āϗ⧁āĻŖāĻ—āϤ āĻŽāĻžāύ āϏāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀ āĻŦā§āϝāĻŦāĻšāĻžāϰ | [Check fruit quality from an IoT device](../4-manufacturing/lessons/2-check-fruit-from-device/README.md) | -| 17 | [āĻ‰ā§ŽāĻĒāĻžāĻĻāύ](../4-manufacturing) | Run your fruit detector on the edge | āĻĢāϞ⧇āϰ āϗ⧁āĻŖāĻ—āϤ āĻŽāĻžāύ āϏāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀āϕ⧇ Edge āĻšāĻŋāϏ⧇āĻŦ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ | [Run your fruit detector on the edge](../4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) | +| 17 | [āĻ‰ā§ŽāĻĒāĻžāĻĻāύ](../4-manufacturing) | Edge āĻ Fruit Detector āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰāĻž | āĻĢāϞ⧇āϰ āϗ⧁āĻŖāĻ—āϤ āĻŽāĻžāύ āϏāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀āϕ⧇ Edge āĻšāĻŋāϏ⧇āĻŦ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ | [Edge āĻ Fruit Detector āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰāĻž](../4-manufacturing/lessons/3-run-fruit-detector-edge/translations/README.bn.md) | | 18 | [āĻ‰ā§ŽāĻĒāĻžāĻĻāύ](../4-manufacturing) | Trigger fruit quality detection from a sensor | āϏ⧇āĻ¨ā§āϏāϰ āĻĨ⧇āϕ⧇ āĻĢāϞ⧇āϰ āϗ⧁āĻŖāĻžāϗ⧁āĻŖ āϏāύāĻžāĻ•ā§āϤāĻ•āϰāĻŖ āύāĻŋ⧟āĻ¨ā§āĻ¤ā§āϰāĻŖ āĻ•āϰāĻž āĻļ⧇āĻ–āĻž| [Trigger fruit quality detection from a sensor](../4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | | 19 | [āϖ⧁āϚāϰāĻžāĻĒāĻ°ā§āϝāĻžā§Ÿ](../5-retail) | Train a stock detector | āϕ⧋āύāĻ“ āĻĻā§‹āĻ•āĻžāύ⧇ āĻ¸ā§āϟāĻ• āĻ—āĻŖāύāĻž āĻ•āϰāϤ⧇ āĻ¸ā§āϟāĻ• āĻĄāĻŋāĻŸā§‡āĻ•ā§āϟāϰāϕ⧇ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĻ⧇āĻ“āϝāĻŧāĻžāϰ āϜāĻ¨ā§āϝ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āϏāύāĻžāĻ•ā§āϤāĻ•āϰāĻŖ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝāĻžāϝāĻŧ āϤāĻž āĻļ⧇āĻ–āĻž | [Train a stock detector](../5-retail/lessons/1-train-stock-detector/README.md) | | 20 | [āϖ⧁āϚāϰāĻžāĻĒāĻ°ā§āϝāĻžā§Ÿ](../5-retail) | Check stock from an IoT device | āϕ⧋āύ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āϏāύāĻžāĻ•ā§āϤāĻ•āϰāĻŖ āĻŽāĻĄā§‡āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāχāĻ“āϟāĻŋ āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨ⧇āϕ⧇ āĻ¸ā§āϟāĻ• āĻĒāĻ°ā§āϝāĻŦ⧇āĻ•ā§āώāĻŖ āĻ•āϰāĻž āĻļ⧇āĻ–āĻž | [Check stock from an IoT device](../5-retail/lessons/2-check-stock-device/README.md) | @@ -112,10 +114,13 @@ npm i npm run convert ``` +### āĻ¸ā§āϞāĻžāχāĻĄ + +āĻ•āĻŋāϛ⧁ āĻ•āĻŋāϛ⧁ āϞ⧇āϏāύ⧇āϰ āĻ¸ā§āϞāĻžāχāĻĄ āĻĄā§‡āĻ•, āĻāĻ–āĻžāύ⧇ [slides](./slides) āĻĢā§‹āĻ˛ā§āĻĄāĻžāϰ⧇ āĻ°ā§Ÿā§‡āϛ⧇āĨ¤ ## āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ! -āĻ…āύ⧁āĻŦāĻžāĻĻ⧇āϰ āĻ•āĻžāϜ āĻ•āϰ⧇ āĻāχ āĻ•āĻžāϰāĻŋāĻ•ā§āϝ⧁āϞāĻžāĻŽā§‡ āĻ…āĻŦāĻĻāĻžāύ āĻ•āϰāϤ⧇ āϚāĻžāύ? āϤāĻžāĻšāϞ⧇ āĻ…āύ⧁āĻ—ā§āϰāĻš āĻ•āϰ⧇ āφāĻŽāĻžāĻĻ⧇āϰ [āĻ…āύ⧁āĻŦāĻžāĻĻ āĻ—āĻžāχāĻĄāϞāĻžāχāύ](translations/TRANSLATIONS.bn.md) āĻĒā§œā§‡ , āϝ⧇āϕ⧋āύ āĻāĻ•āϟāĻŋ [Translation Issue](https://github.com/microsoft/IoT-For-Beginners/issues?q=is%3Aissue+is%3Aopen+label%3Atranslation) āĻ āχāύāĻĒ⧁āϟ āĻĻā§‡ā§ŸāĻžāϰ āĻ…āύ⧁āϰ⧋āϧ āĻ•āϰāĻž āĻšāϞ⧋āĨ¤ āϝāĻĻāĻŋ āϕ⧋āύ āύāϤ⧁āύ āĻ­āĻžāώāĻžāϝāĻŧ āĻ…āύ⧁āĻŦāĻžāĻĻ āĻ•āϰāϤ⧇ āϕ⧇āω āφāĻ—ā§āϰāĻšā§€ āĻšā§Ÿ, āϤāĻŦ⧇ āĻŸā§āĻ°ā§āϝāĻžāĻ•āĻŋāĻ‚āϝāĻŧ⧇āϰ āϜāĻ¨ā§āϝ āĻĻāϝāĻŧāĻž āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ Issue āϏāĻžāĻŦāĻŽāĻŋāϟ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ +āĻ…āύ⧁āĻŦāĻžāĻĻ⧇āϰ āĻ•āĻžāϜ āĻ•āϰ⧇ āĻāχ āĻ•āĻžāϰāĻŋāĻ•ā§āϝ⧁āϞāĻžāĻŽā§‡ āĻ…āĻŦāĻĻāĻžāύ āĻ•āϰāϤ⧇ āϚāĻžāύ? āϤāĻžāĻšāϞ⧇ āĻ…āύ⧁āĻ—ā§āϰāĻš āĻ•āϰ⧇ āφāĻŽāĻžāĻĻ⧇āϰ [āĻ…āύ⧁āĻŦāĻžāĻĻ āĻ—āĻžāχāĻĄāϞāĻžāχāύ](TRANSLATIONS.md) āĻĒā§œā§‡ , āϝ⧇āϕ⧋āύ āĻāĻ•āϟāĻŋ [Translation Issue](https://github.com/microsoft/IoT-For-Beginners/issues?q=is%3Aissue+is%3Aopen+label%3Atranslation) āĻ āχāύāĻĒ⧁āϟ āĻĻā§‡ā§ŸāĻžāϰ āĻ…āύ⧁āϰ⧋āϧ āĻ•āϰāĻž āĻšāϞ⧋āĨ¤ āϝāĻĻāĻŋ āϕ⧋āύ āύāϤ⧁āύ āĻ­āĻžāώāĻžāϝāĻŧ āĻ…āύ⧁āĻŦāĻžāĻĻ āĻ•āϰāϤ⧇ āϕ⧇āω āφāĻ—ā§āϰāĻšā§€ āĻšā§Ÿ, āϤāĻŦ⧇ āĻŸā§āĻ°ā§āϝāĻžāĻ•āĻŋāĻ‚āϝāĻŧ⧇āϰ āϜāĻ¨ā§āϝ āĻĻāϝāĻŧāĻž āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ Issue āϏāĻžāĻŦāĻŽāĻŋāϟ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ ## āĻ…āĻ¨ā§āϝ āĻĒāĻžāĻ ā§āϝāĻ•ā§āϰāĻŽ āϏāĻŽā§‚āĻš @@ -123,6 +128,7 @@ npm run convert - [Web Dev for Beginners](https://aka.ms/webdev-beginners) - [ML for Beginners](https://aka.ms/ml-beginners) +- [Data Science for Beginners](https://aka.ms/datascience-beginners) ## āϚāĻŋāĻ¤ā§āϰ⧇āϰ Attributions From af65af95b217697c2aae1fddb2d3ec77f723bc38 Mon Sep 17 00:00:00 2001 From: Mirza Nihal Baig <53098259+nihalbaig0@users.noreply.github.com> Date: Tue, 19 Oct 2021 21:19:20 +0600 Subject: [PATCH 30/35] [BN Translation] Check Fruit from Device (#332) * [BN Translation] Check Fruit from Device * deleted dummy.md * check fruit from device changed based on review * removed the english sentence that was translated Co-authored-by: Jim Bennett --- .../translations/.dummy.md | 9 - .../translations/README.bn.md | 208 ++++++++++++++++++ 2 files changed, 208 insertions(+), 9 deletions(-) delete mode 100644 4-manufacturing/lessons/2-check-fruit-from-device/translations/.dummy.md create mode 100644 4-manufacturing/lessons/2-check-fruit-from-device/translations/README.bn.md diff --git a/4-manufacturing/lessons/2-check-fruit-from-device/translations/.dummy.md b/4-manufacturing/lessons/2-check-fruit-from-device/translations/.dummy.md deleted file mode 100644 index 6e7db247..00000000 --- a/4-manufacturing/lessons/2-check-fruit-from-device/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/4-manufacturing/lessons/2-check-fruit-from-device/translations/README.bn.md b/4-manufacturing/lessons/2-check-fruit-from-device/translations/README.bn.md new file mode 100644 index 00000000..bfa11bdf --- /dev/null +++ b/4-manufacturing/lessons/2-check-fruit-from-device/translations/README.bn.md @@ -0,0 +1,208 @@ +# IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĢāϞ āĻāϰ āĻŽāĻžāύ āϝāĻžāϚāĻžāχ + +![A sketchnote overview of this lesson](../../../../sketchnotes/lesson-16.jpg) + +> āĻ¸ā§āϕ⧇āϚāύ⧋āϟāϟāĻŋ āϤ⧈āϰ⧀ āĻ•āϰ⧇āϛ⧇āύ [Nitya Narasimhan](https://github.com/nitya)āĨ¤ āĻŦ⧜ āϏāĻ‚āĻ¸ā§āĻ•āϰāϪ⧇ āĻĻ⧇āĻ–āĻžāϰ āϜāĻ¨ā§āϝ āĻ›āĻŦāĻŋāϟāĻŋāϤ⧇ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ + +## āϞ⧇āĻ•āϚāĻžāϰ-āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āϕ⧁āχāϜ + +[āϞ⧇āĻ•āϚāĻžāϰ-āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āϕ⧁āχāϜ](https://brave-island-0b7c7f50f.azurestaticapps.net/quiz/31) + +## āϏ⧂āϚāύāĻž + +āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āϞ⧇āϏāύ āĻ āφāĻŽāϰāĻž āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ āύāĻŋā§Ÿā§‡ āϜāĻžāύāϞāĻžāĻŽ, āĻāĻŦāĻ‚ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āϤāĻžāĻĻ⧇āϰ train āĻ•āϰāĻž āϝāĻžā§Ÿ āĻ­āĻžāϞ āĻāĻŦāĻ‚ āĻ–āĻžāϰāĻžāĻĒ āĻĢāϞ āϏāύāĻžāĻ•ā§āϤ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝāĨ¤ āĻāχ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ āϟāĻžāϕ⧇ IoT āĻāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āφāĻŽāĻžāĻĻ⧇āϰāϕ⧇ āϕ⧋āύ⧋ āϧāϰāύ⧇āϰ āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āĻĻāĻŋā§Ÿā§‡ āχāĻŽā§‡āϜ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āĻāĻŦāĻ‚ āĻāχ āχāĻŽā§‡āϜ āϟāĻžāϕ⧇ āĻ•ā§āϞāĻžāωāĻĄ āĻ āĻĒāĻžāĻ āĻžāϤ⧇ āĻšāĻŦ⧇āĨ¤ + + +āĻāχ āϞ⧇āϏāύ āĻ āφāĻŽāϰāĻž āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āϏ⧇āĻ¨ā§āϏāϰ āύāĻŋā§Ÿā§‡ āϜāĻžāύāĻŦā§‹ , āĻāĻŦāĻ‚ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻāϗ⧁āϞ⧋āϕ⧇ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻāϰ āϏāĻžāĻĨ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āχāĻŽā§‡āϜ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰāϤ⧇ āĻšā§ŸāĨ¤ āφāĻŽāϰāĻž āφāϰ⧋ āϜāĻžāύāĻŦā§‹ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰāϟāĻžāϕ⧇ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨ⧇āϕ⧇ āĻ•āϞ āĻ•āϰāϤ⧇ āĻšā§ŸāĨ¤ + +āĻāχ āϞ⧇āϏāύ āĻ āφāĻŽāϰāĻž āĻ•āĻ­āĻžāϰ āĻ•āϰāĻŦā§‹āσ + +* [āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āϏ⧇āĻ¨ā§āϏāϰ](#āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž-āϏ⧇āĻ¨ā§āϏāϰ) +* [IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āχāĻŽā§‡āϜ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰāĻž](#IoT-āĻĄāĻŋāĻ­āĻžāχāϏ-āĻŦā§āϝāĻžāĻŦāĻšāĻžāϰ-āĻ•āϰ⧇-āĻāĻ•āϟāĻŋ-āχāĻŽā§‡āϜ-āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ-āĻ•āϰāĻž) +* [āφāĻŽāĻžāĻĻ⧇āϰ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ āĻĒāĻžāĻŦāϞāĻŋāĻļ āĻ•āϰāĻŋ](#āφāĻŽāĻžāĻĻ⧇āϰ-āχāĻŽā§‡āϜ-āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ-āĻĒāĻžāĻŦāϞāĻŋāĻļ-āĻ•āϰāĻŋ) +* [IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨ⧇āϕ⧇ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāχ āĻ•āϰāĻž](#IoT-āĻĄāĻŋāĻ­āĻžāχāϏ-āĻĨ⧇āϕ⧇-āχāĻŽā§‡āϜ-āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāχ-āĻ•āϰāĻž) +* [Model āωāĻ¨ā§āύāϤ āĻ•āϰāĻž](#Model-āωāĻ¨ā§āύāϤ-āĻ•āϰāĻž) + + + +## āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āϏ⧇āĻ¨ā§āϏāϰ + +āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āϏ⧇āĻ¨ā§āϏāϰ, āϤāĻžāϰ āύāĻžāĻŽā§‡āϰ āĻŽāϤāχ āĻāĻŽāύ āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āϝāĻž IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻāϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāύ⧇āĻ•ā§āϟ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ āĻāϗ⧁āϞ⧋ āĻ¸ā§āĻĨāĻŋāϰāϚāĻŋāĻ¤ā§āϰ āĻ…āĻĨāĻŦāĻž āĻ¸ā§āĻŸā§āϰāĻŋāĻŽāĻŋāĻ‚ āĻ­āĻŋāĻĄāĻŋāĻ“ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇, āĻ•āĻŋāϛ⧁ āĻĄāĻŋāĻ­āĻžāχāϏ āϗ⧁āϞ⧋ āĻŽā§‚āϞ āχāĻŽā§‡āϜ āĻĄāĻžāϟāĻž āĻĢ⧇āϰāϤ āĻĒāĻžāĻ āĻžāχ , āĻŦāĻžāĻ•āĻŋ āϗ⧁āϞ⧋ āχāĻŽā§‡āϜ āĻĄāĻžāϟāĻž āĻ•āĻŽāĻĒā§āϰ⧇āϏ āĻ•āϰ⧇ JPEG āĻ…āĻĨāĻŦāĻž PNG āϟāĻžāχāĻĒ āĻāϰ āχāĻŽā§‡āϜ āĻĢāĻžāχāϞ āĻŦāĻžāύāĻžāĻŦ⧇āĨ¤ āϏāĻžāϧāĻžāϰāĻŖāϤ āϝ⧇ āĻ•āĻžāĻŽā§‡āϰāĻž āϗ⧁āϞ⧋ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āϗ⧁āϞ⧋āϰ āϏāĻžāĻĨ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšā§Ÿ āφāĻŽāϰāĻž āϝ⧇āϗ⧁āϞ⧋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ…āĻ­ā§āϝāĻ¸ā§āϤ āϏ⧇āϗ⧁āϞ⧋ āĻĨ⧇āϕ⧇ āĻ…āύ⧇āĻ• āϛ⧋āϟ āϏāĻžāχāϜ āĻāϰ āĻāĻŦāĻ‚ āĻ•āĻŽ āϰ⧇āĻœā§‹āϞāĻŋāωāĻļāĻžāύ āĻāϰ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāĻŽāϰāĻž āĻšāĻžāχ āϰ⧇āĻœā§‹āϞāĻŋāωāĻļāĻžāύ āĻāϰ āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āύāĻŋāϤ⧇ āĻĒāĻžāϰāĻŋ āϝ⧇āϗ⧁āϞ⧋ āφāϧ⧁āύāĻŋāĻ• āĻĢā§‹āύ āϗ⧁āϞāĻžāϰ āϏāĻžāĻĨ⧇ āĻŸā§‡āĻ•ā§āĻ•āĻž āĻĻā§‡ā§ŸāĨ¤ āφāĻŽāϰāĻž āϏāĻŦ āϧāϰāύ⧇āϰ āχāĻ¨ā§āϟāĻžāϰāĻšā§‡āĻžā§āĻœā§‡āĻŦāϞ āϞ⧇āĻ¨ā§āϏ , āĻ•ā§Ÿā§‡āĻ•āϟāĻž āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āϏ⧇āϟāĻžāĻĒ , āχāύāĻĢā§āϰāĻžāϰ⧇āĻĄ āĻĨāĻžāĻ°ā§āĻŽāĻžāϞ āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āĻ…āĻĨāĻŦāĻž āχāωāĻ­āĻŋ āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āύāĻŋāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ + +![The light from a scene passes through a lens and is focused on a CMOS sensor](../../../../images/cmos-sensor.png) + + +āĻŦ⧇āĻļāĻŋāϰāĻ­āĻžāĻ— āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āϏ⧇āĻ¨ā§āϏāϰ āχāĻŽā§‡āϜ āϏ⧇āĻ¨ā§āϏāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϝ⧇āĻ–āĻžāύ⧇ āĻĒā§āϰāĻ¤ā§āϝ⧇āĻ• āĻĒāĻŋāĻ•ā§āϏ⧇āϞ āĻšāϞ āĻĢāĻŸā§‹āĻĄāĻžā§Ÿā§‹āĻĄāĨ¤ āĻāĻ•āϟāĻž āϞ⧇āĻ¨ā§āϏ āχāĻŽā§‡āϜ āϏ⧇āĻ¨ā§āϏāϰ āĻāϰ āωāĻĒāϰ āχāĻŽā§‡āϜ āϟāĻžāϕ⧇ āĻĢā§‹āĻ•āĻžāϏ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻšāĻžāϜāĻžāϰ āĻ…āĻĨāĻŦāĻž āϞāĻ•ā§āώ āϞāĻ•ā§āώ āĻĢāĻŸā§‹āĻĄāĻžā§Ÿā§‹āĻĄāĨ¤ āĻĒā§āϰāĻ¤ā§āϝ⧇āϕ⧇āϰ āωāĻĒāϰ āĻĒāϰāĻž āφāϞ⧋ āĻĄāĻŋāĻŸā§‡āĻ•ā§āϟ āĻ•āϰ⧇ , āĻāĻŦāĻ‚ āĻĒāĻŋāĻ•ā§āϏ⧇āϞ āĻĄāĻžāϟāĻž āĻšāĻŋāϏāĻžāĻŦ⧇ āϰ⧇āĻ•āĻ°ā§āĻĄ āĻ•āϰ⧇āĨ¤ + + + +> 💁 āϞ⧇āĻ¨ā§āϏ āχāĻŽā§‡āϜ āϕ⧇ āωāĻ˛ā§āϟāĻžā§Ÿ, āĻĒāϰ⧇ āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āϏ⧇āĻ¨ā§āϏāϰ āφāĻŦāĻžāϰ āĻ āĻŋāĻ• āĻ­āĻžāĻŦ⧇ āχāĻŽā§‡āϜ āϟāĻžāϕ⧇ āωāĻ˛ā§āϟāĻžā§ŸāĨ¤ āĻ āĻŋāĻ• āĻāĻ•āχ āϰāĻ•āĻŽ āφāĻŽāĻžāĻĻ⧇āϰ āĻšā§‹āϖ⧇ āĻšā§Ÿ - āφāĻŽāϰāĻž āϝāĻž āĻĻ⧇āĻ–āĻŋ āϤāĻž āĻšā§‹āϖ⧇āϰ āĻĒāĻŋāĻ›āύ⧇ +āωāĻ˛ā§āĻŸā§‹ āĻ­āĻžāĻŦ⧇ āĻĄāĻŋāĻŸā§‡āĻ•ā§āϟ āĻ•āϰ⧇ āĻāĻŦ⧁āĻ‚ āĻŦā§āϰ⧇āύ āϏ⧇āϟāĻžāϕ⧇ āĻ āĻŋāĻ• āĻ•āϰ⧇āĨ¤ + + + +> 🎓 āχāĻŽā§‡āϜ āϏ⧇āĻ¨ā§āϏāϰāϟāĻž āĻāĻ•āϟāĻŋāĻ­-āĻĒāĻŋāĻ•ā§āϏ⧇āϞ āϏ⧇āĻ¨ā§āϏāϰ (APS) āĻšāĻŋāϏ⧇āĻŦ⧇ āĻĒāϰāĻŋāϚāĻŋāϤ, āĻāĻŦāĻ‚ āϏāĻŦāĻšā§‡ā§Ÿā§‡ āϜāύāĻĒā§āϰāĻŋāϝāĻŧ āϟāĻžāχāĻĒ āĻāϰ APS āĻšāϞ āĻ•āĻŽāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āϟāĻžāϰāĻŋ āĻŽā§‡āϟāĻžāϞ-āĻ…āĻ•ā§āϏāĻžāχāĻĄ āϏ⧇āĻŽāĻŋāĻ•āĻ¨ā§āĻĄāĻžāĻ•ā§āϟāϰ āϏ⧇āĻ¨ā§āϏāϰ, āĻ…āĻĨāĻŦāĻž CMOSāĨ¤ āφāĻŽāϰāĻž āĻļ⧁āύ⧇ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰāĻŋ āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āϏ⧇āĻ¨ā§āϏāϰ āĻ CMOS āϏ⧇āĻ¨ā§āϏāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ āϟāĻžāĻ°ā§āĻŽ āϟāĻžāĨ¤ + + + + +āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āϏ⧇āĻ¨ā§āϏāϰ āĻšāϞ āĻĄāĻŋāϜāĻŋāϟāĻžāϞ āϏ⧇āĻ¨ā§āϏāϰ , āχāĻŽā§‡āϜ āĻĄāĻžāϟāĻž āϕ⧇ āĻĄāĻŋāϜāĻŋāϟāĻžāϞ āĻĄāĻžāϟāĻž āĻšāĻŋāϏ⧇āĻŦ⧇ āĻĒāĻžāĻ āĻžā§Ÿ, āϏāĻžāϧāĻžāϰāĻŖāϤ āϝ⧇ āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋ āĻ•āĻŽāĻŋāωāύāĻŋāϕ⧇āĻļāύ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇ āϤāĻžāϰ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āύāĻŋā§Ÿā§‡, āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āϗ⧁āϞ⧋ āĻ•āĻžāύ⧇āĻ•ā§āϟ āĻ•āϰ⧇ SPI āĻāϰ āĻŽāϤ āĻĒā§āϰ⧋āϟāĻ•āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϝāĻž āϤāĻžāĻĻ⧇āϰ āĻŦ⧜ āĻĒāϰāĻŋāĻŽāĻžāϪ⧇ āĻĄāĻžāϟāĻž āĻĒāĻžāĻ āĻžāϤ⧇ āĻ…āύ⧁āĻŽā§‹āĻĻāύ āĻĻā§‡ā§Ÿ - āχāĻŽā§‡āϜ āϗ⧁āϞ⧋ temperature āϏ⧇āĻ¨ā§āϏāϰ āĻāϰ āĻŽāϤ āϏ⧇āĻ¨ā§āϏāϰ āĻĨ⧇āϕ⧇ āĻĒāĻžāĻ“ā§ŸāĻž āϏāĻŋāĻ‚āϗ⧇āϞ āύāĻžāĻŽā§āĻŦāĻžāϰ āĻĨ⧇āϕ⧇ āϝāĻĨ⧇āĻˇā§āϟ āĻĒāϰāĻŋāĻŽāĻžāϪ⧇ āĻŦ⧜āĨ¤ + + +✅ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āϗ⧁āϞ⧋āϰ āχāĻŽā§‡āϜ āϏāĻžāχāϜ āĻāϰ āϏ⧀āĻŽāĻžāĻŦāĻĻā§āϧāϤāĻž āĻ•āĻŋ āĻ•āĻŋ? āϏ⧀āĻŽāĻžāĻŦāĻĻā§āϧāϤāĻžāϗ⧁āϞ⧋ āϚāĻŋāĻ¨ā§āϤāĻž āĻ•āϰāĻŋ āĻŦāĻŋāĻļ⧇āώ āĻ•āϰ⧇ āĻŽāĻžāχāĻ•ā§āϰ⧋āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞāĻžāϰ āĻšāĻžāĻ°ā§āĻĄāĻ“ā§ŸāĻžāϰ āĻāϰ āωāĻĒāϰāĨ¤ + + + +## IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āχāĻŽā§‡āϜ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰāĻž + +āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻāĻŦ⧁āĻ‚ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāχ āĻ•āϰāϤ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ + +### āĻ•āĻžāϜ - IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āχāĻŽā§‡āϜ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰāĻž + +āύāĻŋāĻŽā§āύ⧇āϰ āϕ⧋āύ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻžāϏāĻ™ā§āĻ—āĻŋāĻ• āĻ—āĻžāχāĻĄ āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āχāĻŽā§‡āϜ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰāĻŋāσ + + +* [Arduino - Wio Terminal](wio-terminal-camera.md) +* [Single-board computer - Raspberry Pi](pi-camera.md) +* [Single-board computer - Virtual device](virtual-device-camera.md) + + + +## āφāĻŽāĻžāĻĻ⧇āϰ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ āĻĒāĻžāĻŦāϞāĻŋāĻļ āĻ•āϰāĻŋ + +āφāĻŽāϰāĻž āĻļ⧇āώ āϞ⧇āϏāύ āĻ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ āĻŸā§āϰ⧇āύ āĻ•āϰ⧇āĻ›āĻŋāϞāĻžāĻŽāĨ¤ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻāϟāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āφāϗ⧇, āφāĻŽāĻžāĻĻ⧇āϰ model āϤāĻž āĻĒāĻžāĻŦāϞāĻŋāĻļ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ + + +### Model Iteration + +āϝāĻ–āύ āφāĻŽāĻžāĻĻ⧇āϰ model āĻļ⧇āώ āϞ⧇āϏāύ āĻ āĻŸā§āϰ⧇āύ āĻšāĻšā§āĻ›āĻŋāϞ⧋, āφāĻŽāϰāĻž āĻšā§ŸāϤ āĻ–ā§‡ā§ŸāĻžāϞ āĻ•āϰāĻ›āĻŋāϞāĻžāĻŽ āϝ⧇ **Performance** āĻŸā§āϝāĻžāĻŦ āϏāĻžāχāĻĄ āĻ Iterationāϗ⧁āϞ⧋ āĻĻ⧇āĻ–āĻžāϝāĻŧāĨ¤ āϝāĻ–āύ āφāĻŽāϰāĻž āĻĒā§āϰāĻĨāĻŽ model āϟāĻž āĻŸā§āϰ⧇āύ āĻ•āϰāĻŋ āϤāĻ–āύ āφāĻŽāϰāĻž āĻĻ⧇āϖ⧇ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰāĻŋ *Iteration 1* āĻŸā§āϰ⧇āχāύāĻŋāĻ‚ āĻāĨ¤ āϝāĻ–āύ āφāĻŽāϰāĻž model āϟāĻžāϕ⧇ āĻĒā§āϰ⧇āĻĄāĻŋāĻ•āĻļāύ āχāĻŽā§‡āϜ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāϰ⧋ āωāĻ¨ā§āύāϤ āĻ•āϰāĻŋ, āϤāĻ–āύ āφāĻŽāϰāĻž āĻĻ⧇āϖ⧇ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰāĻŋ *Iteration 2* āĻŸā§āϰ⧇āχāύāĻŋāĻ‚ āĻāĨ¤ + +āĻĒā§āϰāϤ⧇āĻ•āĻŦāĻžāϰ āφāĻŽāϰāĻž āϝāĻ–āύ model āϟāĻžāϕ⧇ āĻŸā§āϰ⧇āχāύ āĻ•āϰāĻŋ, āφāĻŽāϰāĻž āύāϤ⧁āύ Iteration āĻĒāĻžāχāĨ¤ āĻāĻ­āĻžāĻŦ⧇ āφāĻŽāϰāĻž āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻĄāĻžāϟāĻžāϏ⧇āϟ āĻāϰ āωāĻĒāϰ āĻŸā§āϰ⧇āχāύ āĻ•āϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ model āĻāϰ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻ­āĻžāĻ°ā§āϏāύ āĻŸā§āĻ°ā§āϝāĻžāĻ• āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āϝāĻ–āύ āφāĻŽāϰāĻž **Quick Test** āĻ•āϰāĻŋ, āĻāĻ–āĻžāύ⧇ āφāĻŽāϰāĻž Iteration āϏāĻŋāϞ⧇āĻ•ā§āϟ āĻ•āϰāĻžāϰ āĻāĻ•āϟāĻŋ āĻĄā§āϰāĻĒāĻĄāĻžāωāύ āĻŽā§‡āύ⧁ āĻĒāĻžāχ, āϝ⧇āύ āφāĻŽāϰāĻž āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ Iteration āĻāϰ āϰ⧇āϜāĻžāĻ˛ā§āϟ āϤ⧁āϞāύāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ + +āϝāĻ–āύ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ Iteration āύāĻŋā§Ÿā§‡ āϏāĻ¨ā§āϤ⧁āĻˇā§āϟ āĻšāχ, āφāĻŽāϰāĻž āĻāϟāĻžāϕ⧇ āĻĒāĻžāĻŦāϞāĻŋāĻļ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ āĻāĻ•ā§āϏāϟāĻžāĻ°ā§āύāĻžāϞ āĻāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āϏāĻšāϜāϞāĻ­ā§āϝ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝāĨ¤ āĻāĻ­āĻžāĻŦ⧇ āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āĻĄāĻŋāĻ­āĻžāχāϏ āĻĻāĻŋā§Ÿā§‡ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻāĻ•āϟāĻŋ āĻĒāĻžāĻŦāϞāĻŋāĻ• āĻ­āĻžāĻ°ā§āϏāύ āĻĒ⧇āϤ⧇ āĻĒāĻžāϰāĻŋ, āĻĒāϰ⧇ āφāϰ⧋ āύāϤ⧁āύ āĻ•āĻŋāϛ⧁ Iteration āĻāϰ āωāĻĒāϰ āύāϤ⧁āύ āĻ­āĻžāĻ°ā§āϏāύ āύāĻŋā§Ÿā§‡ āĻ•āĻžāϜ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ, āĻĒāϰ⧇ āϝāĻ–āύ āφāĻŽāϰāĻž āĻāϟāĻž āύāĻŋā§Ÿā§‡ āϏāĻ¨ā§āϤ⧁āĻˇā§āϟ āĻšāĻŦ āϤāĻ–āύ āĻāϟāĻž āĻĒāĻžāĻŦāϞāĻŋāĻļ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ + + + + +### āĻ•āĻžāϜ - Iteration āĻĒāĻžāĻŦāϞāĻŋāĻļ āĻ•āϰāĻž + + +Iteration āĻšāϞ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāϏāύ āĻĒā§‹āĻ°ā§āϟāĻžāϞ āĨ¤ + + + +1. [CustomVision.ai](https://customvision.ai) āϤ⧇ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāϏāύ āĻĒā§‹āĻ°ā§āϟāĻžāϞ āϞāĻžā§āϚ āĻ•āϰāĻŋ āĻāĻŦāĻ‚ āϏāĻžāχāύ āχāύ āĻ•āϰāĻŋ āϝāĻĻāĻŋ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇ āĻāϟāĻž āϖ⧁āϞ⧇ āύāĻž āĻĨāĻžāĻ•āĻŋāĨ¤ āĻĒāϰ⧇ āφāĻŽāĻžāĻĻ⧇āϰ `fruit-quality-detector` āĻĒā§āϰ⧋āĻœā§‡āĻ•ā§āϟ āϖ⧁āϞāĻŋāĨ¤ + + + +1. āωāĻĒāϰ⧇āϰ āĻ…āĻĒāĻļāύ āĻĨ⧇āϕ⧇ **Performance** āĻŸā§āϝāĻžāĻŦ āϏāĻŋāϞ⧇āĻ•ā§āϟ āĻ•āϰāĻŋāĨ¤ + + +1. āϏāĻžāχāĻĄ āĻāϰ *Iterations* āϞāĻŋāĻ¸ā§āϟ āĻĨ⧇āϕ⧇ āϏāĻ°ā§āĻŦāĻļ⧇āώ Iteration āϏāĻŋāϞ⧇āĻ•ā§āϟ āĻ•āϰāĻŋāĨ¤ + + + + +1. Iteration āĻāϰ āϜāĻ¨ā§āϝ **Publish** āĻŦāĻžāϟāύ āϏāĻŋāϞ⧇āĻ•ā§āϟ āĻ•āϰāĻŋāĨ¤ + + ![The publish button](../../../../images/custom-vision-publish-button.png) + + + + +1. *Publish Model* āĻĄāĻžā§ŸāϞāĻ— āĻ, *Prediction resource* āĻ āφāϗ⧇āϰ āϞ⧇āϏāύ āĻ āφāĻŽāĻžāĻĻ⧇āϰ āϤ⧈āϰāĻŋ āϰāĻŋāϏ⧋āĻ°ā§āϏ `fruit-quality-detector-prediction` āϏ⧇āϟ āĻ•āϰāĻŋāĨ¤ āύāĻžāĻŽ āĻšāĻŋāϏ⧇āĻŦ⧇ `Iteration2` āϰāĻžāĻ–āĻŋ, āĻāĻŦāĻ‚ **Publish** āĻŦāĻžāϟāύ āϏāĻŋāϞ⧇āĻ•ā§āϟ āĻ•āϰāĻŋāĨ¤ + + +1. āĻāĻ•āĻŦāĻžāϰ āĻĒāĻžāĻŦāϞāĻŋāĻļ āĻ•āϰāĻž āĻšāϞ⧇, **Prediction URL** āĻŦāĻžāϟāύ āϏāĻŋāϞ⧇āĻ•ā§āϟ āĻ•āϰāĻŋāĨ¤ āĻāϟāĻž āĻĒā§āϰ⧇āĻĄāĻŋāĻ•āĻļāύ āĻāĻĒāĻŋāφāχ āĻāϰ āĻĄāĻŋāĻŸā§‡āϞāϏ āĻĻ⧇āĻ–āĻžāĻŦ⧇, āĻāĻŦāĻ‚ āφāĻŽāĻžāĻĻ⧇āϰ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨ⧇āϕ⧇ model āϕ⧇ āĻ•āϞ āĻ•āϰāϤ⧇ āĻāϗ⧁āϞ⧋ āĻĻāϰāĻ•āĻžāϰ āĻšāĻŦ⧇āĨ¤ āύāĻŋāĻšā§‡āϰ āϏ⧇āĻ•āĻļāύ āϕ⧇ *If you have an image file* āĻšāĻŋāϏ⧇āĻŦ⧇ āϞ⧇āĻŦ⧇āϞ āĻ•āϰāĻž , āĻāĻŦāĻ‚ āĻāχ āĻĄāĻŋāĻŸā§‡āχāϞ āϗ⧁āϞ⧋ āφāĻŽāϰāĻž āϚāĻžāχāĨ¤ āĻĻ⧇āĻ–āĻžāύ⧋ URL āĻāϰ āĻ•āĻĒāĻŋ āĻ•āϰāĻŋ āϝ⧇āϟāĻž āĻ•āĻŋāϛ⧁ āϟāĻž āĻāϰāĻ•āĻŽ āĻšāĻŦ⧇āσ + + ```output + https://.api.cognitive.microsoft.com/customvision/v3.0/Prediction//classify/iterations/Iteration2/image + ``` + āϝ⧇āĻ–āĻžāύ⧇ `` āĻšāĻŦ⧇ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāϏāύ āĻĒā§‹āĻ°ā§āϟāĻžāϞ āϰāĻŋāϏ⧋āĻ°ā§āϏ āϤ⧈āϰāĻŋ āĻ•āϰāĻžāϰ āϏāĻŽā§Ÿ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϞ⧋āϕ⧇āĻļāύ, āĻāĻŦāĻ‚ `` āĻšāĻŦ⧇ āĻ…āύ⧇āĻ•āϗ⧁āϞ⧋ āϞ⧇āϟāĻžāϰ āĻāĻŦāĻ‚ āύāĻžāĻŽā§āĻŦāĻžāϰ āĻĻāĻŋā§Ÿā§‡ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āϞāĻŽā§āĻŦāĻž āφāχāĻĄāĻŋāĨ¤ + + āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ *Prediction-Key* āĻ­ā§āϝāĻžāϞ⧁ āĻāϰ āĻāĻ•āϟāĻŋ āĻ•āĻĒāĻŋ āύāĻŋāχāĨ¤ āĻāϟāĻž āĻāĻ•āϟāĻŋ āϏāĻŋāĻ•āĻŋāωāϰāĻĄ āĻ•āĻŋ āϝ⧇āϟāĻž model āϕ⧇ āĻ•āϞ āĻ•āϰāĻžāϰ āϏāĻŽā§Ÿ āĻĒāĻžāϏ āĻ•āϰāĻž āĻšā§ŸāĨ¤ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āϝ⧇ āφāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āϗ⧁āϞ⧋ āĻāχ āĻ•āĻŋ āĻĒāĻžāϏ āĻ•āϰāĻŦ⧇ āϤāĻžāĻĻ⧇āϰāϕ⧇ model āϟāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĻā§‡ā§ŸāĻž āĻšāĻŦ⧇, āĻ…āĻ¨ā§āϝ āϏāĻŦ āφāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āϕ⧇ āĻĒā§āϰāĻ¤ā§āϝāĻžāĻ–ā§āϝāĻžāύ āĻšāĻŦ⧇āĨ¤ + + ![The prediction API dialog showing the URL and key](../../../../images/custom-vision-prediction-key-endpoint.png) + + + +✅ āϝāĻ–āύ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ Iteration āĻĒāĻžāĻŦāϞāĻŋāĻļ āĻ•āϰāĻž āĻšā§Ÿ, āϤāĻ–āύ āĻāϟāĻžāϰ āĻ…āĻ¨ā§āϝ āύāĻžāĻŽ āĻĨāĻžāϕ⧇āĨ¤āύ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž Iteration āφāĻŽāϰāĻž āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻž āϝāĻžā§Ÿ āϏ⧇āϟāĻž āφāĻŽāϰāĻž āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āϚāĻŋāĻ¨ā§āϤāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ + +## IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨ⧇āϕ⧇ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāχ āĻ•āϰāĻž + +āφāĻŽāϰāĻž āĻāĻ–āύ āĻāχ āĻ•āĻžāύ⧇āĻ•āĻļāύ āĻĄāĻŋāĻŸā§‡āχāϞāϏ āϗ⧁āϞ⧋ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨ⧇āϕ⧇ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ āĻ•āϞ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ + +### āĻ•āĻžāϜ - āφāĻŽāĻžāĻĻ⧇āϰ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨ⧇āϕ⧇ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāχ āĻ•āϰāĻž + + +āĻĒā§āϰāĻžāϏāĻ™ā§āĻ—āĻŋāĻ• āĻ—āĻžāχāĻĄ āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻ•āĻžāϜ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āχāĻŽā§‡āϜ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰāĻŋāσ + +* [Arduino - Wio Terminal](wio-terminal-classify-image.md) +* [Single-board computer - Raspberry Pi/Virtual IoT device](single-board-computer-classify-image.md) + + +## Model āωāĻ¨ā§āύāϤ āĻ•āϰāĻž + + + +āφāĻŽāϰāĻž āϝ⧇āύ⧇ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰāĻŋ āϝ⧇, IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻāϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāύ⧇āĻ•ā§āĻŸā§‡āĻĄ āĻĨāĻžāĻ•āĻž āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āĻĨ⧇āϕ⧇ āφāĻŽāϰāĻž āφāĻļāĻžāύ⧁āϰ⧂āĻĒ āϰ⧇āϜāĻžāĻ˛ā§āϟ āύāĻžāĻ“ āĻĒ⧇āϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ āĻĨ⧇āϕ⧇ āφāĻĒāϞ⧋āĻĄ āĻ•āϰāĻž āχāĻŽā§‡āϜ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻĒā§āϰ⧇āĻĄāĻŋāĻ•āĻļāύ āϗ⧁āϞ⧋ āϏāĻŦāϏāĻŽā§Ÿ āϏāĻ āĻŋāĻ• āĻšā§Ÿ āύāĻžāĨ¤ āĻāϟāĻžāϰ āĻ•āĻžāϰāύ āĻšāϞ Model āϝ⧇ āĻĄāĻžāϟāĻžāϰ āωāĻĒāϰ āĻŸā§āϰ⧇āχāύ āĻ•āϰāĻž āĻšā§Ÿā§‡āϛ⧇ āϤāĻžāϰ āĻĨ⧇āϕ⧇ āĻ­āĻŋāĻ¨ā§āύ āĻĄāĻžāϟāĻž āĻĒā§āϰ⧇āĻĄāĻŋāĻ•āĻļāύ āĻāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāĨ¤ + + + +āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ āĻĨ⧇āϕ⧇ āϏāĻŦāĻšā§‡ā§Ÿā§‡ āĻ­āĻžāϞ āϰ⧇āϜāĻžāĻ˛ā§āϟ āĻāϰ āϜāĻ¨ā§āϝ, āφāĻŽāϰāĻž āĻĒā§āϰ⧇āĻĄāĻŋāĻ•āĻļāύ āĻāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āχāĻŽā§‡āϜ āĻāϰ āĻŽāϤ āϝāĻĨāĻžāϏāĻŽā§āĻ­āĻŦ āĻ…āύ⧁āϰ⧂āĻĒ āχāĻŽā§‡āϜ āωāĻĒāϰ āφāĻŽāĻžāĻĻ⧇āϰ model āĻŸā§āϰ⧇āχāύ āĻ•āϰāϤ⧇ āϚāĻžāĻŦā§‹āĨ¤ āωāĻĻāĻžāĻšāϰāĻŖ āĻ¸ā§āĻŦāϰ⧂āĻĒ, āφāĻŽāϰāĻž āϝāĻĻāĻŋ āĻŸā§āϰ⧇āχāύāĻŋāĻ‚ āĻāϰ āχāĻŽā§‡āϜ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻāϰ āϜāĻ¨ā§āϝ āĻĢā§‹āύ āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŋ, āϏ⧇āϟāĻžāϰ āχāĻŽā§‡āϜ āĻ•ā§‹ā§ŸāĻžāϞāĻŋāϟāĻŋ, āĻļāĻžāĻ°ā§āĻĒāύ⧇āϏ, āĻāĻŦāĻ‚ āĻ•āĻžāϞāĻžāϰ āĻāĻ•āϟ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻāϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāύ⧇āĻ•ā§āĻŸā§‡āĻĄ āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āĻĨ⧇āϕ⧇ āĻ­āĻŋāĻ¨ā§āύ āĻšāĻŦ⧇āĨ¤ + +![2 banana pictures, a low resolution one with poor lighting from an IoT device, and a high resolution one with good lighting from a phone](../../../../images/banana-picture-compare.png) + + + +āωāĻĒāϰ⧇āϰ āχāĻŽā§‡āϜ āĻ, āĻŦāĻžāĻŽā§‡āϰ āĻ•āϞāĻžāϰ āĻ›āĻŦāĻŋ āĻāĻ•āϟāĻŋ āϰāĻžāĻ¸ā§āĻĒāĻŦ⧇āϰāĻŋ āĻĒāĻžāχ āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āĻĨ⧇āϕ⧇ āĻ¨ā§‡ā§ŸāĻž āĻšā§Ÿā§‡āĻ›āĻŋāϞ, āĻĄāĻžāύ⧇āϰ āϟāĻž āĻāĻ•āχ āĻ•āϞāĻžāϰ āĻ›āĻŦāĻŋ āφāχāĻĢā§‹āύ āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āĻĨ⧇āϕ⧇ āĻ¨ā§‡ā§ŸāĻž āĻšā§Ÿā§‡āĻ›āĻŋāϞāĨ¤ āĻāĻ–āĻžāύ⧇āϰ āĻ•ā§‹ā§ŸāĻžāϞāĻŋāϟāĻŋāϰ āĻĻāĻŋāĻ• āĻĨ⧇āϕ⧇ āϞāĻ•ā§āώāĻŖā§€āϝāĻŧ āĻ­āĻŋāĻ¨ā§āύāϤāĻž āφāϛ⧇ - āφāχāĻĢā§‹āύ āĻāϰ āĻ›āĻŦāĻŋ āϟāĻž āĻļāĻžāĻ°ā§āĻĒāĻžāϰ, āωāĻœā§āĻœā§āĻŦāϞ āĻ•āĻžāϞāĻžāϰ āϏāĻš āĻāĻŦāĻ‚ āĻŦ⧇āĻļāĻŋ āĻ•āĻ¨ā§āĻŸā§āϰāĻžāĻ¸ā§āϟ āĻāϰāĨ¤ + + +✅ āφāĻŽāĻžāĻĻ⧇āϰ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻĻāĻŋā§Ÿā§‡ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰāĻž āχāĻŽā§‡āϜ āĻāϰ āϭ⧁āϞ āĻĒā§āϰ⧇āĻĄāĻŋāĻ•āĻļāύ āĻāϰ āϜāĻ¨ā§āϝ āφāϰ āĻ•āĻŋ āĻ•āĻŋ āĻ•āĻžāϰāύ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇? āĻāĻ•āϟāĻž IoT āĻĄāĻŋāĻ­āĻžāχāϏ āϝ⧇ āĻĒāϰāĻŋāĻŦ⧇āĻļ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāϤ⧇ āĻĒāĻžāϰ⧇ āϏ⧇āϟāĻž āύāĻŋā§Ÿā§‡ āϚāĻŋāĻ¨ā§āϤāĻž āĻ•āϰāĻŋ, āĻ•āĻŋ āĻ•āĻŋ āĻĢā§āϝāĻžāĻ•ā§āϟāϰ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰāĻž āχāĻŽā§‡āϜ āϕ⧇ āĻĒā§āϰāĻ­āĻžāĻŦāĻŋāϤ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ + +model āϕ⧇ āωāĻ¨ā§āύāϤ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ, āφāĻŽāϰāĻž IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨ⧇āϕ⧇ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰāĻž āχāĻŽā§‡āϜ āĻĻāĻŋā§Ÿā§‡ āϰāĻŋāĻŸā§āϰ⧇āχāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ + + +--- + +### āĻ•āĻžāϜ - model āωāĻ¨ā§āύāϤ āĻ•āϰāĻž + +1. āφāĻŽāĻžāĻĻ⧇āϰ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻĻāĻŋā§Ÿā§‡ āĻĒāĻžāĻ•āĻž āĻāĻŦāĻ‚ āĻ•āĻžāρāϚāĻž āĻāϰ āĻ•āĻŋāϛ⧁ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāχ āĻ•āϰāĻŋāĨ¤ + +1. āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāϏāύ āĻĒā§‹āĻ°ā§āϟāĻžāϞ āĻ, *Predictions* āĻŸā§āϝāĻžāĻŦ āĻāϰ āχāĻŽā§‡āϜ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϰāĻŋāĻŸā§āϰ⧇āχāύ āĻ•āϰāĻŋāĨ¤ + + > âš ī¸āφāĻŽāϰāĻž [āĻāχ āϏāĻŋāϰāĻŋāĻœā§‡āϰ ā§§āĻŽ āϞ⧇āϏāύ āĻĨ⧇āϕ⧇ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ retain āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĒā§āĻ°ā§Ÿā§‹āϜāĻ¨ā§€ā§Ÿ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāύāĻž](../1-train-fruit-detector/README.md#retrain-your-image-classifier) āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϰāĻŋ, āϝāĻĻāĻŋ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšā§ŸāĨ¤ + + +1. āϝāĻĻāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āχāĻŽā§‡āϜ āĻŸā§āϰ⧇āχāύāĻŋāĻ‚ āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āφāϏāϞ āχāĻŽā§‡āϜ āĻĨ⧇āϕ⧇ āĻĻ⧇āĻ–āϤ⧇ āĻ…āύ⧇āĻ• āĻ­āĻŋāĻ¨ā§āύ āĻšā§Ÿ, āφāĻŽāϰāĻž āφāϏāϞ āχāĻŽā§‡āϜ āϗ⧁āϞ⧋ *Training Images* āĻŸā§āϝāĻžāĻŦ āϏāĻŋāϞ⧇āĻ•ā§āϟ āĻ•āϰ⧇ āĻāĻŦāĻ‚ **Delete** āĻŦāĻžāϟāύ āϏāĻŋāϞ⧇āĻ•ā§āϟ āĻ•āϰ⧇ āĻĄāĻŋāϞāĻŋāϟ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āχāĻŽā§‡āϜ āϏāĻŋāϞ⧇āĻ•ā§āϟ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ, āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻžāĻ°ā§āϏāϰ āϤāĻž āĻāϰ āωāĻĒāϰ āĻŽā§āĻ­ āĻ•āϰāĻŋ āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āϟāĻŋāĻ• āφāϏāĻŦ⧇, āϟāĻŋāĻ• āϟāĻž āϏāĻŋāϞ⧇āĻ•ā§āϟ āĻ…āĻĨāĻŦāĻž āĻĄāĻŋāϏāĻŋāϞ⧇āĻ•ā§āϟ āĻ•āϰāĻŋ āχāĻŽā§‡āϜ āϏāĻŋāϞ⧇āĻ•ā§āϟ āĻ…āĻĨāĻŦāĻž āĻĄāĻŋāϏāĻŋāϞ⧇āĻ•ā§āϟ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝāĨ¤ + +1. āĻāĻ•āϟāĻŋ āύāϤ⧁āύ Iteration āĻŸā§āϰ⧇āχāύ āĻ•āϰāĻŋ āĻāĻŦāĻ‚ āωāĻĒāϰ⧇āϰ āϧāĻžāĻĒ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĒāĻžāĻŦāϞāĻŋāĻļ āĻ•āϰāĻŋāĨ¤ + +1. āφāĻŽāĻžāĻĻ⧇āϰ āϕ⧋āĻĄ āĻāϰ endpoint URL āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻŋ, āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāĻĒ āϤāĻž āĻĒ⧁āύāϰāĻžā§Ÿ āϰāĻžāύ āĻ•āϰāĻŋāĨ¤ + +1. āĻĒā§āϰ⧇āĻĄāĻŋāĻ•āĻļāύ āĻāϰ āϰ⧇āϏāĻžāĻ˛ā§āϟ āύāĻŋā§Ÿā§‡ āϏāĻ¨ā§āϤ⧁āĻˇā§āϟ āύāĻž āĻšāĻ“ā§ŸāĻž āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āĻāχ āϧāĻžāĻĒ āϗ⧁āϞ⧋ Iteration āĻ•āϰāĻŋāĨ¤ + +--- + + +## 🚀 āĻšā§āϝāĻžāϞ⧇āĻžā§āϜ + +āχāĻŽā§‡āϜ āĻāϰ āϰ⧇āĻœā§‹āϞāĻŋāωāĻļāύ āĻ…āĻĨāĻŦāĻž āφāϞ⧋ āĻĒā§āϰ⧇āĻĄāĻŋāĻ•āĻļāύ āϕ⧇ āĻ•āϤāϟ⧁āϕ⧁ āĻĒā§āϰāĻ­āĻžāĻŦāĻŋāϤ āĻ•āϰ⧇? + +āφāĻŽāĻžāĻĻ⧇āϰ āĻĄāĻŋāĻ­āĻžāχāϏ āĻāϰ āϕ⧋āĻĄ āĻ āχāĻŽā§‡āϜ āĻāϰ āϰ⧇āĻœā§‹āϞāĻŋāωāĻļāύ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰāĻŋ āĻāĻŦāĻ‚ āĻĻ⧇āĻ–āĻŋ āĻāϟāĻž āχāĻŽā§‡āϜ āĻāϰ āĻ•ā§‹ā§ŸāĻžāϞāĻŋāϟāĻŋ āϤ⧇ āϕ⧋āύ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āφāύ⧇ āĻ•āĻŋāύāĻžāĨ¤ āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ āφāϞ⧋ āĻšā§‡āĻžā§āϜ āĻ•āϰ⧇āĻ“ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰ⧇ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ + +āϝāĻĻāĻŋ āφāĻŽāϰāĻž āĻāχ āĻĒā§āϰ⧋āĻĄāĻžāĻ•āĻļāύ āĻĄāĻŋāĻ­āĻžāχāϏāϟāĻŋ āϕ⧋āύ āĻĢāĻžāĻ°ā§āĻŽ āĻ…āĻĨāĻŦāĻž āĻĢā§āϝāĻžāĻ•ā§āϟāϰāĻŋ āϤ⧇ āĻŦāĻŋāĻ•ā§āĻ°ā§Ÿā§‡āϰ āϜāĻ¨ā§āϝ āϤ⧈āϰ⧀ āĻ•āϰāĻŋ, āφāĻŽāϰāĻž āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ āϝ⧇ āĻāϟāĻž āϏāĻŦ āϏāĻŽā§Ÿ āϧāĻžāϰāĻžāĻŦāĻžāĻšāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻ­āĻžāϞ⧋ āĻĢāϞāĻžāĻĢāϞ āĻĻāĻŋāĻŦ⧇āĨ¤ + +## ## āϞ⧇āĻ•āϚāĻžāϰ-āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āϕ⧁āχāϜ + +[āϞ⧇āĻ•āϚāĻžāϰ-āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āϕ⧁āχāϜ](https://brave-island-0b7c7f50f.azurestaticapps.net/quiz/32) + +## āϰāĻŋāĻ­āĻŋāω āĻ“ āĻ¸ā§āĻŦ-āĻ…āĻ§ā§āϝ⧟āύ + +āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāϏāύ āĻŽāĻĄā§‡āϞ āĻĒā§‹āĻ°ā§āϟāĻžāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻŸā§āϰ⧇āχāύ āĻ•āϰ⧇āĻ›āĻŋāĨ¤ āĻāϟāĻž āχāĻŽā§‡āϜ āĻāϰ āϏāĻšāϜāϞāĻ­ā§āϝāϤāĻžāϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇ - āĻāĻŦāĻ‚ āĻŦāĻžāĻ¸ā§āϤāĻŦ āϜāĻ—āϤ⧇ āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āĻĄāĻŋāĻ­āĻžāχāϏ āĻāϰ āϏāĻžāĻĨ⧇ āĻŽā§āϝāĻžāϚ āĻ•āϰ⧇ āĻāĻŽāύ āĻŸā§āϰ⧇āχāύāĻŋāĻ‚ āĻĄāĻžāϟāĻž āĻšā§ŸāϤ āĻĒāĻžāĻŦā§‹ āύāĻžāĨ¤ āφāĻŽāϰāĻž āĻāϟāĻžāϰ āĻŦāĻĻāϞ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨ⧇āϕ⧇ āϏāϰāĻžāϏāϰāĻŋ āĻŸā§āϰ⧇āχāύāĻŋāĻ‚ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ āĻ•āϰāϤ⧇ āĻāĻĒāĻŋāφāχ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇, IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨ⧇āϕ⧇ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰāĻž āχāĻŽā§‡āϜ āĻĻāĻŋā§Ÿā§‡ āĻŽāĻĄā§‡āϞ āĻŸā§āϰ⧇āχāύ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝāĨ¤ + +* āĻŸā§āϰ⧇āχāύāĻŋāĻ‚ āĻāĻĒāĻŋāφāχ āĻāϰ āωāĻĒāϰ āĻĒ⧜⧁āύ [using the Custom Vision SDK quick start](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/quickstarts/image-classification?WT.mc_id=academic-17441-jabenn&tabs=visual-studio&pivots=programming-language-python) + +## āĻāϏāĻžāχāύāĻŽā§‡āĻ¨ā§āϟ + +[āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻŋāϕ⧇āĻļāύ āϰ⧇āϜāĻžāĻ˛ā§āĻŸā§‡āϰ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋ⧟āĻž āϜāĻžāύāĻžāύ⧋](../assignment.md) From 7eb0885953bd52cc6a767f61000afd0a07c4ee9a Mon Sep 17 00:00:00 2001 From: "Mohammad Iftekher (Iftu) Ebne Jalal" Date: Tue, 19 Oct 2021 21:20:10 +0600 Subject: [PATCH 31/35] [BN Translation] Fruit Detector on Edge (#329) * Create README.bn.md * Delete .dummy.md * Update README.bn.md * Create assignment.bn.md Co-authored-by: Jim Bennett --- .../translations/.dummy.md | 9 - .../translations/README.bn.md | 615 ++++++++++++++++++ .../translations/assignment.bn.md | 14 + 3 files changed, 629 insertions(+), 9 deletions(-) delete mode 100644 4-manufacturing/lessons/3-run-fruit-detector-edge/translations/.dummy.md create mode 100644 4-manufacturing/lessons/3-run-fruit-detector-edge/translations/README.bn.md create mode 100644 4-manufacturing/lessons/3-run-fruit-detector-edge/translations/assignment.bn.md diff --git a/4-manufacturing/lessons/3-run-fruit-detector-edge/translations/.dummy.md b/4-manufacturing/lessons/3-run-fruit-detector-edge/translations/.dummy.md deleted file mode 100644 index 6e7db247..00000000 --- a/4-manufacturing/lessons/3-run-fruit-detector-edge/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/4-manufacturing/lessons/3-run-fruit-detector-edge/translations/README.bn.md b/4-manufacturing/lessons/3-run-fruit-detector-edge/translations/README.bn.md new file mode 100644 index 00000000..fb6ab350 --- /dev/null +++ b/4-manufacturing/lessons/3-run-fruit-detector-edge/translations/README.bn.md @@ -0,0 +1,615 @@ +# Edge āĻ Fruit Detector āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰāĻž + +![A sketchnote overview of this lesson](../../../../sketchnotes/lesson-17.jpg) + +> āĻ¸ā§āϕ⧇āϚāύ⧋āϟāϟāĻŋ āϤ⧈āϰ⧀ āĻ•āϰ⧇āĻ›āĻŋ [Nitya Narasimhan](https://github.com/nitya)āĨ¤ āĻŦ⧜ āϏāĻ‚āĻ¸ā§āĻ•āϰāϪ⧇ āĻĻ⧇āĻ–āĻžāϰ āϜāĻ¨ā§āϝ āĻ›āĻŦāĻŋāϟāĻŋāϤ⧇ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ + +āĻāχ āĻ­āĻŋāĻĄāĻŋāĻ“āϟāĻŋ āφāχāĻ“āϟāĻŋ āĻĄāĻŋāĻ­āĻžāχāϏ⧇ āϚāϞāĻŽāĻžāύ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰāϗ⧁āϞāĻŋāϰ āĻāĻ•āϟāĻŋ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤ āĻŦāĻŋāĻŦāϰāĻŖ āĻĻ⧇āϝāĻŧ, āϝ⧇ āĻŦāĻŋāώāϝāĻŧāϟāĻŋ āĻāχ āĻĒāĻžāϠ⧇āχ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤāĨ¤ + +[![Custom Vision AI on Azure IoT Edge](https://img.youtube.com/vi/_K5fqGLO8us/0.jpg)](https://www.youtube.com/watch?v=_K5fqGLO8us) + +> đŸŽĨ āωāĻĒāϰ⧇āϰ āĻ›āĻŦāĻŋāϤ⧇ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰ⧇ āĻ­āĻŋāĻĄāĻŋāĻ“āϟāĻŋ āĻĻ⧇āϖ⧇ āύāĻŋāχ + +## āϞ⧇āĻ•āϚāĻžāϰ-āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āϕ⧁āχāϜ + +[āϞ⧇āĻ•āϚāĻžāϰ-āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āϕ⧁āχāϜ](https://brave-island-0b7c7f50f.azurestaticapps.net/quiz/33) + +## āϏ⧂āϚāύāĻž + +āĻ—āϤ āĻĒāĻžāϠ⧇ āφāĻŽāϰāĻž āĻĒāĻžāĻ•āĻž āĻāĻŦāĻ‚ āĻ•āĻžāρāϚāĻž āĻĢāϞ⧇āϰ āĻļā§āϰ⧇āĻŖāĻŋāĻŦāĻŋāĻ¨ā§āϝāĻžāϏ āĻ•āϰāϤ⧇ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĻ›āĻŋ, āχāĻ¨ā§āϟāĻžāϰāύ⧇āĻŸā§‡ āφāĻŽāĻžāĻĻ⧇āϰ āφāχāĻ“āϟāĻŋ āĻĄāĻŋāĻ­āĻžāχāϏ⧇ āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āĻĻā§āĻŦāĻžāϰāĻž āϧāĻžāϰāĻŖ āĻ•āϰāĻž āĻāĻ•āϟāĻŋ āĻ›āĻŦāĻŋ āĻ•ā§āϞāĻžāωāĻĄ āϏāĻžāĻ°ā§āĻ­āĻŋāϏ⧇ āĻĒāĻžāĻ āĻŋāϝāĻŧ⧇āĻ›āĻŋāĨ¤ āĻāχ āĻ•āĻžāϜāϗ⧁āϞāĻŋ āĻšāϤ⧇ āϏāĻŽāϝāĻŧ āύ⧇āϝāĻŧ, āĻ…āĻ°ā§āĻĨ āĻŦā§āϝāϝāĻŧ āĻšā§Ÿ āĻāĻŦāĻ‚ āφāĻŽāϰāĻž āϝ⧇ āϧāϰāϪ⧇āϰ āĻ›āĻŦāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻ›āĻŋ, āϤāĻžāϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇ āĻ—ā§‹āĻĒāύ⧀āϝāĻŧāϤāĻž āϏ⧁āĻ‚āĻ•ā§āϰāĻžāĻ¨ā§āϤ āĻŦāĻŋāĻˇā§Ÿā§‡āϰ āĻĒā§āϰāĻ­āĻžāĻŦ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ + +āĻāχ āĻĒāĻžāϠ⧇ āφāĻŽāϰāĻž āĻļāĻŋāĻ–āĻŦā§‹ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻŽā§‡āĻļāĻŋāύ āϞāĻžāĻ°ā§āύāĻŋāĻ‚ (āĻāĻŽāĻāϞ) āĻŽāĻĄā§‡āϞāϗ⧁āϞāĻŋ Edge āĻ āϚāĻžāϞāĻžāύ⧋ āϝāĻžāϝāĻŧ - āĻ•ā§āϞāĻžāωāĻĄā§‡āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āύāĻŋāĻœā§‡āϰ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āϕ⧇ āϚāϞāĻŽāĻžāύ āφāχāĻ“āϟāĻŋ āĻĄāĻŋāĻ­āĻžāχāϏ⧇āĨ¤ āφāĻŽāϰāĻž āĻ•ā§āϞāĻžāωāĻĄ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻŋāĻ‚ āĻŦāύāĻžāĻŽ Edge āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻŋāĻ‚ āĻāϰ āϏ⧁āĻŦāĻŋāϧāĻž āĻāĻŦāĻ‚ āĻ…āϏ⧁āĻŦāĻŋāϧāĻž āϏāĻŽā§āĻŦāĻ¨ā§āϧ⧇ āϜāĻžāύāĻŦā§‹, āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āφāĻŽāĻžāĻĻ⧇āϰ AI āĻŽāĻĄā§‡āϞāϕ⧇ Edge āĻ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻŦā§‹ āĻāĻŦāĻ‚ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āφāĻŽāĻžāĻĻ⧇āϰ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨ⧇āϕ⧇ āĻāϟāĻŋ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻ•āϰāĻŦā§‹ āϏ⧇āϟāĻŋāĻ“ āĻĻ⧇āĻ–āĻŦā§‹āĨ¤ + +āĻāχ āĻĒāĻžāϠ⧇ āφāĻŽāϰāĻž āĻļāĻŋāĻ–āĻŦā§‹ : + +* [Edge computing](#edge-computing) +* [Azure IoT Edge](#Azure-IoT-Edge) +* [IoT Edge device āϰ⧇āϜāĻŋāĻ¸ā§āϟāĻžāϰ āĻ•āϰāĻž](#IoT-Edge-device-āϰ⧇āϜāĻŋāĻ¸ā§āϟāĻžāϰ-āĻ•āϰāĻž) +* [IoT Edge device āϏ⧇āϟāĻžāĻĒ āĻ•āϰāĻž](#IoT-Edge-device-āϏ⧇āϟāĻžāĻĒ-āĻ•āϰāĻž) +* [āĻŽāĻĄā§‡āϞ āĻāĻ•ā§āϏāĻĒā§‹āĻ°ā§āϟ āĻ•āϰāĻž](#āĻŽāĻĄā§‡āϞ-āĻāĻ•ā§āϏāĻĒā§‹āĻ°ā§āϟ-āĻ•āϰāĻž) +* [āĻĄā§‡āĻĒā§āϞ⧟āĻŽā§‡āĻ¨ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āĻĒā§āϰāĻ¸ā§āϤ⧁āϤāĻ•āϰāĻŖ](#āĻĄā§‡āĻĒā§āϞ⧟āĻŽā§‡āĻ¨ā§āĻŸā§‡āϰ-āϜāĻ¨ā§āϝ-āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ-āĻĒā§āϰāĻ¸ā§āϤ⧁āϤāĻ•āϰāĻŖ) +* [āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āĻĄā§‡āĻĒā§āϞ⧟ āĻ•āϰāĻž](#āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ-āĻĄā§‡āĻĒā§āϞ⧟-āĻ•āϰāĻž) +* [āφāĻŽāĻžāĻĻ⧇āϰ IoT Edge device āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž](#āφāĻŽāĻžāĻĻ⧇āϰ-IoT-Edge-device-āĻŦā§āϝāĻŦāĻšāĻžāϰ-āĻ•āϰāĻž) + +## Edge computing + +Edge āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻŋāĻ‚āϝāĻŧ⧇āϰ āϧāĻžāϰāĻŖāĻž āϟāĻŋ āĻāĻŽāύ āϝ⧇ āϝ⧇āĻ–āĻžāύ⧇ āĻĄā§‡āϟāĻž āϤ⧈āϰ⧀ āĻŦāĻž āϝ⧇āĻ–āĻžāύ āĻĨ⧇āϕ⧇āχ āĻ—ā§ƒāĻšā§€āϤ āĻšā§Ÿ, āϏ⧇āĻ–āĻžāύāĻ•āĻžāϰ āĻ•āĻžāĻ›āĻžāĻ•āĻžāĻ›āĻŋ āĻĄā§‡āϟāĻž āĻĒā§āϰāϏ⧇āϏ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻžāĨ¤ āĻ•ā§āϞāĻžāωāĻĄā§‡ āĻāχ āĻĒā§āϰāϏ⧇āϏāĻŋāĻ‚ āĻāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇, āĻāϟāĻŋ āĻ•ā§āϞāĻžāωāĻĄā§‡āϰ Edge āĻ āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰāĻŋāϤ āĻšāϝāĻŧ - āϝ⧇āϟāĻŋ āĻ•āĻŋāύāĻž āφāĻŽāĻžāĻĻ⧇āϰ āĻ…āĻ­ā§āϝāĻ¨ā§āϤāϰ⧀āĻŖ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āĨ¤ + +![An architecture diagram showing internet services in the cloud and IoT devices on a local network](../../../../images/cloud-without-edge.png) + +āĻ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āĻĒāĻžāĻ āϗ⧁āϞāĻŋāϤ⧇ āφāĻŽāϰāĻž āĻļāĻŋāϖ⧇āĻ›āĻŋ āϕ⧀āĻ­āĻžāĻŦ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻžāϛ⧇āϰ āĻĄāĻŋāĻ­āĻžāχāϏāϗ⧁āϞāĻŋ āϤāĻĨā§āϝ āϏāĻ‚āĻ—ā§āϰāĻš āĻāĻŦāĻ‚ āĻ•ā§āϞāĻžāωāĻĄā§‡ āĻĄā§‡āϟāĻž āĻĒāĻžāĻ āĻžāύ⧋āϰ āϜāĻ¨ā§āϝ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ āĻ•āϰ⧇, āĻ•ā§āϞāĻžāωāĻĄā§‡ āϏāĻžāĻ°ā§āĻ­āĻžāϰāĻšā§€āύ āĻĢāĻžāĻ‚āĻļāύ āĻŦāĻž āĻāφāχ āĻŽāĻĄā§‡āϞ āϕ⧀āĻ­āĻžāĻŦ⧇ āϚāĻžāϞāĻžāύ⧋ āĻšāϝāĻŧāĨ¤ + +![An architecture diagram showing IoT devices on a local network connecting to edge devices, and those edge devices connect to the cloud](../../../../images/cloud-with-edge.png) + +Edge āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻŋāĻ‚ āĻ āĻŽā§‚āϞāϤ āĻ•āĻŋāϛ⧁ āĻ•ā§āϞāĻžāωāĻĄ āĻĒāϰāĻŋāώ⧇āĻŦāĻž āĻŦāĻž āϏāĻžāĻ°ā§āĻ­āĻŋāϏāϕ⧇ āĻ•ā§āϞāĻžāωāĻĄ āĻĨ⧇āϕ⧇ āϏāϰāĻŋāϝāĻŧ⧇ āĻāĻŦāĻ‚ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āϝ⧇ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āϕ⧇ āϚāϞāĻŽāĻžāύ āϏ⧇āχ āĻāĻ•āχ āύ⧇āϟāĻ“ā§ŸāĻžāĻ°ā§āϕ⧇āϰ āϕ⧋āύ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ⧇ āύāĻŋā§Ÿā§‡ āφāϏāĻžāĨ¤ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāϞ⧇āχ āĻ•ā§āϞāĻžāωāĻĄā§‡āϰ āϏāĻžāĻĨ⧇ āϝ⧋āĻ—āĻžāϝ⧋āĻ— āĻ•āϰāĻž āĻšāĻŦ⧇āĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āφāĻŽāϰāĻž āϕ⧋āύ āĻĢāϞ āĻĒāĻžāĻ•āĻž āĻ•āĻŋāύāĻž āϤāĻž āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ āĻ•āϰāϤ⧇ Edge āĻāϰ āĻĄāĻŋāĻ­āĻžāχāϏ⧇ āĻāφāχ āĻŽāĻĄā§‡āϞ āϚāĻžāϞāĻžāϤ⧇ āĻĒāĻžāϰāĻŋ āĻāĻŦāĻ‚ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖāϗ⧁āϞāĻŋ āĻ•ā§āϞāĻžāωāĻĄā§‡ āĻĢ⧇āϰāϤ āĻĒāĻžāĻ āĻžāϤ⧇ āĻĒāĻžāϰāĻŋ, āϝ⧇āĻŽāύ āĻĢāϞ⧇āϰ āĻĒāĻžāĻ•āĻž āĻŦāύāĻžāĻŽ āĻ•āĻžāρāϚāĻž āĻĢāϞ⧇āϰ āϏāĻ‚āĻ–ā§āϝāĻžāĨ¤ + +✅ āφāĻŽāϰāĻž āĻāϤāĻĻāĻŋāύ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āĻļ⧇āĻ–āĻž āφāχāĻ“āϟāĻŋ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϗ⧁āϞāĻŋ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϚāĻŋāĻ¨ā§āϤāĻž āĻ•āϰāĻŋāĨ¤ āϤāĻžāĻĻ⧇āϰ āϕ⧋āύ āĻ…āĻ‚āĻļāϗ⧁āϞāĻŋ Edge āĻ āύāĻŋā§Ÿā§‡ āφāϏāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ + +### āϏ⧁āĻŦāĻŋāϧāĻž + +Edge āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻŋāĻ‚ āĻāϰ āϏ⧁āĻŦāĻŋāϧāĻž āϗ⧁āϞ⧋ āĻšāϞ⧋: + +1. **āĻĻā§āϰāϤāϤāĻž** - āϏāĻŽāϝāĻŧ-āϏāĻ‚āĻŦ⧇āĻĻāύāĻļā§€āϞ (time-sensitive) āϤāĻĨā§āϝ⧇āϰ āϜāĻ¨ā§āϝ āϖ⧁āĻŦāχ āϏ⧁āĻŦāĻŋāϧāĻžāϜāύāĻ• āĻ•āĻžāϰāĻŖ āϏāĻŽāĻ—ā§āϰ āχāĻ¨ā§āϟāĻžāϰāύ⧇āϟ āϜ⧁āĻĄāĻŧ⧇ āϏāĻ‚āϝ⧋āĻ— āĻ•āϰāĻžāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āϞ⧋āĻ•āĻžāϞ āĻĄāĻŋāĻ­āĻžāχāϏ⧇āχ āĻ•āĻžāϜāϗ⧁āϞāĻŋ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ āĻāϟāĻŋ āωāĻšā§āϚ āĻ—āϤāĻŋāϤ⧇ āϤāĻž āĻ•āϰāϤ⧇ āϏāĻ•ā§āώāĻŽ āĻšāϝāĻŧ āĻ•āĻžāϰāĻŖ āĻ…āĻ­ā§āϝāĻ¨ā§āϤāϰ⧀āĻŖ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āϗ⧁āϞāĻŋ āχāĻ¨ā§āϟāĻžāϰāύ⧇āϟ āϏāĻ‚āϝ⧋āϗ⧇āϰ āϤ⧁āϞāύāĻžāϝāĻŧ āϝāĻĨ⧇āĻˇā§āϟ āĻĻā§āϰ⧁āϤ āĻ—āϤāĻŋāϤ⧇ āϚāϞāϤ⧇ āĻĒāĻžāϰ⧇, āϝāĻžāϰ āĻĄā§‡āϟāĻž āĻ…āύ⧇āĻ• āĻ•āĻŽ āĻĻā§‚āϰāĻ¤ā§āĻŦ⧇ āĻ­ā§āϰāĻŽāĻŖ āĻ•āϰ⧇āĨ¤ + + > 💁 āχāĻ¨ā§āϟāĻžāϰāύ⧇āϟ āϏāĻ‚āϝ⧋āϗ⧇āϰ āϜāĻ¨ā§āϝ āĻ…āĻĒāϟāĻŋāĻ•ā§āϝāĻžāϞ āĻ•ā§āϝāĻžāĻŦāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāϞ⧇āĻ“ , āφāϞ⧋āϰ āĻ—āϤāĻŋāϤ⧇ āĻĄā§‡āϟāĻž āĻĒāϰāĻŋāĻŦāĻšāϪ⧇āϰ āϏ⧁āϝ⧋āĻ— āĻĻā§‡ā§ŸāĻž āĻšāϞ⧇āĻ“, āĻĄā§‡āϟāĻž āĻ•ā§āϞāĻžāωāĻĄ āĻĒā§āϰ⧋āĻ­āĻžāχāĻĄāĻžāϰāĻĻ⧇āϰ āĻ•āĻžāϛ⧇ āĻĒ⧌āĻ›āϤ⧇ āϏāĻŽāϝāĻŧ āύāĻŋāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āϝāĻĻāĻŋ āφāĻŽāϰāĻž āχāωāϰ⧋āĻĒ āĻĨ⧇āϕ⧇ āĻŽāĻžāĻ°ā§āĻ•āĻŋāύ āϝ⧁āĻ•ā§āϤāϰāĻžāĻˇā§āĻŸā§āϰ⧇ āĻ•ā§āϞāĻžāωāĻĄ āĻĒāϰāĻŋāώ⧇āĻŦāĻžāĻĻāĻŋāϤ⧇ āĻĄā§‡āϟāĻž āĻĒāĻžāĻ āĻžāχ āϤāĻŦ⧇ āĻ…āĻĒāϟāĻŋāĻ•ā§āϝāĻžāϞ āĻ•ā§āϝāĻžāĻŦāϞ⧇ āφāϟāϞāĻžāĻ¨ā§āϟāĻŋāĻ• āĻ…āϤāĻŋāĻ•ā§āϰāĻŽ āĻ•āϰāϤ⧇ āĻĄā§‡āϟāĻžāϰ āϜāĻ¨ā§āϝ āĻ•āĻŽāĻĒāĻ•ā§āώ⧇ 28ms āϏāĻŽāϝāĻŧ āϞāĻžāϗ⧇ (āĻāĻ–āĻžāύ⧇ āϤāĻžāĻ“ āωāĻĒ⧇āĻ•ā§āώāĻž āĻ•āϰāĻž āĻšāĻšā§āϛ⧇ - āĻŸā§āϰāĻžāĻ¨ā§āϏāĻ…ā§āϝāĻžāϟāϞāĻžāĻ¨ā§āϟāĻŋāĻ• āϕ⧇āĻŦāϞ⧇ āĻĄā§‡āϟāĻž āĻĒāĻžāĻ“ā§ŸāĻž, āĻŦ⧈āĻĻā§āϝ⧁āϤāĻŋāĻ• āĻĨ⧇āϕ⧇ āφāϞ⧋āĻ•ā§€ā§Ÿ āϏāĻ‚āϕ⧇āϤ⧇ āϰ⧂āĻĒāĻžāĻ¨ā§āϤāϰ āĻāĻŦāĻ‚ āϤāĻžāϰāĻĒāϰ āφāĻŦāĻžāϰ āĻ…āĻĒāϟāĻŋāĻ•ā§āϝāĻžāϞ āĻ•ā§āϝāĻžāĻŦāϞ āĻĨ⧇āϕ⧇ āĻ•ā§āϞāĻžāωāĻĄ āĻĒā§āϰ⧋āĻ­āĻžāχāĻĄāĻžāϰ⧇āϰ āĻ•āĻžāϛ⧇ āĻĒ⧌āĻ›āĻžāύ⧋āϰ āĻŽāϤ āĻŦāĻŋāώ⧟āϗ⧁āϞ⧋)āĨ¤ + + Edge āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻŋāĻ‚āϝāĻŧ⧇āϰ āϜāĻ¨ā§āϝ āĻ•āĻŽ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻŸā§āĻ°ā§āϝāĻžāĻĢāĻŋāϕ⧇āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāϝāĻŧ, āĻāϤ⧇ āĻ•āϰ⧇ āχāĻ¨ā§āϟāĻžāϰāύ⧇āϟ āϏāĻ‚āϝ⧋āϗ⧇āϰ āϏ⧀āĻŽāĻŋāϤ āĻŦā§āϝāĻžāĻ¨ā§āĻĄāωāχāĻĨ⧇āϰ āϏāĻŽāĻ¸ā§āϝāĻž āĻŦāĻž āĻāϰ āĻŽāĻ§ā§āϝ⧇ āϝāĻžāύāϜāĻŸā§‡āϰ āĻĢāϞ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻĄā§‡āϟāĻž āĻĒāϰāĻŋāĻŦāĻšāύ āϧ⧀āϰ āĻšāĻ“āϝāĻŧāĻžāϰ āĻā§āρāĻ•āĻŋ āĻšā§āϰāĻžāϏ āĻ•āϰ⧇āĨ¤ + +1. **āĻĻā§‚āϰāĻŦāĻ°ā§āϤ⧀ āϏāĻ‚āϝ⧋āĻ— āύāĻŋ⧟āĻ¨ā§āĻ¤ā§āϰāĻŖ** - Edge āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻŋāĻ‚ āĻ•āĻžāϜ āĻ•āϰ⧇ āϝāĻ–āύ āφāĻŽāĻžāĻĻ⧇āϰ āϕ⧋āύ āχāĻ¨ā§āϟāĻžāϰāύ⧇āϟ āϏāĻ‚āϝ⧋āĻ— āĻĨāĻžāϕ⧇āύāĻž āĻŦāĻž āϖ⧁āĻŦāχ āϏ⧀āĻŽāĻŋāϤ āĻĒāĻ°ā§āϝāĻžā§Ÿā§‡āϰ āĻšā§ŸāĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ āϝāĻ–āύ āĻĒāϰāĻŋāĻŦ⧇āĻļāĻ—āϤ āĻĻā§‚āĻ°ā§āϝ⧋āĻ— āϘāĻŸā§‡, āϤāĻ–āύ āχāĻ¨ā§āϟāĻžāϰāύ⧇āĻŸā§‡āϰ āϕ⧋āύ āĻāĻ•āϏ⧇āϏ āĻĨāĻžāϕ⧇āύāĻžāĨ¤ + +1. **āĻ…āĻ˛ā§āĻĒ āĻ–āϰāϚ** - Edge āĻĄāĻŋāĻ­āĻžāχāϏ⧇ āĻĄā§‡āϟāĻž āϏāĻ‚āĻ—ā§āϰāĻš, āϏāĻžā§āϚāϝāĻŧ, āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ āĻāĻŦāĻ‚ āĻŸā§āϰāĻŋāĻ—āĻžāϰāĻŋāĻ‚ āĻ•āĻžāĻ°ā§āϝāĻ•ā§āϰāĻŽ āϏāĻŽā§āĻĒāĻžāĻĻāύ āĻ•āϰāĻž āĻ•ā§āϞāĻžāωāĻĄ āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻšā§āϰāĻžāϏ āĻ•āϰ⧇ āϝāĻž āφāĻŽāĻžāĻĻ⧇āϰ āφāχāĻ“āϟāĻŋ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ⧇āϰ āϏāĻžāĻŽāĻ—ā§āϰāĻŋāĻ• āĻ–āϰāϚ āĻ•āĻŽāĻžāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ Edge āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻŋāĻ‚āϝāĻŧ⧇āϰ āϜāĻ¨ā§āϝ āĻĄāĻŋāϜāĻžāχāύ āĻ•āϰāĻž āĻĄāĻŋāĻ­āĻžāχāϏ⧇ āϏāĻžāĻŽā§āĻĒā§āϰāϤāĻŋāĻ• āĻ…āύ⧇āĻ• āωāĻ¨ā§āύ⧟āύ āĻšāϝāĻŧ⧇āϛ⧇, āϏāĻŽā§āĻĒā§āϰāϤāĻŋ āĻāφāχ āĻāĻ•ā§āϏāĻŋāϞāĻžāϰ⧇āϟāϰ āĻŦā§‹āĻ°ā§āĻĄ āϝ⧇āĻŽāύ [NVIDIA āĻœā§‡āϟāϏāύ āĻ¨ā§āϝāĻžāύ⧋](https://developer.nvidia.com/embedded/jetson-nano-developer-kit) āĻāϰ āφāĻŦāĻŋāĻ°ā§āĻ­āĻžāĻŦ āϘāĻŸā§‡āϛ⧇, āϝāĻž GPU-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āĻšāĻžāĻ°ā§āĻĄāĻ“āϝāĻŧā§āϝāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ AI āĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āϞ⧋āĻĄāϗ⧁āϞāĻŋ āϚāĻžāϞāĻžāϤ⧇ āĻĒāĻžāϰ⧇ āϝ⧇ āĻĄāĻŋāĻ­āĻžāχāϏāϗ⧁āϞāĻŋāϰ āĻĻāĻžāĻŽ US $100 āĻāϰāĻ“ āĻ•āĻŽāĨ¤ + +1. **āĻ—ā§‹āĻĒāύ⧀āϝāĻŧāϤāĻž āĻāĻŦāĻ‚ āύāĻŋāϰāĻžāĻĒāĻ¤ā§āϤāĻž** - Edge āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻŋāĻ‚ āĻāϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻĄā§‡āϟāĻž āφāĻŽāĻžāĻĻ⧇āϰ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āϕ⧇ āĻĨāĻžāϕ⧇ āĻāĻŦāĻ‚ āĻ•ā§āϞāĻžāωāĻĄā§‡ āφāĻĒāϞ⧋āĻĄ āĻ•āϰāĻž āĻšāϝāĻŧ āύāĻžāĨ¤ āĻāϟāĻŋ āĻĒā§āϰāĻžāϝāĻŧāĻļāχ āϏāĻ‚āĻŦ⧇āĻĻāύāĻļā§€āϞ āĻāĻŦāĻ‚ āĻŦā§āϝāĻ•ā§āϤāĻŋāĻ—āϤāĻ­āĻžāĻŦ⧇ āĻļāύāĻžāĻ•ā§āϤāϝ⧋āĻ—ā§āϝ āϤāĻĨā§āϝ⧇āϰ āϜāĻ¨ā§āϝ āĻ…āϧāĻŋāĻ•āϤāϰ āĻ•āĻ˛ā§āϝāĻžāĻŖāϜāύāĻ•āĨ¤ āĻāĻ›āĻžā§œāĻžāĻ“ āĻĄā§‡āϟāĻž āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ āĻ•āϰāĻžāϰ āĻĒāϰ⧇ āĻĄā§‡āϟāĻž āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāĻžāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāϝāĻŧ āύāĻž, āϝāĻž āĻĄā§‡āϟāĻž āĻĢāĻžāρāϏ⧇āϰ āĻā§āρāĻ•āĻŋ āĻ…āύ⧇āĻ• āĻ•āĻŽāĻŋāϝāĻŧ⧇ āĻĻ⧇āϝāĻŧāĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāϗ⧁āϞāĻŋāϰ āĻŽāĻ§ā§āϝ⧇ āϰāϝāĻŧ⧇āϛ⧇ āĻŽā§‡āĻĄāĻŋāϕ⧇āϞ āĻĄā§‡āϟāĻž āĻāĻŦāĻ‚ āϏāĻŋāϏāĻŋāϟāĻŋāĻ­āĻŋ āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āĻĢ⧁āĻŸā§‡āϜāĨ¤ + +1. **āĻ…āύāĻŋāϰāĻžāĻĒāĻĻ āĻĄāĻŋāĻ­āĻžāχāϏāϗ⧁āϞāĻŋ āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰāĻž** - āϝāĻĻāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āϜāĻžāύāĻžāĻŽāϤ⧇ āύāĻŋāϰāĻžāĻĒāĻ¤ā§āϤāĻž āĻ¤ā§āϰ⧁āϟāĻŋāϝ⧁āĻ•ā§āϤ āϕ⧋āύ āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨāĻžāϕ⧇ āϝāĻž āφāĻŽāϰāĻž āϏāϰāĻžāϏāϰāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻŦāĻž āχāĻ¨ā§āϟāĻžāϰāύ⧇āĻŸā§‡āϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āϝ⧁āĻ•ā§āϤ āĻ•āϰāϤ⧇ āϚāĻžāχ āύāĻž, āϏ⧇āϗ⧁āϞāĻŋāϕ⧇ āĻāĻ•āϟāĻŋ āĻĒ⧃āĻĨāĻ• āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āϕ⧇ āϗ⧇āϟāĻ“āϝāĻŧ⧇ āφāχāĻ“āϟāĻŋ Edge āĻĄāĻŋāĻ­āĻžāχāϏ⧇ āϏāĻ‚āϝ⧁āĻ•ā§āϤ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āĻāχ Edge āĻĄāĻŋāĻ­āĻžāχāϏāϟāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āĻŦ⧃āĻšāĻ¤ā§āϤāϰ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻŦāĻž āχāĻ¨ā§āϟāĻžāϰāύ⧇āĻŸā§‡āϰ āϏāĻžāĻĨ⧇āĻ“ āϏāĻ‚āϝ⧋āĻ— āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āĻāĻŦāĻ‚ āĻĄā§‡āϟāĻž āĻĒā§āϰāĻŦāĻžāĻšāϕ⧇ āϏāĻžāĻŽāύ⧇ āĻĒ⧇āĻ›āύ⧇ āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ + +1. **āĻ…āϏāĻžāĻŽāĻžā§āϜāĻ¸ā§āϝāĻĒā§‚āĻ°ā§āĻŖ āĻĄāĻŋāĻ­āĻžāχāϏ⧇āϰ āϜāĻ¨ā§āϝ āϏāĻžāĻĒā§‹āĻ°ā§āϟ** - āϝāĻĻāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āĻāĻŽāύ āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨāĻžāϕ⧇ āϝāĻž IoT āĻšāĻžāĻŦ⧇āϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āϝ⧋āĻ— āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āύāĻž, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ āĻāĻŽāύ āĻĄāĻŋāĻ­āĻžāχāϏ āϝāĻž āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ HTTP āϏāĻ‚āϝ⧋āĻ— āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϏāĻ‚āϝ⧋āĻ— āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āĻŦāĻž āϝ⧇ āĻĄāĻŋāĻ­āĻžāχāϏāϗ⧁āϞāĻŋāϤ⧇ āϕ⧇āĻŦāϞāĻŽāĻžāĻ¤ā§āϰ āĻŦā§āϞ⧁āϟ⧁āĻĨ āϏāĻ‚āϝ⧋āĻ— āφāϛ⧇- āϏ⧇āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ IoT Edge āĻĄāĻŋāĻ­āĻžāχāϏāϕ⧇ āϗ⧇āϟāĻ“āϝāĻŧ⧇ āĻĄāĻŋāĻ­āĻžāχāϏ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ , IoT Hub- āĻ āĻŦāĻžāĻ°ā§āϤāĻž āĻĒāĻžāĻ āĻžāύ⧋āϰ āϜāĻ¨ā§āϝāĨ¤ + +✅ āĻ•āĻŋāϛ⧁ āĻ—āĻŦ⧇āώāĻŖāĻž āĻ•āϰāĻŋ: Edge āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻŋāĻ‚ āĻāϰ āĻ…āĻ¨ā§āϝ āϕ⧋āύ āϕ⧋āύ āϏ⧁āĻŦāĻŋāϧāĻž āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇? + +### āĻ…āϏ⧁āĻŦāĻŋāϧāĻž + +Edge āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻŋāĻ‚āϝāĻŧ⧇āϰ āφāĻŦāĻžāϰ āĻ•āĻŋāϛ⧁ āĻ…āϏ⧁āĻŦāĻŋāϧāĻžāĻ“ āϰāϝāĻŧ⧇āϛ⧇, āϝ⧇āϏāĻŦ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻ•ā§āϞāĻžāωāĻĄ āĻ­āĻžāϞ⧋ āĻ…āĻĒāĻļāύ āĻšāϤ⧇ āĻĒāĻžāϰ⧇: + +1. **āĻ¸ā§āϕ⧇āϞ āĻāĻŦāĻ‚ āĻĢā§āϞ⧇āĻ•ā§āϏāĻŋāĻŦāĻŋāϞāĻŋāϟāĻŋ** - āĻ•ā§āϞāĻžāωāĻĄ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻŋāĻ‚ āĻ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āϰāĻŋāϏ⧋āĻ°ā§āϏ āϏāĻ‚āϝ⧋āϜāύ āĻŦāĻž āĻšā§āϰāĻžāϏ āĻ•āϰ⧇ āϰāĻŋāϝāĻŧ⧇āϞ -āϟāĻžāχāĻŽā§‡ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻāĻŦāĻ‚ āĻĄā§‡āϟāĻž āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧇āϰ āϏāĻžāĻĨ⧇ āϏāĻžāĻŽāĻžā§āϜāĻ¸ā§āϝ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ Edge āĻāϰ āϏ⧁āĻŦāĻŋāϧāĻž āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ⧇ āϝ⧋āĻ— āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻŽā§āϝāĻžāύ⧁āϝāĻŧāĻžāϞāĻŋ āφāϰ⧋ āĻĄāĻŋāĻ­āĻžāχāϏ āϝ⧋āĻ— āĻ•āϰāĻž āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤ + +1. **āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝāϤāĻž āĻāĻŦāĻ‚ āϏāĻšāύāĻļā§€āϞāϤāĻž** - āĻ•ā§āϞāĻžāωāĻĄ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻŋāĻ‚ āĻ āĻ…āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻāĻŦāĻ‚ āĻĻ⧁āĻ°ā§āϝ⧋āĻ—āĻ•āĻžāϞ⧀āύ āĻĒāϰāĻŋāĻ¸ā§āĻĨāĻŋāϤāĻŋ āĻā§œāĻžāύ⧋āϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāĻžāϝāĻŧāχ āĻāĻ•āĻžāϧāĻŋāĻ• āĻ¸ā§āĻĨāĻžāύ⧇ āĻāĻ•āĻžāϧāĻŋāĻ• āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏāϰāĻŦāϰāĻžāĻš āĻ•āϰ⧇āĨ¤ Edge āĻ āĻāĻ•āχ āĻŽāĻžāĻ¤ā§āϰāĻžāϰ āĻ…āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧāϤāĻžāϰ āϜāĻ¨ā§āϝ āĻŦāĻĄāĻŧ āĻŦāĻŋāύāĻŋāϝāĻŧā§‹āĻ— āĻāĻŦāĻ‚ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ⧇āϰ āĻ•āĻžāϜ āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤ + +1. **āϰāĻ•ā§āώāĻŖāĻžāĻŦ⧇āĻ•ā§āώāĻŖ** - āĻ•ā§āϞāĻžāωāĻĄ āĻĒāϰāĻŋāώ⧇āĻŦāĻž āĻĒā§āϰāĻĻāĻžāύāĻ•āĻžāϰ⧀āϰāĻžāϰāĻžāχ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āϰāĻ•ā§āώāĻŖāĻžāĻŦ⧇āĻ•ā§āώāĻŖ āĻāĻŦāĻ‚ āφāĻĒāĻĄā§‡āϟ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤ + +✅ āĻ•āĻŋāϛ⧁ āĻ—āĻŦ⧇āώāĻŖāĻž āĻ•āϰāĻŋ: Edge āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻŋāĻ‚āϝāĻŧ⧇ āĻ…āĻ¨ā§āϝ āϕ⧋āύ āĻ…āϏ⧁āĻŦāĻŋāϧāĻž āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇? + +āĻ•ā§āϞāĻžāωāĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āĻ…āϏ⧁āĻŦāĻŋāϧāĻžāϰ āĻŽāĻ§ā§āϝ⧇ āĻĻ⧇āĻ–āĻž āϝāĻžā§Ÿ - āφāĻŽāϰāĻž āĻ•ā§āϞāĻžāωāĻĄ āϏāϰāĻŦāϰāĻžāĻšāĻ•āĻžāϰ⧀āĻĻ⧇āϰ āĻĻāĻ•ā§āώāϤāĻž āĻāĻŦāĻ‚ āĻ¸ā§āϕ⧇āϞ⧇āϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦā§‹āύāĻž, āĻŦāϰāĻ‚ āφāĻŽāĻžāĻĻ⧇āϰāϕ⧇ āĻāχ āĻĄāĻŋāĻ­āĻžāχāϏāϗ⧁āϞāĻŋ āύāĻŋāĻœā§‡āχ āϤ⧈āϰāĻŋ āĻāĻŦāĻ‚ āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ + +Edge āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻŋāĻ‚āϝāĻŧ⧇āϰ āĻĻā§āĻŦāĻžāϰāĻž āĻ•āĻŋāϛ⧁ āĻā§āρāĻ•āĻŋ āĻĒā§āϰāĻļāĻŽāĻŋāϤ āĻ•āϰāĻž āϝāĻžāϝāĻŧāĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āϝāĻĻāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āϝāĻ¨ā§āĻ¤ā§āϰāĻĒāĻžāϤāĻŋ āϏāĻš āĻ•āĻžāϰāĻ–āĻžāύāĻžāϝāĻŧ āϝ⧇āĻ–āĻžāύ āĻĨ⧇āϕ⧇ āĻĄā§‡āϟāĻž āϏāĻ‚āĻ—ā§āϰāĻš āĻ•āϰāĻž āĻšā§Ÿ, āϏ⧇āĻ–āĻžāύ⧇āχ āĻāĻ•āϟāĻŋ Edge āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨāĻžāϕ⧇, āϤāĻžāĻšāϞ⧇ āφāĻŽāĻžāĻĻ⧇āϰāϕ⧇ āĻĻ⧁āĻ°ā§āϝ⧋āĻ— āĻĒāϰāĻŋāĻ¸ā§āĻĨāĻŋāϤāĻŋ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻ­āĻžāĻŦāϤ⧇ āĻšāĻŦ⧇ āύāĻžāĨ¤ āϝāĻĻāĻŋ āĻ•āĻžāϰāĻ–āĻžāύāĻžāϰ āĻŦāĻŋāĻĻā§āĻ¯ā§ā§Ž āϚāϞ⧇ āϝāĻžāϝāĻŧ āϤāĻžāĻšāϞ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻŦā§āϝāĻžāĻ•āφāĻĒ Edge āĻĄāĻŋāĻ­āĻžāχāϏ⧇āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāĻŦ⧇ āύāĻž āĻ•āĻžāϰāĻŖ āĻŽā§‡āĻļāĻŋāύāϗ⧁āϞāĻŋ āĻĄā§‡āϟāĻž āϤ⧈āϰāĻŋāϰ āĻĒāϰ, Edge āĻĄāĻŋāĻ­āĻžāχāϏ⧇āϰ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϗ⧁āϞāĻŋāĻ“ āĻŦāĻŋāĻĻā§āĻ¯ā§ā§ŽāĻŦāĻŋāĻšā§€āύ āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰāĻž āϝāĻžāĻŦ⧇āĨ¤ + +IoT āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āϰ āϜāĻ¨ā§āϝ, āφāĻŽāϰāĻž āĻĒā§āϰāĻžāϝāĻŧāχ āĻ•ā§āϞāĻžāωāĻĄ āĻāĻŦāĻ‚ Edge āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻŋāĻ‚ āĻāϰ āĻŽāĻŋāĻļā§āϰāĻŖ āĻāϰ āĻ•ā§ŒāĻļāϞ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰāĻŋ āϝ⧇āĻ–āĻžāύ⧇ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻāϰ āĻ—ā§āϰāĻžāĻšāĻ•āĻĻ⧇āϰ āĻāĻŦāĻ‚ āĻāϰ āϰāĻ•ā§āώāĻŖāĻžāĻŦ⧇āĻ•ā§āώāĻŖāĻ•āĻžāϰ⧀āĻĻ⧇āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧇āϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āĻĒā§āϰāϤāĻŋāϟāĻŋ āϏ⧇āĻŦāĻžāϰ āϏ⧁āĻŦāĻŋāϧāĻž āĻĒāĻžāĻ“ā§ŸāĻž āϝāĻžā§ŸāĨ¤ + +## Azure IoT Edge + +![The Azure IoT Edge logo](../../../../images/azure-iot-edge-logo.png) + +Azure IoT Edge āĻšāϞ āĻāĻ•āϟāĻŋ āĻĒāϰāĻŋāώ⧇āĻŦāĻž āϝāĻž āφāĻŽāĻžāĻĻ⧇āϰāϕ⧇ āĻ•āĻžāĻœā§‡āϰ āϚāĻžāĻĒāϕ⧇ āĻ•ā§āϞāĻžāωāĻĄā§‡āϰ āĻŦāĻžāχāϰ⧇ āĻāĻŦāĻ‚ Edge āĻ āϏāϰāĻŋāϝāĻŧ⧇ āύāĻŋāϤ⧇ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ Edge āĻĄāĻŋāĻ­āĻžāχāϏ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻāĻ•āϟāĻŋ āĻĄāĻŋāĻ­āĻžāχāϏ āϏ⧇āϟ āφāĻĒ, āĻāĻŦāĻ‚ āĻ•ā§āϞāĻžāωāĻĄ āĻĨ⧇āϕ⧇ āφāĻŽāϰāĻž āϝ⧇ Edge āĻĄāĻŋāĻ­āĻžāχāϏ⧇ āϕ⧋āĻĄ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āĻāϟāĻŋ āφāĻŽāĻžāĻĻ⧇āϰāϕ⧇ āĻ•ā§āϞāĻžāωāĻĄ āĻāĻŦāĻ‚ Edge āĻāϰ āĻ•ā§āώāĻŽāϤāĻžāϗ⧁āϞāĻŋāϰ āϏāĻ°ā§āĻŦā§‹āĻšā§āϚ āĻŦā§āϝāĻŦāĻšāĻžāϰ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰ⧇āĨ¤ + +> 🎓 *Workloads* āĻŦāϞāϤ⧇ āϏ⧇āϏāĻ•āϞ āϏāĻžāĻ°ā§āĻ­āĻŋāϏ āĻŦā§‹āĻāĻžā§Ÿ āϝ⧇āϗ⧁āϞ⧋ āϕ⧋āύ āϧāϰāύ⧇āϰ āĻ•āĻžāϜ āĻ•āϰ⧇, āϝ⧇āĻŽāύ āĻāφāχ āĻŽāĻĄā§‡āϞ, āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻŦāĻž āϏāĻžāĻ°ā§āĻ­āĻžāϰāϞ⧇āϏ āĻĢāĻžāĻ‚āĻļāύāĨ¤ + +āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āφāĻŽāϰāĻž āĻ•ā§āϞāĻžāωāĻĄā§‡ āĻāĻ•āϟāĻŋ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰāĻŋ, āϤāĻžāϰāĻĒāϰ āĻ•ā§āϞāĻžāωāĻĄ āĻĨ⧇āϕ⧇ āĻāϟāĻŋ āĻāĻ•āϟāĻŋ Edge āĻĄāĻŋāĻ­āĻžāχāϏ⧇ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻŋāĨ¤ āφāĻŽāĻžāĻĻ⧇āϰ āφāχāĻ“āϟāĻŋ āĻĄāĻŋāĻ­āĻžāχāϏ āϤāĻžāϰāĻĒāϰ āχāĻ¨ā§āϟāĻžāϰāύ⧇āĻŸā§‡ āĻ›āĻŦāĻŋ āĻĒāĻžāĻ āĻžāύ⧋āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ Edge āĻĄāĻŋāĻ­āĻžāχāϏ⧇ āχāĻŽā§‡āϜ āĻĒāĻžāĻ āĻžāϝāĻŧ āĻļā§āϰ⧇āĻŖā§€āĻŦāĻŋāĻ¨ā§āϝāĻžāϏ⧇āϰ āϜāĻ¨ā§āϝāĨ¤ āϝāĻĻāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āĻŽāĻĄā§‡āϞ⧇āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻŦāĻž āωāĻ¨ā§āύ⧟āύ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ āφāĻŽāϰāĻž āĻāϟāĻŋāϕ⧇ āĻ•ā§āϞāĻžāωāĻĄā§‡ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰāĻŋ āĻāĻŦāĻ‚ āφāχāĻ“āϟāĻŋ Edge āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ Edge āĻĄāĻŋāĻ­āĻžāχāϏ⧇ āĻŽāĻĄā§‡āϞāϟāĻŋāϕ⧇ āφāĻŽāϰāĻž āφāĻĒāĻĄā§‡āϟ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ + +> 🎓 IoT Edge- āĻ āϝ⧇ āϏāĻĢāϟāĻ“āϝāĻŧā§āϝāĻžāϰāϟāĻŋ āĻŽā§‹āϤāĻžāϝāĻŧ⧇āύ āĻ•āϰāĻž āĻšāϝāĻŧ āϤāĻž *āĻŽāĻĄāĻŋāωāϞ* āύāĻžāĻŽā§‡ āĻĒāϰāĻŋāϚāĻŋāϤāĨ¤ āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇ IoT Edge āĻŽāĻĄāĻŋāωāϞ āϚāĻžāϞāĻžāϝāĻŧ āϝāĻž IoT Hub- āĻāϰ āϏāĻžāĻĨ⧇ āϝ⧋āĻ—āĻžāϝ⧋āĻ— āĻ•āϰ⧇, āϝ⧇āĻŽāύ `edgeAgent` āĻāĻŦāĻ‚` edgeHub` āĻŽāĻĄāĻŋāωāϞāĨ¤ āϝāĻ–āύ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻŋ, āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āĻŽāĻĄāĻŋāωāϞ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ + +āφāχāĻ“āϟāĻŋ Edge āφāχāĻ“āϟāĻŋ āĻšāĻžāĻŦ⧇āϰ āĻŽāĻ§ā§āϝ⧇āχ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇, āϤāĻžāχ āφāĻŽāϰāĻž āĻāĻ•āχ āĻ¸ā§āϤāϰ⧇āϰ āϏ⧁āϰāĻ•ā§āώāĻž āϏāĻš āφāχāĻ“āϟāĻŋ āĻĄāĻŋāĻ­āĻžāχāϏāϗ⧁āϞāĻŋ āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰāϤ⧇ āϝ⧇ āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŋ, āϏ⧇āχ āĻāĻ•āχ āϏāĻžāĻ°ā§āĻ­āĻŋāϏ āĻĻāĻŋā§Ÿā§‡ āφāĻŽāϰāĻž Edge āĻĄāĻŋāĻ­āĻžāχāϏāϗ⧁āϞāĻŋ āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ + +āφāχāĻ“āϟāĻŋ Edge *āĻ•āύāĻŸā§‡āχāύāĻžāϰ* āĻĨ⧇āϕ⧇ āϕ⧋āĻĄ āϚāĻžāϞāĻžāϝāĻŧ - āĻāϟāĻŋ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āϝāĻž āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ⧇ āĻŦāĻžāĻ•āĻŋ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻĨ⧇āϕ⧇ āĻŦāĻŋāĻšā§āĻ›āĻŋāĻ¨ā§āύāĻ­āĻžāĻŦ⧇ āϚāĻžāϞāĻžāύ⧋ āĻšāϝāĻŧāĨ¤ āϝāĻ–āύ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āϚāĻžāϞāĻžāχ āϤāĻ–āύ āĻāϟāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ⧇āϰ āĻ­āĻŋāϤāϰ⧇ āĻāĻ•āϟāĻŋ āĻĒ⧃āĻĨāĻ• āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ⧇āϰ āĻŽāϤ⧋ āĻ•āĻžāϜ āĻ•āϰ⧇, āϝāĻžāϰ āύāĻŋāϜāĻ¸ā§āĻŦ āϏāĻĢā§āϟāĻ“āϝāĻŧā§āϝāĻžāϰ, āĻĒāϰāĻŋāώ⧇āĻŦāĻž āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϗ⧁āϞāĻŋ āϚāϞāϛ⧇āĨ¤ āĻŦ⧇āĻļāĻŋāϰāĻ­āĻžāĻ— āϏāĻŽāϝāĻŧ āĻ•āύāĻŸā§‡āχāύāĻžāϰ āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ⧇ āĻ•āĻŋāϛ⧁ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āύāĻž āϝāϤāĻ•ā§āώāĻŖ āύāĻž āφāĻŽāϰāĻž āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ āĻāĻ•āϟāĻŋ āĻĢā§‹āĻ˛ā§āĻĄāĻžāϰ⧇āϰ āĻŽāϤ⧋ āϜāĻŋāύāĻŋāϏ āĻ­āĻžāĻ— āĻ•āϰāĻž āĻŦ⧇āϛ⧇ āύ⧇āχāĨ¤ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āϤāĻžāϰāĻĒāϰ āĻāĻ•āϟāĻŋ āĻ–ā§‹āϞāĻž āĻĒā§‹āĻ°ā§āĻŸā§‡āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āϏāĻžāĻ°ā§āĻ­āĻŋāϏāϗ⧁āϞāĻŋ āĻĒā§āϰāĻ•āĻžāĻļ āĻ•āϰ⧇ āϝāĻž āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āϕ⧇ āϏāĻ‚āϝ⧋āĻ— āĻ•āϰāϤ⧇ āĻŦāĻž āĻĒā§āϰāĻ•āĻžāĻļ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ + +![A web request redirected to a container](../../../../images/container-web-browser.png) + +āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āφāĻŽāϰāĻž āĻĒā§‹āĻ°ā§āϟ 80, āĻĄāĻŋāĻĢāĻ˛ā§āϟ HTTP āĻĒā§‹āĻ°ā§āĻŸā§‡ āϚāϞāĻŽāĻžāύ āĻāĻ•āϟāĻŋ āĻ“āϝāĻŧ⧇āĻŦ āϏāĻžāχāϟāϕ⧇ āĻāĻ•āϟāĻŋ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āϰāĻžāĻ–āϤ⧇ āĻĒāĻžāϰāĻŋ āĻāĻŦāĻ‚ āφāĻŽāϰāĻž āĻāϟāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ āĻĨ⧇āϕ⧇ āĻĒā§‹āĻ°ā§āϟ 80 āϤ⧇āĻ“ āĻĒā§āϰāĻ•āĻžāĻļ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ + +✅ āĻ•āĻŋāϛ⧁ āĻ—āĻŦ⧇āώāĻŖāĻž āĻ•āϰāĻŋ: Docker āĻŦāĻž Moby āĻāϰ āĻŽāϤ⧋ āϏāĻžāĻ°ā§āĻ­āĻŋāϏ āĻāĻŦāĻ‚ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āφāϰ⧋ āĻĒ⧜āĻŋāĨ¤ + +āφāĻŽāϰāĻž āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ āĻĄāĻžāωāύāϞ⧋āĻĄ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ āĻāĻŦāĻ‚ āϏ⧇āϗ⧁āϞ⧋āϕ⧇ āĻ•āύāĻŸā§‡āχāύāĻžāϰ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ, āĻšāϝāĻŧ āϏāϰāĻžāϏāϰāĻŋ āϕ⧋āύ⧋ āĻĄāĻŋāĻ­āĻžāχāϏ⧇ āϚāĻžāϞāĻžāύ⧋ āĻ…āĻĨāĻŦāĻž āφāχāĻ“āϟāĻŋ Edge āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻŽā§‹āϤāĻžāϝāĻŧ⧇āύ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻāĻ•āĻŦāĻžāϰ āĻāĻ•āϟāĻž āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āϚāϞāϤ⧇ āĻĨāĻžāĻ•āϞ⧇, āĻ•ā§āϞāĻžāωāĻĄ āϏāĻ‚āĻ¸ā§āĻ•āϰāϪ⧇āϰ āĻŽāϤ⧋ āĻāĻ•āχ REST API āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāϟāĻŋ āĻāĻ•āϏ⧇āϏ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇, āϤāĻŦ⧇ endpoint āϟāĻŋ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āϚāĻžāϞāĻžāύ⧋āϰ āϜāĻ¨ā§āϝ Edge āĻĄāĻŋāĻ­āĻžāχāϏ⧇āϰ āĻĻāĻŋāϕ⧇ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇āĨ¤ + +## IoT Edge device āϰ⧇āϜāĻŋāĻ¸ā§āϟāĻžāϰ āĻ•āϰāĻž + +āĻāĻ•āϟāĻŋ āφāχāĻ“āϟāĻŋ Edge āĻĄāĻŋāĻ­āĻžāχāϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ, āĻāϟāĻŋ āφāχāĻ“āϟāĻŋ āĻšāĻžāĻŦ -āĻ āϰ⧇āϜāĻŋāĻ¸ā§āĻŸā§āϰ⧇āĻļāύ āĻšāĻ“āϝāĻŧāĻž āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤ + +### Task - IoT Edge device āϰ⧇āϜāĻŋāĻ¸ā§āϟāĻžāϰ āĻ•āϰāĻž + +1. `fruit-quality-detector` āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻ—ā§āϰ⧁āĻĒ⧇ āφāχāĻ“āϟāĻŋ āĻšāĻžāĻŦ āϤ⧈āϰ⧀ āĻ•āϰāĻŋāĨ¤ āĻāϟāĻžāϕ⧇ āχāωāύāĻŋāĻ• āĻāĻ•āϟāĻž āύāĻžāĻŽ āĻĻā§‡ā§ŸāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇, āϝ⧇āĻŽāύāσ `fruit-quality-detector` + +1. āĻāĻ•āϟāĻŋ IoT Edge device āϰ⧇āϜāĻŋāĻ¸ā§āĻŸā§āϰ⧇āĻļāύ āĻ•āϰāĻŋ, āύāĻžāĻŽ āĻĻāĻŋāχ `fruit-quality-detector-edge`āĨ¤ āĻāϟāĻŋ āĻ•āϰāĻžāϰ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āĻāĻ•āϟāĻŋ non-edge āĻĄāĻŋāĻ­āĻžāχāϏ āύāĻŋāĻŦāĻ¨ā§āϧāύ⧇āϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡āϰ āĻ…āύ⧁āϰ⧂āĻĒ, āϤāĻŦ⧇ `--edge-enabled` āĻĢā§āĻ˛ā§āϝāĻžāĻ—āϟāĻŋ āĻĒāĻžāϏ āĻ•āϰāĻž āϝāĻžāĻŦ⧇āύāĻžāĨ¤ + + ```sh + az iot hub device-identity create --edge-enabled \ + --device-id fruit-quality-detector-edge \ + --hub-name + ``` + + `` āĻāϰ āĻ¸ā§āĻĨāϞ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āφāχāĻ“āϟāĻŋ āĻšāĻžāĻŦ⧇āϰ āύāĻžāĻŽ āĻŦāϏāĻžāχāĨ¤ + +1. āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻĄāĻŋāĻ­āĻžāχāϏ⧇āϰ āϜāĻ¨ā§āϝ āϏāĻ‚āϝ⧋āĻ— āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āύāĻŋāχ: + + ```sh + az iot hub device-identity connection-string show --device-id fruit-quality-detector-edge \ + --output table \ + --hub-name + ``` + + `` āĻāϰ āĻ¸ā§āĻĨāϞ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āφāχāĻ“āϟāĻŋ āĻšāĻžāĻŦ⧇āϰ āύāĻžāĻŽ āĻŦāϏāĻžāχāĨ¤ + + āφāωāϟāĻĒ⧁āĻŸā§‡ āĻĻ⧇āĻ–āĻžāύ⧋ āĻ•āĻžāύ⧇āĻ•āĻļāύ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āĻāϰ āĻ•āĻĒāĻŋ āϰāĻžāĻ–āĻŋāĨ¤ + +## IoT Edge device āϏ⧇āϟāĻžāĻĒ āĻ•āϰāĻž + +āĻāĻ•āĻŦāĻžāϰ IoT āĻšāĻžāĻŦ āĻ āĻāϜ āĻĄāĻŋāĻ­āĻžāχāϏ āϰ⧇āϜāĻŋāĻ¸ā§āĻŸā§āϰ⧇āĻļāύ āϤ⧈āϰāĻŋ āĻ•āϰ⧇ āύāĻŋāϞ⧇, āφāĻŽāϰāĻž āĻāϜ āĻĄāĻŋāĻ­āĻžāχāϏ āϏ⧇āϟ āφāĻĒ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦā§‹āĨ¤ + +### Task - Install and start the IoT Edge Runtime + +**IoT Edge runtime āϕ⧇āĻŦāϞ Linux container āĻ āϰāĻžāύ āĻ•āϰ⧇āĨ¤** āĻāϟāĻŋ āϞāĻŋāύāĻžāĻ•ā§āϏ⧇ āϚāϞāĻŦ⧇ āĻ…āĻĨāĻŦāĻž āϞāĻŋāύāĻžāĻ•ā§āϏ āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āĻŽā§‡āĻļāĻŋāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āωāχāĻ¨ā§āĻĄā§‹āĻœā§‡ āϚāĻžāϞāĻžāύ⧋ āϝāĻžāĻŦ⧇āĨ¤ + +* āφāĻŽāϰāĻž āϝāĻĻāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āφāχāĻ“āϟāĻŋ āĻĄāĻŋāĻ­āĻžāχāϏ āĻšāĻŋāϏāĻžāĻŦ⧇ āϰāĻžāĻ¸ā§āĻĒāĻŦ⧇āϰāĻŋ āĻĒāĻžāχ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŋ, āϤāĻžāĻšāϞ⧇ āĻāϟāĻŋ āϞāĻŋāύāĻžāĻ•ā§āϏ⧇āϰ āĻāĻ•āϟāĻŋ āϏāĻžāĻĒā§‹āĻ°ā§āĻŸā§‡āĻĄ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ āϚāĻžāϞāĻžāϝāĻŧ āĻāĻŦāĻ‚ āφāχāĻ“āϟāĻŋ Edge āϰāĻžāύāϟāĻžāχāĻŽ āĻšā§‹āĻ¸ā§āϟ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻāĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āφāĻŽāϰāĻž [Microsoft docs āĻāϰ āϞāĻŋāύāĻžāĻ•ā§āϏ āĻ—āĻžāχāĻĄā§‡āϰ āϜāĻ¨ā§āϝ Azure āφāχāĻ“āϟāĻŋ Edge āχāύāĻ¸ā§āϟāϞ⧇āĻļāύ](https://docs.microsoft.com/azure/iot-edge/how-to-install-iot-edge?WT.mc_id=academic-17441-jabenn) āĻĒā§œā§‡ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ + + > 💁 āĻŽāύ⧇ āϰāĻžāĻ–āϤ⧇ āĻšāĻŦ⧇, āϰāĻžāĻ¸ā§āĻĒāĻŦ⧇āϰāĻŋ āĻĒāĻžāχ āĻ“āĻāϏ āĻĄā§‡āĻŦāĻŋāϝāĻŧāĻžāύ āϞāĻŋāύāĻžāĻ•ā§āϏ⧇āϰ āĻāĻ•āϟāĻŋ āϰ⧂āĻĒāĨ¤ + +* āφāĻŽāϰāĻž āϝāĻĻāĻŋ āϰāĻžāĻ¸ā§āĻĒāĻŦ⧇āϰāĻŋ āĻĒāĻžāχ āĻŦā§āϝāĻŦāĻšāĻžāϰ āύāĻž āĻ•āϰāĻŋ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāĻ•āϟāĻŋ āϞāĻŋāύāĻžāĻ•ā§āϏ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ āĻĨāĻžāϕ⧇, āϤāĻžāĻšāϞ⧇ āφāĻŽāϰāĻž IoT Edge āϰāĻžāύāϟāĻžāχāĻŽ āϚāĻžāϞāĻžāϤ⧇ āĻĒāĻžāϰāĻŦā§‹āĨ¤ āĻāĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āφāĻŽāϰāĻž [āϞāĻŋāύāĻžāĻ•ā§āϏ āĻ—āĻžāχāĻĄā§‡āϰ āϜāĻ¨ā§āϝ Azure āφāχāĻ“āϟāĻŋ āĻāϜ āχāύāĻ¸ā§āϟāϞ⧇āĻļāύ](https://docs.microsoft.com/azure/iot-edge/how-to-install-iot-edge?WT.mc_id=academic-17441-jabenn) āĻĒā§œā§‡ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ + +* āωāχāĻ¨ā§āĻĄā§‹āĻœā§‡ āφāĻŽāϰāĻž IoT Edge runtime āχāĻ¨ā§āϏāϟāϞ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ Linux Virtual Machine āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇, āϝāĻžāϰ āϜāĻ¨ā§āϝ [āωāχāĻ¨ā§āĻĄā§‹āĻœā§‡ IoT Edge runtime āĻĒāϰāĻŋāϚāĻžāϞāύāĻž ](https://docs.microsoft.com/azure/iot-edge/quickstart?WT.mc_id=academic-17441-jabenn#install-and-start-the-iot-edge-runtime) āĻĒ⧜āϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ *Deploy a module* āϏ⧇āĻ•āĻļāύ⧇ āϝāĻžāĻ“ā§ŸāĻžāϰ āĻĒāϰ āĻ•āĻžāϜ āĻŦāĻ¨ā§āϧ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ + +* macOS āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āĻšāĻ˛ā§āϰ āĻ•ā§āϞāĻžāωāĻĄā§‡ virtual machine (VM) āϤ⧈āϰ⧀ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ IoT Edge āĻŋāĻ¨ā§āϏāϟāϞ āĻ•āϰāĻž āϞāĻŋāύāĻžāĻ•ā§āϏ āĻ­āĻŋāĻāĻŽ āφāĻŽāϰāĻž āĻĄā§‡āĻĒā§āϞ⧟ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āĻāϜāĻ¨ā§āϝ [IoT Edge āĻāϰ āϜāĻ¨ā§āϝ āĻ­āĻžāĻ°ā§āϚ⧁⧟āĻžāϞ āĻŽā§‡āĻļāĻŋāύ](vm-iotedge.md) āĻĒā§œā§‡ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ + +## āĻŽāĻĄā§‡āϞ āĻāĻ•ā§āϏāĻĒā§‹āĻ°ā§āϟ āĻ•āϰāĻž + +Edge āĻ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ āϚāĻžāϞāĻžāύ⧋āϰ āϜāĻ¨ā§āϝ, āĻāϟāĻŋ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāĻļāύ āĻĨ⧇āϕ⧇ āĻāĻ•ā§āϏāĻĒā§‹āĻ°ā§āϟ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāĻļāύ āĻĻ⧁āχ āϧāϰāϪ⧇āϰ āĻŽāĻĄā§‡āϞ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ - āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻŽāĻĄā§‡āϞ āĻāĻŦāĻ‚ āĻ•āĻŽāĻĒā§āϝāĻžāĻ•ā§āϟ āĻŽāĻĄā§‡āϞāĨ¤ āĻ•āĻŽā§āĻĒā§āϝāĻžāĻ•ā§āϟ āĻŽāĻĄā§‡āϞāϗ⧁āϞāĻŋ āĻŽāĻĄā§‡āϞ⧇āϰ āφāĻ•āĻžāϰ āĻ•āĻŽāĻžāϤ⧇ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻ•ā§ŒāĻļāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇, āĻāϟāĻŋ āφāχāĻ“āϟāĻŋ āĻĄāĻŋāĻ­āĻžāχāϏ⧇ āĻĄāĻžāωāύāϞ⧋āĻĄ āĻāĻŦāĻ‚ āĻŽā§‹āϤāĻžāϝāĻŧ⧇āύ⧇āϰ āϜāĻ¨ā§āϝ āϝāĻĨ⧇āĻˇā§āϟ āϛ⧋āϟ āĻ•āϰ⧇ āϤ⧋āϞ⧇āĨ¤ + +āϝāĻ–āύ āφāĻŽāϰāĻž āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ āϤ⧈āϰāĻŋ āĻ•āϰāĻŋ, āϤāĻ–āύ āφāĻŽāϰāĻž *Food* āĻĄā§‹āĻŽā§‡āχāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĻ›āĻŋāϞāĻžāĻŽ, āĻŽāĻĄā§‡āϞāϟāĻŋāϰ āĻāĻ•āϟāĻŋ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ āϝāĻž Food āχāĻŽā§‡āϜāϗ⧁āϞāĻŋāϤ⧇ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāϪ⧇āϰ āϜāĻ¨ā§āϝ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāϜ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāĻļāύ⧇, āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āĻĄā§‹āĻŽā§‡āχāύ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāϤ⧇, āφāĻŽāĻžāĻĻ⧇āϰ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āϤāĻĨā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āύāϤ⧁āύ āĻĄā§‹āĻŽā§‡āύ⧇āϰ āϏāĻžāĻĨ⧇ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āĻŽāĻĄā§‡āϞāϕ⧇ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĻāĻŋāϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāĻļāύ āĻĻā§āĻŦāĻžāϰāĻž āϏāĻŽāĻ°ā§āĻĨāĻŋāϤ āϏāĻŽāĻ¸ā§āϤ āĻĄā§‹āĻŽā§‡āχāύ āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻāĻŦāĻ‚ āĻ•āĻŽāĻĒā§āϝāĻžāĻ•ā§āϟ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻĒāĻžāĻ“ā§ŸāĻž āϝāĻžā§ŸāĨ¤ + +### āĻ•āĻžāϜ - āĻŽāĻĄā§‡āϞāϟāĻŋāϕ⧇ Food (compact) domain āĻ āĻŸā§āϰ⧇āχāύāĻŋāĻ‚ āĻĒā§āϰāĻĻāĻžāύ + +1. Custom Vision portal āĻ āϝāĻžāĻ“ā§ŸāĻžāϰ āϜāĻ¨ā§āϝ [CustomVision.ai](https://customvision.ai) āϤ⧇ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰāĻŋ āĻāĻŦāĻ‚ āϏāĻžāχāύ āχāύ āĻ•āϰ⧇ āύāĻŋāχ āϝāĻĻāĻŋ āφāϗ⧇ āĻĨ⧇āϕ⧇ āϏāĻžāχāύ āχāύ āĻ•āϰāĻž āύāĻž āĻĨāĻžāϕ⧇āĨ¤ āĻāĻ–āύ `fruit-quality-detector` āĻĒā§āϰāĻœā§‡āĻ•ā§āϟāϟāĻŋ āϚāĻžāϞ⧁ āĻ•āϰāĻŋāĨ¤ + +1. āĻāĻ–āύ **Settings** āϏāĻŋāϞ⧇āĻ•ā§āϟ āĻ•āϰāĻŋ (āĻāχ ⚙ āϚāĻŋāĻšā§āύ) + +1. *Domains* āϞāĻŋāĻ¸ā§āϟ āĻĨ⧇āϕ⧇, āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰāĻŋ *Food (compact)* + +1. āϤāĻžāϰāĻĒāϰ *Export Capabilities* āĻĨ⧇āϕ⧇ *Basic platforms (Tensorflow, CoreML, ONNX, ...)* āϏāĻŋāϞ⧇āĻ•ā§āϟ āĻ•āϰāĻŋāĨ¤ + +1. Settings āĻĒ⧇āχāĻœā§‡āϰ āĻāĻ•āĻĻāĻŽ āύ⧀āĻšā§‡ āĻĨāĻžāĻ•āĻž **Save Changes** āĻ āϏāĻŋāϞ⧇āĻ•ā§āϟ āĻ•āϰāĻŋāĨ¤ + +1. āĻāĻ–āύ **Train** āĻ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰ⧇, *Quick training* āĻ…āĻĒāĻļāύāϟāĻŋ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰ⧇ āĻŽāĻĄā§‡āϞāϕ⧇ āĻŸā§āϰ⧇āχāύ āĻ•āϰāĻŋāĨ¤ + +### Task - āĻŽāĻĄā§‡āϞ āĻāĻ•ā§āϏāĻĒā§‹āĻ°ā§āϟ āĻ•āϰāĻž + +āĻŽāĻĄā§‡āϞāϟāĻŋ āĻāĻ•āĻŦāĻžāϰ āĻŸā§āϰ⧇āχāύ āĻšā§Ÿā§‡ āϗ⧇āϞ⧇ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āϏāĻš āĻāĻ•ā§āϏāĻĒā§‹āĻ°ā§āϟ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ + +1. **Performance** āĻŸā§āϝāĻžāĻŦ⧇ āĻ—āĻŋā§Ÿā§‡ āĻ•āĻŽā§āĻĒā§āϝāĻžāĻ•ā§āϟ āĻĄā§‹āĻŽā§‡āχāύ⧇āϰ āĻ—āϤ āχāϟāĻžāϰ⧇āĻļāύ āϟāĻŋ āϤ⧇ āϝāĻžāχāĨ¤ + +1. āϏ⧇āĻ–āĻžāύ⧇ āωāĻĒāϰ⧇āϰ āĻĻāĻŋāϕ⧇ **Export** āĻŦāĻžāϟāύ⧇ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰāĻŋāĨ¤ + +1. **DockerFile** āϏāĻŋāϞ⧇āĻ•ā§āϟ āĻ•āϰāĻŋ, āϤāĻžāϰāĻĒāϰ āφāĻŽāĻžāĻĻ⧇āϰ Edge āĻĄāĻŋāĻ­āĻžāχāϏ⧇āϰ āϏāĻžāĻĨ⧇ āĻŽāĻŋāϞ⧇ āĻāĻŽāύ āĻāĻ•āϟāĻŋ āĻ­āĻžāĻ°ā§āϏāύ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰāĻŋ: + + * Linux computer, Windows computer āĻŦāĻž Virtual Machine āĻ IoT Edge āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϞ⧇, *Linux* āĻ­āĻžāĻ°ā§āϏāύāϟāĻŋ āϏāĻŋāϞ⧇āĻ•ā§āϟ āĻ•āϰāĻŋāĨ¤ + * Raspberry Pi āĻ IoT Edge āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϞ⧇ , *ARM (Raspberry Pi 3)* āĻ­āĻžāĻ°ā§āϏāύāϟāĻŋ āϏāĻŋāϞ⧇āĻ•ā§āϟ āĻ•āϰāĻŋāĨ¤ + + > 🎓 Docker āĻšāϞ⧋ āĻ•āύāĻŸā§‡āχāύāĻžāϰ āĻĒāϰāĻŋāϚāĻžāϞāύāĻžāϰ āϜāĻ¨ā§āϝ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āϜāύāĻĒā§āϰāĻŋāϝāĻŧ āĻŸā§āϝ⧁āϞāϗ⧁āϞāĻŋāϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋ āĻāĻŦāĻ‚ āĻĄāĻ•āĻžāϰ āĻĢāĻžāχāϞ āĻšāϞ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āϏ⧇āϟ āφāĻĒ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻžāĻŦāϞ⧀āϰ āĻāĻ•āϟāĻŋ āϏ⧇āϟāĨ¤ + +1. āĻāĻŦāĻžāϰ **Export** āĻ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰāϞ⧇ Custom Vision āĻāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāĻ¨ā§€ā§Ÿ āĻĢāĻžāχāϞāϗ⧁āϞāĻŋ āϤ⧈āϰ⧀ āĻšā§Ÿā§‡ āϝāĻžāĻŦ⧇āĨ¤ āϤāĻžāϰāĻĒāϰ **Download** āĻ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰ⧇ āϜāĻŋāĻĒ āĻĢāĻžāχāϞ āφāĻ•āĻžāϰ⧇ āĻāϗ⧁āϞ⧋ āĻĄāĻžāωāύāϞ⧋āĻĄ āĻ•āϰāĻŋāĨ¤ + +1. āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ⧇ āϏ⧇āĻ­ āĻ•āϰāĻžāϰ āĻĒāϰ āĻĢā§‹āĻ˛ā§āĻĄāĻžāϰāϟāĻŋ unzip āĻ•āϰāĻŋāĨ¤ + +## āĻĄā§‡āĻĒā§āϞ⧟āĻŽā§‡āĻ¨ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āĻĒā§āϰāĻ¸ā§āϤ⧁āϤāĻ•āϰāĻŖ + +![Containers are built then pushed to a container registry, then deployed from the container registry to an edge device using IoT Edge](../../../../images/container-edge-flow.png) + +āĻāĻ•āĻŦāĻžāϰ āĻŽāĻĄā§‡āϞāϟāĻŋ āĻĄāĻžāωāύāϞ⧋āĻĄ āĻ•āϰāĻžāϰ āĻĒāϰ⧇, āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻ•āύāĻŸā§‡āχāύāĻžāϰ āĻŦāĻŋāĻ˛ā§āĻĄ āĻ•āϰāĻž āĻĒā§āϰāϝāĻŧā§‹āϜāύ, āϤāĻžāϰāĻĒāϰ āĻāĻ•āϟāĻŋ āĻ•āύāĻŸā§‡āχāύāĻžāϰ āϰ⧇āϜāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāϤ⧇ āĻĒ⧁āĻļ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ - āϝāĻž āĻāĻ•āϟāĻŋ āĻ…āύāϞāĻžāχāύ āĻ¸ā§āĻŸā§‹āϰ⧇āϜ āϝ⧇āĻ–āĻžāύ⧇ āφāĻŽāϰāĻž āϤāĻž āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ IoT Edge āϤāĻžāϰāĻĒāϰ āϰ⧇āϜāĻŋāĻ¸ā§āĻŸā§āϰāĻŋ āĻĨ⧇āϕ⧇ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰāϟāĻŋ āĻĄāĻžāωāύāϞ⧋āĻĄ āĻ•āϰ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻĄāĻŋāĻ­āĻžāχāϏ⧇ āĻĒ⧁āĻļ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āĨ¤ + +![THe Azure Container Registry logo](../../../../images/azure-container-registry-logo.png) + +āĻāχ āĻĒāĻžāϠ⧇āϰ āϜāĻ¨ā§āϝ āϝ⧇ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āϰ⧇āϜāĻŋāĻ¸ā§āĻŸā§āϰāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ āϤāĻž āĻšāϞ Azure Container RegistryāĨ¤ āĻāϟāĻŋ āϕ⧋āύ āĻĢā§āϰ⧀ āϏāĻžāĻ°ā§āĻ­āĻŋāϏ āύ⧟, āϤāĻžāχ āĻ…āĻ°ā§āĻĨ⧇āϰ āĻ…āĻĒāϚ⧟ āϰ⧋āϧ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ•āĻžāϜ āĻļ⧇āώ āĻšāĻ“ā§ŸāĻžāϰ āĻĒāϰ āφāĻŽāĻžāĻĻ⧇āϰāϕ⧇ [clean up your project](../../../clean-up.md) āĻ…āύ⧁āϏāϰāĻŖ āĻ•āϰ⧇ āĻāϟāĻŋ āĻŦāĻ¨ā§āϧ āĻ•āϰ⧇ āĻĻāĻŋāϤ⧇ āĻšāĻŦ⧇āĨ¤ + +> 💁 Azure Container Registry āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āĻ–āϰāϚ āφāĻŽāϰāĻž [Azure Container Registry pricing page](https://azure.microsoft.com/pricing/details/container-registry/?WT.mc_id=academic-17441-jabenn) āĻĨ⧇āϕ⧇ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϰāĻŋ āĨ¤ + +### āĻ•āĻžāϜ - Docker āχāĻ¨ā§āϏāϟāϞ āĻ•āϰāĻž + +āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ āĻŦāĻŋāĻ˛ā§āĻĄ āĻāĻŦāĻ‚ āĻĄā§‡āĻĒāϞ⧟ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āφāĻŽāĻžāĻĻ⧇āϰāϕ⧇ [Docker](https://www.docker.com/) āχāĻ¨ā§āϏāϟāϞ āĻ•āϰ⧇ āϰāĻžāĻ–āϤ⧇ āĻšāĻŦ⧇āĨ¤ + +1. [Docker install page](https://www.docker.com/products/docker-desktop) āĻĨ⧇āϕ⧇ āĻĻ⧇āϖ⧇ āύāĻŋāχ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻāϟāĻŋ āχāĻ¨ā§āϏāϟāϞ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ + +### āĻ•āĻžāϜ - container registry resource āϤ⧈āϰ⧀ + +1. Azure Container Registry resource āϤ⧈āϰ⧀āϰ āϜāĻ¨ā§āϝ āϟāĻžāĻ°ā§āĻŽāĻŋāύāĻžāϞ āĻŦāĻž āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĒā§āϰāĻŽā§āĻĒāϟ āĻĨ⧇āϕ⧇ āύ⧀āĻšā§‡āϰ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϰāĻžāύ āĻĻāĻŋāχ: + + ```sh + az acr create --resource-group fruit-quality-detector \ + --sku Basic \ + --name + ``` + + `` āĻāϰ āĻ¸ā§āĻĨāϞ⧇ āĻāĻ•āϟāĻŋ āχāωāύāĻŋāĻ• āύāĻžāĻŽ āĻĻāĻŋāχ āϕ⧇āĻŦāϞ āĻ…āĻ•ā§āώāϰ āĻ“ āϏāĻ‚āĻ–ā§āϝāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ āĻāĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ `fruitqualitydetector`āĻāϰ āĻ•āĻžāĻ›āĻžāĻ•āĻžāĻ›āĻŋ āϕ⧋āύ āύāĻžāĻŽ āĻĻā§‡ā§ŸāĻžāχ āϏāĻŽā§€āĻšā§€āύ āĻšāĻŦ⧇āĨ¤ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āϰ⧇āϜāĻŋāĻ¸ā§āĻŸā§āϰāĻŋ āϤ⧇ āĻāĻ•āϏ⧇āϏ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ URL āĻāϰ āĻāĻ•āϟāĻŋ āĻ…āĻ‚āĻļ⧇ āĻāχ āύāĻžāĻŽ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšāĻŦ⧇āĨ¤ āϤāĻžāχ āύāĻžāĻŽāϟāĻŋāϕ⧇ āχāωāύāĻŋāĻ• āĻšāϤ⧇ āĻšāĻŦ⧇āĨ¤ + +1. āύāĻŋāĻŽā§āύ⧇āϰ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ Azure Container Registry āϤ⧇ āϞāĻ—āĻŋāύ āĻ•āϰāĻŋ: + + ```sh + az acr login --name + ``` + + `` āĻāϰ āĻ¸ā§āĻĨāϞ⧇ āĻ•āĻ¨ā§āĻŸā§‡āύāĻžāϰ āϰ⧇āϜāĻŋāĻ¸ā§āĻŸā§āϰāĻŋ āĻāϰ āύāĻžāĻŽ āĻŦāϏāĻžāχ + +1. Container registry āϟāĻŋ admin mode āĻ āϏ⧇āϟ āĻ•āϰāĻŋ āϝāĻžāϤ⧇ āĻĒāĻžāϏāĻ“ā§ŸāĻžāĻ°ā§āĻĄ āϏ⧇āϟ āĻ•āϰāĻž āϝāĻžā§Ÿāσ + + ```sh + az acr update --admin-enabled true \ + --name + ``` + + `` āĻāϰ āĻ¸ā§āĻĨāϞ⧇ āĻ•āĻ¨ā§āĻŸā§‡āύāĻžāϰ āϰ⧇āϜāĻŋāĻ¸ā§āĻŸā§āϰāĻŋ āĻāϰ āύāĻžāĻŽ āĻŦāϏāĻžāχāĨ¤ + +1. āύāĻŋāĻŽā§āύ⧇āϰ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĻāĻŋā§Ÿā§‡ āĻĒāĻžāϏāĻ“ā§ŸāĻžāĻ°ā§āĻĄ āϏ⧇āϟ āĻ•āϰāĻŋ: + + ```sh + az acr credential renew --password-name password \ + --output table \ + --name + ``` + + `` āĻāϰ āĻ¸ā§āĻĨāϞ⧇ āĻ•āĻ¨ā§āĻŸā§‡āύāĻžāϰ āϰ⧇āϜāĻŋāĻ¸ā§āĻŸā§āϰāĻŋ āĻāϰ āύāĻžāĻŽ āĻŦāϏāĻžāχ + + `PASSWORD` āĻāϰ āĻ­ā§āϝāĻžāϞ⧁āϟāĻŋ āĻ•āĻĒāĻŋ āĻ•āϰ⧇ āϕ⧋āĻĨāĻžāĻ“ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧇ āϰāĻžāĻ–āĻŋ āϕ⧇āύāύāĻž āĻĒāϰ⧇ āĻāϟāĻŋāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšāĻŦ⧇ + +### āĻ•āĻžāϜ - āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āϤ⧈āϰ⧀ āĻ•āϰāĻž + +āφāĻŽāϰāĻž āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāĻļāύ āĻĨ⧇āϕ⧇ āϝāĻž āĻĄāĻžāωāύāϞ⧋āĻĄ āĻ•āϰ⧇āĻ›āĻŋāϞāĻžāĻŽ āϤāĻž āĻāĻ•āϟāĻŋ āĻĄāĻ•āĻžāϰāĻĢāĻžāχāϞ āϝāĻž āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰāϟāĻŋ āϕ⧀āĻ­āĻžāĻŦ⧇ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āωāϚāĻŋāϤ āϤāĻžāϰ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻžāĻŦāϞ⧀, āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āϕ⧋āĻĄ āϏāĻš āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāĻļāύ āĻŽāĻĄā§‡āϞ āĻšā§‹āĻ¸ā§āϟ āĻ•āϰāĻžāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāĻ¨ā§€ā§Ÿ āĻĢāĻžāχāϞ āĻāĻŦāĻ‚ REST API āĻ°ā§Ÿā§‡āϛ⧇āĨ¤ āφāĻŽāϰāĻž DockerFile āĻĨ⧇āϕ⧇ āĻāĻ•āϟāĻŋ āĻŸā§āϝāĻžāĻ—āϝ⧁āĻ•ā§āϤ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ Docker āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ, āϤāĻžāϰāĻĒāϰ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āϰ⧇āϜāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāϤ⧇ āĻāϟāĻŋ āĻĒ⧁āĻļ āĻ•āϰ⧇ āĻĻāĻŋāχāĨ¤ + +> 🎓 āĻ•āύāĻŸā§‡āχāύāĻžāϰāϗ⧁āϞāĻŋāϕ⧇ āĻāĻ•āϟāĻŋ āĻŸā§āϝāĻžāĻ— āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϝāĻŧ āϝāĻž āϤāĻžāĻĻ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āύāĻžāĻŽ āĻāĻŦāĻ‚ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰ⧇āĨ¤ āϝāĻ–āύ āĻāĻ•āϟāĻŋ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻžāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āϤāĻ–āύ āφāĻŽāϰāĻž āĻāϟāĻŋ āĻāĻ•āχ āĻŸā§āϝāĻžāĻ— āĻĻāĻŋāϝāĻŧ⧇ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻ­āĻŋāĻ¨ā§āύ āĻ­āĻžāĻ°ā§āϏāύ⧇āĨ¤ + +1. āϟāĻžāĻ°ā§āĻŽāĻŋāύāĻžāϞ āĻŦāĻž āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĒā§āϰāĻŽā§āĻĒāϟ āĻĨ⧇āϕ⧇ āĻ¨ā§āϝāĻžāĻ­āĻŋāϗ⧇āϟ āĻ•āϰ⧇ āĻ•āĻžā§āϏāϟāĻŽ āĻ­āĻŋāĻļāύ⧇āϰ unzipped model āĻ āϝāĻžāχāĨ¤ + +1. āύāĻŋāĻŽā§āύ⧇āϰ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĻāĻŋā§Ÿā§‡ āχāĻŽā§‡āϜāϗ⧁āϞ⧋ āĻŦāĻŋāĻ˛ā§āĻĄ āĻāĻŦāĻ‚ āĻŸā§āϝāĻžāĻ— āĻ•āϰāĻŋ: + + ```sh + docker build --platform -t .azurecr.io/classifier:v1 . + ``` + + āĻāĻ–āύ `` āĻāϰ āĻ¸ā§āĻĨāϞ⧇ āϝ⧇ āĻĒā§āϞāĻžāϟāĻĢāĻ°ā§āĻŽā§‡ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āϰāĻžāύ āĻ•āϰāĻŦ⧇, āϏ⧇āϟāĻŋ āĻĻāĻŋāχāĨ¤ āϰāĻžāĻ¸ā§āĻĒāĻŦ⧇āϰāĻŋ āĻĒāĻžāχ āĻšāϞ⧇ `linux/arm64`, ⧟āĻžāϰ āĻ…āĻ¨ā§āϝāϏāĻŦ āĻ•āĻŋāϛ⧁āϤ⧇āχ `linux/amd64` āĻĻāĻŋāϤ⧇ āĻšāĻŦ⧇āĨ¤ + + > 💁 āĻāĻ•āχ āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨ⧇āϕ⧇ IoT Edge āϚāĻžāϞāĻžāύ⧋ āĻāĻŦāĻ‚ āĻāχ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĻ…āϗ⧁āϞ⧋ āϰāĻžāύ āĻ•āϰāĻž āĻšāϞ⧇, `--platform ` āĻ…āĻ‚āĻļāϟāĻŋ āĻŦāĻžāĻĻ āĻĻā§‡ā§ŸāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇ āϕ⧇āύāύāĻž āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻāϟāĻŋ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϚāϞāĻŽāĻžāύ āĻĄāĻŋāĻ­āĻžāχāĻ¸ā§āϟāĻŋāϕ⧇ āϏāĻŋāϞ⧇āĻ•ā§āϟ āĻ•āϰ⧇ āϰāĻžāϖ⧇āĨ¤ + + `` āĻāϰ āĻ¸ā§āĻĨāϞ⧇ āĻ•āĻ¨ā§āĻŸā§‡āύāĻžāϰ āϰ⧇āϜāĻŋāĻ¸ā§āĻŸā§āϰāĻŋ āĻāϰ āύāĻžāĻŽ āĻŦāϏāĻžāχ + + > 💁 āϞāĻŋāύāĻžāĻ•ā§āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āĻ•āϰ⧇ āĻšāϞ⧇, āĻāχ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϰāĻžāύ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ `sudo` āϝ⧋āĻ— āĻ•āϰāϤ⧇ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ + + Docker āĻāĻ–āĻžāύ⧇ āχāĻŽā§‡āϜ āϤ⧈āϰāĻŋ āĻ•āϰāĻŦ⧇, āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āϏāĻŦ āϏāĻĢāϟāĻ“āϝāĻŧā§āϝāĻžāϰ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰāĻŦ⧇āĨ¤ āϤāĻžāϰāĻĒāϰ āĻ›āĻŦāĻŋāϟāĻŋ `classifier:v1` āĻšāĻŋāϏ⧇āĻŦ⧇ āĻŸā§āϝāĻžāĻ— āĻ•āϰāĻž āĻšāĻŦ⧇āĨ¤ + + ```output + ➜ d4ccc45da0bb478bad287128e1274c3c.DockerFile.Linux docker build --platform linux/amd64 -t fruitqualitydetectorjimb.azurecr.io/classifier:v1 . + [+] Building 102.4s (11/11) FINISHED + => [internal] load build definition from Dockerfile + => => transferring dockerfile: 131B + => [internal] load .dockerignore + => => transferring context: 2B + => [internal] load metadata for docker.io/library/python:3.7-slim + => [internal] load build context + => => transferring context: 905B + => [1/6] FROM docker.io/library/python:3.7-slim@sha256:b21b91c9618e951a8cbca5b696424fa5e820800a88b7e7afd66bba0441a764d6 + => => resolve docker.io/library/python:3.7-slim@sha256:b21b91c9618e951a8cbca5b696424fa5e820800a88b7e7afd66bba0441a764d6 + => => sha256:b4d181a07f8025e00e0cb28f1cc14613da2ce26450b80c54aea537fa93cf3bda 27.15MB / 27.15MB + => => sha256:de8ecf497b753094723ccf9cea8a46076e7cb845f333df99a6f4f397c93c6ea9 2.77MB / 2.77MB + => => sha256:707b80804672b7c5d8f21e37c8396f319151e1298d976186b4f3b76ead9f10c8 10.06MB / 10.06MB + => => sha256:b21b91c9618e951a8cbca5b696424fa5e820800a88b7e7afd66bba0441a764d6 1.86kB / 1.86kB + => => sha256:44073386687709c437586676b572ff45128ff1f1570153c2f727140d4a9accad 1.37kB / 1.37kB + => => sha256:3d94f0f2ca798607808b771a7766f47ae62a26f820e871dd488baeccc69838d1 8.31kB / 8.31kB + => => sha256:283715715396fd56d0e90355125fd4ec57b4f0773f306fcd5fa353b998beeb41 233B / 233B + => => sha256:8353afd48f6b84c3603ea49d204bdcf2a1daada15f5d6cad9cc916e186610a9f 2.64MB / 2.64MB + => => extracting sha256:b4d181a07f8025e00e0cb28f1cc14613da2ce26450b80c54aea537fa93cf3bda + => => extracting sha256:de8ecf497b753094723ccf9cea8a46076e7cb845f333df99a6f4f397c93c6ea9 + => => extracting sha256:707b80804672b7c5d8f21e37c8396f319151e1298d976186b4f3b76ead9f10c8 + => => extracting sha256:283715715396fd56d0e90355125fd4ec57b4f0773f306fcd5fa353b998beeb41 + => => extracting sha256:8353afd48f6b84c3603ea49d204bdcf2a1daada15f5d6cad9cc916e186610a9f + => [2/6] RUN pip install -U pip + => [3/6] RUN pip install --no-cache-dir numpy~=1.17.5 tensorflow~=2.0.2 flask~=1.1.2 pillow~=7.2.0 + => [4/6] RUN pip install --no-cache-dir mscviplib==2.200731.16 + => [5/6] COPY app /app + => [6/6] WORKDIR /app + => exporting to image + => => exporting layers + => => writing image sha256:1846b6f134431f78507ba7c079358ed66d944c0e185ab53428276bd822400386 + => => naming to fruitqualitydetectorjimb.azurecr.io/classifier:v1 + ``` + +### āĻ•āĻžāϜ - āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰāϕ⧇ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āϰ⧇āϜāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāϤ⧇ āĻĒ⧁āĻļ āĻ•āϰāĻž + +1. āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰāϕ⧇ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āϰ⧇āϜāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāϤ⧇ āĻĒ⧁āĻļ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āύāĻŋāĻŽā§āύ⧇āϰ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϰāĻžāύ āĻĻāĻŋāχ: + + ```sh + docker push .azurecr.io/classifier:v1 + ``` + + `` āĻāϰ āĻ¸ā§āĻĨāϞ⧇ āĻ•āĻ¨ā§āĻŸā§‡āύāĻžāϰ āϰ⧇āϜāĻŋāĻ¸ā§āĻŸā§āϰāĻŋ āĻāϰ āύāĻžāĻŽ āĻŦāϏāĻžāχ + + > 💁 āϞāĻŋāύāĻžāĻ•ā§āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āĻ•āϰ⧇ āĻšāϞ⧇, āĻāχ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϰāĻžāύ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ `sudo` āϝ⧋āĻ— āĻ•āϰāϤ⧇ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ + + āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰāϟāĻŋ āĻĒ⧁āĻļ āĻšā§Ÿā§‡ āϝāĻžāĻŦ⧇āĨ¤ + + ```output + ➜ d4ccc45da0bb478bad287128e1274c3c.DockerFile.Linux docker push fruitqualitydetectorjimb.azurecr.io/classifier:v1 + The push refers to repository [fruitqualitydetectorjimb.azurecr.io/classifier] + 5f70bf18a086: Pushed + 8a1ba9294a22: Pushed + 56cf27184a76: Pushed + b32154f3f5dd: Pushed + 36103e9a3104: Pushed + e2abb3cacca0: Pushed + 4213fd357bbe: Pushed + 7ea163ba4dce: Pushed + 537313a13d90: Pushed + 764055ebc9a7: Pushed + v1: digest: sha256:ea7894652e610de83a5a9e429618e763b8904284253f4fa0c9f65f0df3a5ded8 size: 2423 + ``` + +1. Push āĻ āĻŋāĻ•āĻŽāϤ āĻšā§Ÿā§‡āϛ⧇ āĻ•āĻŋāύāĻž āϤāĻž āϭ⧇āϰāĻŋāĻĢāĻžāχ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ⧇āϰ āϞāĻŋāĻ¸ā§āϟ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϰāĻŋ: + + ```sh + az acr repository list --output table \ + --name + ``` + + `` āĻāϰ āĻ¸ā§āĻĨāϞ⧇ āĻ•āĻ¨ā§āĻŸā§‡āύāĻžāϰ āϰ⧇āϜāĻŋāĻ¸ā§āĻŸā§āϰāĻŋ āĻāϰ āύāĻžāĻŽ āĻŦāϏāĻžāχ + + ```output + ➜ d4ccc45da0bb478bad287128e1274c3c.DockerFile.Linux az acr repository list --name fruitqualitydetectorjimb --output table + Result + ---------- + classifier + ``` + + āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ⧇āϰ āϞāĻŋāĻ¸ā§āϟ āϚāϞ⧇ āφāϏāĻŦ⧇āĨ¤ + +## āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āĻĄā§‡āĻĒā§āϞ⧟ āĻ•āϰāĻž + +āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āĻāĻ–āύ āφāχāĻ“āϟāĻŋ āĻāϜ āĻĄāĻŋāĻ­āĻžāχāϏ⧇ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻĄā§‡āĻĒā§āϞ⧟ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ deployment manifest āϕ⧇ āĻĄāĻŋāĻĢāĻžāχāύ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ - āĻāϟāĻŋ āĻāĻ•āϟāĻŋ JSON āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āϟ āϝāĻž EdgeāĻĄāĻŋāĻ­āĻžāχāϏ⧇ āĻŽāĻĄāĻŋāωāϞāϗ⧁āϞāĻŋ āϤāĻžāϞāĻŋāĻ•āĻžāϭ⧁āĻ•ā§āϤ āĻ•āϰ⧇āĨ¤ + +### āĻ•āĻžāϜ - deployment manifest āϤ⧈āϰ⧀ āĻ•āϰāĻž + +1. āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ⧇ `deployment.json` āύāĻžāĻŽā§‡ āĻāĻ•āϟāĻŋ āĻĢāĻžāχāϞ āϤ⧈āϰ⧀ āĻ•āϰāĻŋāĨ¤ + +1. āύāĻŋāĻŽā§āύ⧇āϰ āĻ…āĻ‚āĻļāϟ⧁āϕ⧁ āϏ⧇āχ āĻĢāĻžāχāϞ⧇ āϝ⧋āĻ— āĻ•āϰāĻŋ: + + ```json + { + "content": { + "modulesContent": { + "$edgeAgent": { + "properties.desired": { + "schemaVersion": "1.1", + "runtime": { + "type": "docker", + "settings": { + "minDockerVersion": "v1.25", + "loggingOptions": "", + "registryCredentials": { + "ClassifierRegistry": { + "username": "", + "password": "", + "address": ".azurecr.io" + } + } + } + }, + "systemModules": { + "edgeAgent": { + "type": "docker", + "settings": { + "image": "mcr.microsoft.com/azureiotedge-agent:1.1", + "createOptions": "{}" + } + }, + "edgeHub": { + "type": "docker", + "status": "running", + "restartPolicy": "always", + "settings": { + "image": "mcr.microsoft.com/azureiotedge-hub:1.1", + "createOptions": "{\"HostConfig\":{\"PortBindings\":{\"5671/tcp\":[{\"HostPort\":\"5671\"}],\"8883/tcp\":[{\"HostPort\":\"8883\"}],\"443/tcp\":[{\"HostPort\":\"443\"}]}}}" + } + } + }, + "modules": { + "ImageClassifier": { + "version": "1.0", + "type": "docker", + "status": "running", + "restartPolicy": "always", + "settings": { + "image": ".azurecr.io/classifier:v1", + "createOptions": "{\"ExposedPorts\": {\"80/tcp\": {}},\"HostConfig\": {\"PortBindings\": {\"80/tcp\": [{\"HostPort\": \"80\"}]}}}" + } + } + } + } + }, + "$edgeHub": { + "properties.desired": { + "schemaVersion": "1.1", + "routes": { + "upstream": "FROM /messages/* INTO $upstream" + }, + "storeAndForwardConfiguration": { + "timeToLiveSecs": 7200 + } + } + } + } + } + } + ``` + + > 💁 āĻāχ āĻĢāĻžāχāϞāϟāĻŋ [code-deployment/deployment](code-deployment/deployment) folder āĻ āĻĒāĻžāĻ“ā§ŸāĻž āϝāĻžāĻŦ⧇āĨ¤ + + ā§ŠāϟāĻŋ `` āĻāϰ āϜāĻžā§ŸāĻ—āĻžā§Ÿ āφāĻŽāĻžāĻĻ⧇āϰ āĻŦā§āϝāĻŦāĻšā§ƒāϤ container registry āĻāϰ āύāĻžāĻŽ āĻŦāϏāĻžāχāĨ¤ ā§§āϟāĻŋ `ImageClassifier` āĻŽāĻĄāĻŋāωāϞ⧇, āĻŦāĻžāĻ•āĻŋ ⧍āϟāĻŋ `registryCredentials` āĻ…āĻ‚āĻļ⧇ āĻ°ā§Ÿā§‡āϛ⧇āĨ¤ + + āĻāĻ–āύ `` āĻ…āĻ‚āĻļ⧇āϰ `registryCredentials` āϏ⧇āĻ•āĻļāύ⧇ āĻĒāĻžāϏāĻ“ā§ŸāĻžāĻ°ā§āĻĄ āĻĻāĻŋāχāĨ¤ + +1. āϝ⧇ āĻĢā§‹āĻ˛ā§āĻĄāĻžāϰ⧇ deployment manifest āĻ°ā§Ÿā§‡āϛ⧇ āϏ⧇āĻ–āĻžāύ⧇ āύāĻŋāĻŽā§āύ⧇āϰ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϰāĻžāύ āĻ•āϰāĻŋ: + + ```sh + az iot edge set-modules --device-id fruit-quality-detector-edge \ + --content deployment.json \ + --hub-name + ``` + + `` āĻāϰ āĻ¸ā§āĻĨāϞ⧇ āφāĻŽāĻžāĻĻ⧇āϰ IoT Hub āĻāϰ āύāĻžāĻŽ āĻŦāϏāĻžāχāĨ¤ + + Edge āĻĄāĻŋāĻ­āĻžāχāϏ⧇ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ āĻŽāĻĄāĻŋāωāϞāϟāĻŋ āĻĄā§‡āĻĒā§āϞ⧟ āĻšā§Ÿā§‡ āϝāĻžāĻŦ⧇āĨ¤ + +### āĻ•āĻžāϜ - āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰāϟāĻŋ āϚāϞāϛ⧇ āĻ•āĻŋāύāĻž āϤāĻž āϭ⧇āϰāĻŋāĻĢāĻžāχ āĻ•āϰāĻž + +1. IoT edge device āĻ āĻ•āĻžāύ⧇āĻ•ā§āϟ āĻ•āϰāĻž: + + * Raspberry Pi āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āĻšāϞ⧇, āĻ•āĻžāύ⧇āĻ•ā§āϟ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āĻšā§Ÿ ssh āĻĻāĻŋā§Ÿā§‡ terminal āĻĨ⧇āϕ⧇ āĻĨ⧇āϕ⧇ āĻ…āĻĨāĻŦāĻž āϕ⧋āύ VS Code āĻĨ⧇āϕ⧇ āϕ⧋āύ remote SSH session āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ + * āωāχāĻ¨ā§āĻĄā§‹āĻœā§‡ Linux container āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āĻšāϞ⧇, [verify successful configuration guide](https://docs.microsoft.com/azure/iot-edge/how-to-install-iot-edge-on-windows?WT.mc_id=academic-17441-jabenn&view=iotedge-2018-06&tabs=powershell#verify-successful-configuration) āϟāĻŋ āĻ…āύ⧁āϏāϰāĻŖ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ + * Virtual machine āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āĻšāϞ⧇, `adminUsername` āĻāĻŦāĻ‚ `password` āϏ⧇āϟ āĻ•āϰāĻžāϰ āϏāĻŽā§Ÿāχ SSH āĻ•āϰ⧇ āϰāĻžāĻ–āĻž āϝāĻžā§Ÿ + + ```sh + ssh @ + ``` + + āĻ…āĻĨāĻŦāĻž: + + ```sh + ssh @ + ``` + + āĻĒāĻžāϏāĻ“ā§ŸāĻžāĻ°ā§āĻĄ āϚāĻžāχāϞ⧇, āϤāĻž āĻĒā§āϰāĻŦ⧇āĻļ āĻ•āϰāĻžāχāĨ¤ + +1. āĻ•āĻžāύ⧇āĻ•ā§āϟ āĻšā§Ÿā§‡ āϗ⧇āϞ⧇, IoT Edge module āϗ⧁āϞ⧋ āĻĻ⧇āĻ–āĻžāϰ āϜāĻ¨ā§āϝ āύāĻŋāĻŽā§āύ⧇āϰ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϰāĻžāύ āĻĻāĻŋāχ : + + ```sh + iotedge list + ``` + + > 💁 āĻāĻ–āĻžāύ⧇ `sudo` āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ + + āϰāĻžāύāĻŋāĻ‚ āĻŽāĻĄāĻŋāωāϞāϗ⧁āϞ⧋ āĻĻ⧇āĻ–āĻž āϝāĻžāĻŦ⧇: + + ```output + jim@fruit-quality-detector-jimb:~$ iotedge list + NAME STATUS DESCRIPTION CONFIG + ImageClassifier running Up 42 minutes fruitqualitydetectorjimb.azurecr.io/classifier:v1 + edgeAgent running Up 42 minutes mcr.microsoft.com/azureiotedge-agent:1.1 + edgeHub running Up 42 minutes mcr.microsoft.com/azureiotedge-hub:1.1 + ``` + +1. Image classifier module āĻāϰ āϞāĻ— āĻšāĻŋāĻ¸ā§āĻŸā§‹āϰāĻŋ āĻĻ⧇āĻ–āϤ⧇ āύāĻŋāĻŽā§āύ⧇āϰ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϰāĻžāύ āĻĻāĻŋāχ : + + ```sh + iotedge logs ImageClassifier + ``` + + > 💁 āĻāχ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻāϰ āϏāĻžāĻĨ⧇ `sudo` āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ + + ```output + jim@fruit-quality-detector-jimb:~$ iotedge logs ImageClassifier + 2021-07-05 20:30:15.387144: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA + 2021-07-05 20:30:15.392185: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency: 2394450000 Hz + 2021-07-05 20:30:15.392712: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x55ed9ac83470 executing computations on platform Host. Devices: + 2021-07-05 20:30:15.392806: I tensorflow/compiler/xla/service/service.cc:175] StreamExecutor device (0): Host, Default Version + Loading model...Success! + Loading labels...2 found. Success! + * Serving Flask app "app" (lazy loading) + * Environment: production + WARNING: This is a development server. Do not use it in a production deployment. + Use a production WSGI server instead. + * Debug mode: off + * Running on http://0.0.0.0:80/ (Press CTRL+C to quit) + ``` + +### āĻ•āĻžāϜ - āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ āĻŸā§‡āĻ¸ā§āϟ āĻ•āϰāĻž + +1. CURL āĻĻāĻŋā§Ÿā§‡ image classifier āĻŸā§‡āĻ¸ā§āϟ āĻ•āϰāĻž āϝāĻžā§Ÿ āϝ⧇āĻ–āĻžāύ⧇ IP address āĻŦāĻž āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ⧇āϰ āĻšā§‹āĻ¸ā§āϟ āύ⧇āχāĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāĻŦ⧇ āϝ⧇āϟāĻŋāϤ⧇ IoT Edge agent āϚāϞāĻŽāĻžāύ āĻ°ā§Ÿā§‡āϛ⧇āĨ¤ IP address āϖ⧁āĻœā§‡ āĻŦ⧇āϰ āĻ•āϰāĻŋ: + + * IoT Edge āϝ⧇ āĻŽā§‡āĻļāĻŋāύ⧇ āϰāĻžāύ āĻšā§āĻšā§āϛ⧇ āϏ⧇āϟāĻŋ āĻĨ⧇āϕ⧇ āĻ•āĻžāϜ āĻ•āϰāϞ⧇, āĻšā§‹āĻ¸ā§āϟ āύ⧇āĻŽ āĻšāĻŦ⧇ `localhost` āĨ¤ + * VM (āĻ­āĻžāĻ°ā§āϚ⧁⧟āĻžāϞ āĻŽā§‡āĻļāĻŋāύ) āĻĨ⧇āϕ⧇ āĻ•āĻžāϜ āĻ•āϰāϞ⧇ IP address āĻ…āĻĨāĻŦāĻž āĻ­āĻŋāĻāĻŽ āĻāϰ DNS name āĻĻāĻŋāϤ⧇ āĻšāĻŦ⧇āĨ¤ + * āĻ…āĻ¨ā§āϝāĻĨāĻžā§Ÿ IoT Edge āϝ⧇ āĻŽā§‡āĻļāĻŋāύ⧇ āϚāϞāϛ⧇ āϏ⧇āϟāĻŋāϰ āφāχāĻĒāĻŋ āĻāĻĄā§āϰ⧇āϏ āϜāĻžāύāĻžāϰ āĻ…āĻ¨ā§āϝ, āϝāĻž āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϤāĻž āĻšāϞ⧋: + * Windows 10 āĻ [find your IP address guide](https://support.microsoft.com/windows/find-your-ip-address-f21a9bbc-c582-55cd-35e0-73431160a1b9?WT.mc_id=academic-17441-jabenn) āĻ…āύ⧁āϏāϰāĻŖ āĻ•āϰāĻŋāĨ¤ + * macOS āĻšāϞ⧇ [how to find you IP address on a Mac guide](https://www.hellotech.com/guide/for/how-to-find-ip-address-on-mac) āĻ…āύ⧁āϏāϰāĻŖ āĻ•āϰāĻŋāĨ¤ + * linux āĻšāϞ⧇, [how to find your IP address in Linux guide](https://opensource.com/article/18/5/how-find-ip-address-linux) āĻĨ⧇āϕ⧇ āĻĒā§āϰāĻžāχāϭ⧇āϟ āĻāĻĄā§āϰ⧇āϏ⧇āϰ āĻ…āĻ‚āĻļāϟāĻŋ āĻ…āύ⧁āϏāϰāĻŖ āĻ•āϰāĻŋāĨ¤ + +1. āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰāϕ⧇ āϞ⧋āĻ•āĻžāϞ āĻĢāĻžāχāϞ āĻĻāĻŋā§Ÿā§‡ āĻŸā§‡āĻ¸ā§āϟ āĻ•āϰāϤ⧇ āύ⧀āĻšā§‡āϰ curl āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŋ: + + ```sh + curl --location \ + --request POST 'http:///image' \ + --header 'Content-Type: image/png' \ + --data-binary '@' + ``` + + `` āĻāϰ āϜāĻžā§ŸāĻ—āĻžā§Ÿ āφāĻŽāĻžāĻĻ⧇āϰ IP address āĻŦāĻž host name āĻĻāĻŋāχ āϝ⧇āϟāĻŋ āĻĨ⧇āϕ⧇ IoT Edge āϚāϞāϛ⧇ āĻāĻŦāĻ‚ `` āĻ™ā§āϗ⧇āϰ āϜāĻžā§ŸāĻ—āĻžā§Ÿ āϝ⧇ āĻĢāĻžāχāϞ āĻĻāĻŋā§Ÿā§‡ āĻŸā§‡āĻ¸ā§āϟ āĻ•āϰāĻž āĻšāĻŦ⧇, āϏ⧇āϟāĻŋāϰ āύāĻžāĻŽ āĻĻāĻŋāχāĨ¤ + + āφāωāϟāĻĒ⧁āĻŸā§‡ āĻĒā§āϰ⧇āĻĄāĻŋāĻ•āĻļāύ āϰ⧇āϜāĻžāĻ˛ā§āϟ āĻĻ⧇āĻ–āĻž āϝāĻžāĻŦ⧇āĨ¤ + + ```output + { + "created": "2021-07-05T21:44:39.573181", + "id": "", + "iteration": "", + "predictions": [ + { + "boundingBox": null, + "probability": 0.9995615482330322, + "tagId": "", + "tagName": "ripe" + }, + { + "boundingBox": null, + "probability": 0.0004384400090202689, + "tagId": "", + "tagName": "unripe" + } + ], + "project": "" + } + ``` + + > 💁 āĻāĻ–āĻžāύ⧇ āĻāĻ•āϟāĻŋ āĻĒā§āϰ⧇āĻĄāĻŋāĻ•āĻļāύ āϕ⧀ (key) āϏāϰāĻŦāϰāĻžāĻš āĻ•āϰāĻžāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āύ⧇āχ, āĻ•āĻžāϰāĻŖ āĻāϟāĻŋ Azure āϰāĻŋāϏ⧋āĻ°ā§āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϛ⧇ āύāĻžāĨ¤ āĻĒāĻžāĻŦāϞāĻŋāĻ• āĻāĻ¨ā§āĻĄāĻĒāϝāĻŧ⧇āĻ¨ā§āϟ āĻāĻŦāĻ‚ āĻāĻĒāĻŋāφāχ āϕ⧀ (key) -āĻāϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āύāĻž āĻ•āϰ⧇, āĻāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āĻ…āĻ­ā§āϝāĻ¨ā§āϤāϰ⧀āĻŖ āύāĻŋāϰāĻžāĻĒāĻ¤ā§āϤāĻžāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧇āϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋāϤ⧇ āĻ…āĻ­ā§āϝāĻ¨ā§āϤāϰ⧀āĻŖ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āϕ⧇ āύāĻŋāϰāĻžāĻĒāĻ¤ā§āϤāĻž āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰāĻž āĻšāĻŦ⧇āĨ¤ + +## āφāĻŽāĻžāĻĻ⧇āϰ IoT Edge device āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž + +āĻāĻ–āύ āϝ⧇āĻšā§‡āϤ⧁ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ āĻāĻ•āϟāĻŋ āφāχāĻ“āϟāĻŋ āĻāϜ āĻĄāĻŋāĻ­āĻžāχāϏ⧇ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇, āĻāϟāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āφāχāĻ“āϟāĻŋ āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦā§‹āĨ¤ + +### āĻ•āĻžāϜ - āφāĻŽāĻžāĻĻ⧇āϰ IoT Edge device āĻŦā§āϝāĻŦāĻšāĻžāϰ + +IoT Edge classifier āĻĻāĻŋā§Ÿā§‡ āĻ›āĻŦāĻŋ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāχ āĻ•āϰāϤ⧇, āύāĻŋāĻŽā§āύ⧇āϰ āĻ—āĻžāχāĻĄāϗ⧁āϞ⧋ āĻ…āύ⧁āϏāϰāĻŖ āĻ•āϰāĻŋ: + +* [Arduino - Wio Terminal](../wio-terminal.md) +* [Single-board computer - Raspberry Pi/Virtual IoT device](../single-board-computer.md) + +### Model retraining + +IoT Edge- āĻ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ āϚāĻžāϞāĻžāύ⧋āϰ āĻāĻ•āϟāĻŋ āϏāĻŽāĻ¸ā§āϝāĻž āĻšāϞ āĻāϗ⧁āϞāĻŋ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāĻļāύ āĻĒā§āϰāĻœā§‡āĻ•ā§āĻŸā§‡āϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āϝ⧁āĻ•ā§āϤ āύāϝāĻŧāĨ¤ āϝāĻĻāĻŋ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāĻļāύ⧇ **Predictions** āĻŸā§āϝāĻžāĻŦāϟāĻŋ āĻĻ⧇āĻ–āĻŋ, āϤāĻŦ⧇ āĻāϜ-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻļā§āϰ⧇āĻŖā§€āĻŦāĻĻā§āϧ āĻ•āϰāĻž āĻ›āĻŦāĻŋāϗ⧁āϞāĻŋ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāĻŦ āύāĻžāĨ¤ + +āϏāĻ¤ā§āϝāĻŋ āĻŦāϞāϤ⧇ āϗ⧇āϞ⧇ āĻāϟāĻŋ āĻāϕ⧇āĻŦāĻžāϰ⧇ āĻĒā§āϰāĻ¤ā§āϝāĻžāĻļāĻŋāϤ āĻāĻ•āϟāĻŋ āφāϚāϰāĻŖ - āĻ›āĻŦāĻŋāϗ⧁āϞāĻŋ āĻ•ā§āϞāĻžāωāĻĄā§‡ āĻļā§āϰ⧇āĻŖāĻŋāĻŦāĻŋāĻ¨ā§āϝāĻžāϏ⧇āϰ āϜāĻ¨ā§āϝ āĻĒāĻžāĻ āĻžāύ⧋ āĻšāϝāĻŧ āύāĻž, āϤāĻžāχ āϏ⧇āϗ⧁āϞāĻŋ āĻ•ā§āϞāĻžāωāĻĄā§‡ āĻĒāĻžāĻ“āϝāĻŧāĻž āϝāĻžāĻŦ⧇ āύāĻžāĨ¤ āφāχāĻ“āϟāĻŋ āĻāϜ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āĻāĻ•āϟāĻŋ āϏ⧁āĻŦāĻŋāϧāĻž āĻšāϞ āĻ—ā§‹āĻĒāύ⧀āϝāĻŧāϤāĻž, āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāĻž āϝ⧇ āĻ›āĻŦāĻŋāϗ⧁āϞāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻāϰ āĻŦāĻžāχāϰ⧇ āϝāĻžāĻŦ⧇āύāĻžāĨ¤ āφāĻŦāĻžāϰ āĻāϟāĻŋ āĻ…āĻĢāϞāĻžāχāύ⧇ āĻ•āĻžāϜ āĻ•āϰāϤ⧇ āϏāĻ•ā§āώāĻŽ āĻšāĻšā§āϛ⧇, āϤāĻžāχ āϝāĻ–āύ āĻĄāĻŋāĻ­āĻžāχāϏ⧇ āχāĻ¨ā§āϟāĻžāϰāύ⧇āϟ āϏāĻ‚āϝ⧋āĻ— āύ⧇āχ āϤāĻ–āύ āĻ›āĻŦāĻŋ āφāĻĒāϞ⧋āĻĄ āĻ•āϰāĻžāϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇ āύāĻžāĨ¤ āύ⧇āϤāĻŋāĻŦāĻžāϚāĻ• āĻĻāĻŋāĻ•āϟāĻŋ āĻšāϞ⧋ āϝ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻŽāĻĄā§‡āϞ⧇āϰ āωāĻ¨ā§āύāϤāĻŋ āĻ āĻŋāĻ•āĻŽāϤ āĻšāĻšā§āϛ⧇āύāĻž - āφāĻŽāĻžāĻĻ⧇āϰāϕ⧇ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ⧇āϰ āωāĻ¨ā§āύāϤāĻŋ āĻāĻŦāĻ‚ āĻĒ⧁āύāϰāĻžāϝāĻŧ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāϪ⧇āϰ āϜāĻ¨ā§āϝ āĻŽā§āϝāĻžāύ⧁āϝāĻŧāĻžāϞāĻŋ āĻĒ⧁āύāϰāĻžāϝāĻŧ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāχ āĻ•āϰāĻž āϝāĻžāϝāĻŧ āĻāĻŽāύ āĻ›āĻŦāĻŋ āϏāĻ‚āϰāĻ•ā§āώāϪ⧇āϰ āĻ…āĻ¨ā§āϝ āωāĻĒāĻžāϝāĻŧ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ + + +✅ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ āĻĒ⧁āύāϰāĻžāϝāĻŧ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĻ⧇āĻ“āϝāĻŧāĻžāϰ āϜāĻ¨ā§āϝ āĻ›āĻŦāĻŋ āφāĻĒāϞ⧋āĻĄ āĻ•āϰāĻžāϰ āωāĻĒāĻžāϝāĻŧ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϚāĻŋāĻ¨ā§āϤāĻž āĻ•āϰāĻŋāĨ¤ + +--- + +## 🚀 āĻšā§āϝāĻžāϞ⧇āĻžā§āϜ + +Edge āĻĄāĻŋāĻ­āĻžāχāϏ⧇ AI āĻŽāĻĄā§‡āϞ āϚāĻžāϞāĻžāύ⧋ āĻ•ā§āϞāĻžāωāĻĄā§‡āϰ āϤ⧁āϞāύāĻžā§Ÿ āĻĻā§āϰ⧁āϤāϤāϰ āĻšāϤ⧇ āĻĒāĻžāϰ⧇ - āĻ•āĻžāϰāĻŖ āϏ⧇āĻ–āĻžāύ⧇ network hop āϛ⧋āϟ āĨ¤ āϤāĻŦ⧇ āĻšāĻžāĻ°ā§āĻĄāĻ“āϝāĻŧā§āϝāĻžāϰ āĻāϰ āĻĢāϞ⧇ āϤāĻž āϧ⧀āϰāĻ“ āĻšāϤ⧇ āĻĒāĻžāϰ⧇ ,āφāϰ āϤāĻžāχ āĻŽāĻĄā§‡āϞāϟāĻŋ āĻ•ā§āϞāĻžāωāĻĄā§‡āϰ āĻŽāϤ⧋ āĻļāĻ•ā§āϤāĻŋāĻļāĻžāϞ⧀ āύāĻžāĻ“ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ + +āϏāĻŽāϝāĻŧāĻ•ā§āώ⧇āĻĒāύ āĻāϰ āύ⧋āϟ āύāĻŋāχ āĻāĻŦāĻ‚ āϤ⧁āϞāύāĻž āĻ•āϰāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ Edge āĻĄāĻŋāĻ­āĻžāχāϏ⧇ āĻ•āĻžāϜ, āĻ•ā§āϞāĻžāωāĻĄā§‡ āĻ•āĻžāϜ āĻ•āϰāĻžāϰ āĻšā§‡āϝāĻŧ⧇ āĻĻā§āϰ⧁āϤ āĻŦāĻž āϧ⧀āϰ - āϕ⧋āύāϟāĻŋ āϘāĻŸā§‡? āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āĻāϰ āĻ•āĻžāϰāĻŖ, āĻŦāĻž āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āύāĻž āĻĨāĻžāĻ•āϞ⧇ āϏ⧇āϟāĻŋ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϚāĻŋāĻ¨ā§āϤāĻž āĻ•āϰāĻŋāĨ¤ āĻŦāĻŋāĻļ⧇āώ āĻšāĻžāĻ°ā§āĻĄāĻ“āϝāĻŧā§āϝāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ Edge āĻĄāĻŋāĻ­āĻžāχāϏ⧇ āĻāφāχ āĻŽāĻĄā§‡āϞāϗ⧁āϞāĻŋ āĻĻā§āϰ⧁āϤ āϚāĻžāϞāĻžāύ⧋āϰ āωāĻĒāĻžāϝāĻŧāϗ⧁āϞāĻŋ āĻ—āĻŦ⧇āώāĻŖāĻž āĻ•āϰāĻŋāĨ¤ + + +## āϞ⧇āĻ•āϚāĻžāϰ-āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āϕ⧁āχāϜ + +[āϞ⧇āĻ•āϚāĻžāϰ-āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āϕ⧁āχāϜ](https://brave-island-0b7c7f50f.azurestaticapps.net/quiz/34) + +## āϰāĻŋāĻ­āĻŋāω āĻāĻŦāĻ‚ āĻ¸ā§āĻŦ-āĻ…āĻ§ā§āϝ⧟āύ + +* āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϜāĻžāύāϤ⧇ āĻĒ⧜āϤ⧇ āĻĒāĻžāϰāĻŋ - [OS-level virtualization page on Wikipedia](https://wikipedia.org/wiki/OS-level_virtualization) +* Edge computing āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϜāĻžāύāϤ⧇ āĻšāϞ⧇, āĻĒ⧜āϤ⧇ āĻĒāĻžāϰāĻŋ - [what is edge computing and why does it matter? article on NetworkWorld](https://www.networkworld.com/article/3224893/what-is-edge-computing-and-how-it-s-changing-the-network.html) +* IoT Edge āĻ āϚāϞāĻŽāĻžāύ AI service āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϜāĻžāύāϤ⧇ āĻšāϞ⧇, āĻĒ⧜āϤ⧇ āĻĒāĻžāϰāĻŋ - [learn how to use Azure IoT Edge on a pre-built AI service on the Edge to do language detection episode of Learn Live on Microsoft Channel9](https://channel9.msdn.com/Shows/Learn-Live/Sharpen-Your-AI-Edge-Skills-Episode-4-Learn-How-to-Use-Azure-IoT-Edge-on-a-Pre-Built-AI-Service-on-t?WT.mc_id=academic-17441-jabenn) + +## āĻāϏāĻžāχāύāĻŽā§‡āĻ¨ā§āϟ + +[Edge āĻ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϏāĻžāĻ°ā§āĻ­āĻŋāϏ āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰāĻž](assignment.bn.md) diff --git a/4-manufacturing/lessons/3-run-fruit-detector-edge/translations/assignment.bn.md b/4-manufacturing/lessons/3-run-fruit-detector-edge/translations/assignment.bn.md new file mode 100644 index 00000000..e5adf974 --- /dev/null +++ b/4-manufacturing/lessons/3-run-fruit-detector-edge/translations/assignment.bn.md @@ -0,0 +1,14 @@ +# Edge āĻ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϏāĻžāĻ°ā§āĻ­āĻŋāϏ āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰāĻž + +## āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻžāĻŦāϞ⧀ + +Edge āĻ āϝ⧇ āϕ⧇āĻŦāϞ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ āϚāĻžāϞāĻžāύ⧋ āϝāĻžāϝāĻŧ āϤāĻž āĻ•āĻŋāĻ¨ā§āϤ⧁ āύ⧟, āĻŦāϰāĻ‚ āϝ⧇āϕ⧋āύ āĻ•āĻžāϜ āϝāĻž āĻāĻ•āϟāĻŋ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ⧇ āĻĒā§āϝāĻžāϕ⧇āϜ āĻ•āϰāĻž āϝāĻžāϝāĻŧ āϤāĻž IoT Edge āĻĄāĻŋāĻ­āĻžāχāϏ⧇ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āϏāĻžāĻ°ā§āĻ­āĻžāϰāϞ⧇āϏ āϕ⧋āĻĄ āϝāĻž Azure Functions āĻšāĻŋāϏāĻžāĻŦ⧇ āϚāϞ⧇, āϝ⧇āĻŽāύ āφāϗ⧇āϰ āϞ⧇āϏāύāϗ⧁āϞāĻŋāϤ⧇ āϤ⧈āϰāĻŋ āĻŸā§āϰāĻŋāĻ—āĻžāϰāϗ⧁āϞāĻŋ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ⧇ āϚāĻžāϞāĻžāύ⧋ āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇ āĻāĻŦāĻ‚ āĻāϰ āϜāĻ¨ā§āϝ IoT Edge āĻāĻ“ āϤāĻž āϚāϞāĻŦ⧇āĨ¤ + +āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āĻĒāĻžāĻ āϗ⧁āϞāĻŋāϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋ āĻŦ⧇āϛ⧇ āύāĻŋāχ āĻāĻŦāĻ‚ IoT Edge āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ⧇ Azure Functions āĻ…ā§āϝāĻžāĻĒāϟāĻŋ āϚāĻžāϞāĻžāύ⧋āϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰāĻŋāĨ¤ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻāĻ•āϟāĻŋ āĻ­āĻŋāĻ¨ā§āύ Functions App āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ•āϰāĻž āϝāĻžāϝāĻŧ āϤāĻžāϰ āϜāĻ¨ā§āϝ [āϟāĻŋāωāĻŸā§‹āϰāĻŋ⧟āĻžāϞ: Azure Functions āϕ⧇ IoT Edge modules āĻšāĻŋāϏ⧇āĻŦ⧇ āĻĄā§‡āĻĒā§āϞ⧟ āĻ•āϰāĻž](https://docs.microsoft.com/azure/iot-edge/tutorial-deploy-function?WT.mc_id=academic-17441-jabenn&view=iotedge-2020-11) āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ + + +## āĻāϏāĻžāχāύāĻŽā§‡āĻ¨ā§āϟ āĻŽā§‚āĻ˛ā§āϝāĻžā§Ÿāύ āĻŽāĻžāύāĻĻāĻ¨ā§āĻĄ + +| āĻ•ā§āϰāĻžāχāĻŸā§‡āϰāĻŋ⧟āĻž | āĻĻ⧃āĻˇā§āϟāĻžāĻ¨ā§āϤāĻŽā§‚āϞāĻ• (āϏāĻ°ā§āĻŦā§‹āĻ¤ā§āϤāĻŽ) | āĻĒāĻ°ā§āϝāĻžāĻĒā§āϤ (āĻŽāĻžāĻāĻžāϰāĻŋ) | āωāĻ¨ā§āύāϤāĻŋ āĻĒā§āϰāϝāĻŧā§‹āϜāύ (āύāĻŋāĻŽā§āύāĻŽāĻžāύ) | +| --------- | ------------------ | -------------- | -------------------- | +| Azure Functions āϕ⧇ IoT Edge āĻ āĻĄā§‡āĻĒā§āϞ⧟ āĻ•āϰāĻž | IoT Edge āĻ āĻāĻ•āϟāĻŋ Azure Functions App āĻĄā§‡āĻĒā§āϞ⧟ āĻ•āϰ⧇, āφāχāĻ“āϟāĻŋ āĻĄā§‡āϟāĻž āĻĨ⧇āϕ⧇ āĻŸā§āϰāĻŋāĻ—āĻžāϰ āϚāĻžāϞāĻžāύ⧋āϰ āϜāĻ¨ā§āϝ āφāχāĻ“āϟāĻŋ āĻĄāĻŋāĻ­āĻžāχāϏ⧇āϰ āϏāĻžāĻĨ⧇ āĻāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āϏāĻĢāϞ āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ | IoT Edge āĻ āĻāĻ•āϟāĻŋ Functions App āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāϤ⧇ āϏāĻ•ā§āώāĻŽ āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻŸā§āϰāĻŋāĻ—āĻžāϰāϟāĻŋ āĻĻāĻŋā§Ÿā§‡ āĻ•āĻžāϜ āϏāĻŽā§āĻĒāĻ¨ā§āύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĻŋ | IoT Edge āĻ āĻāĻ•āϟāĻŋ Functions App āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāϤ⧇ āĻŦā§āϝāĻžāĻ°ā§āĻĨ āĻ›āĻŋāϞ| From 3456c02ff15502e31fb65f25adfd1de3ad0cdbac Mon Sep 17 00:00:00 2001 From: Mirza Nihal Baig <53098259+nihalbaig0@users.noreply.github.com> Date: Thu, 21 Oct 2021 01:07:48 +0600 Subject: [PATCH 32/35] [BN Translation] Check Fruit from Device Assignment (#335) * [BN Translation] Check Fruit from Device * deleted dummy.md * check fruit from device changed based on review * removed the english sentence that was translated * [BN Translation] translated assignment and updated path in readme file Co-authored-by: Jim Bennett --- .../translations/README.bn.md | 2 +- .../translations/assignment.bn.md | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 4-manufacturing/lessons/2-check-fruit-from-device/translations/assignment.bn.md diff --git a/4-manufacturing/lessons/2-check-fruit-from-device/translations/README.bn.md b/4-manufacturing/lessons/2-check-fruit-from-device/translations/README.bn.md index bfa11bdf..fff56fb2 100644 --- a/4-manufacturing/lessons/2-check-fruit-from-device/translations/README.bn.md +++ b/4-manufacturing/lessons/2-check-fruit-from-device/translations/README.bn.md @@ -205,4 +205,4 @@ model āϕ⧇ āωāĻ¨ā§āύāϤ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ, āφāĻŽāϰāĻž IoT āĻĄāĻŋ ## āĻāϏāĻžāχāύāĻŽā§‡āĻ¨ā§āϟ -[āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻŋāϕ⧇āĻļāύ āϰ⧇āϜāĻžāĻ˛ā§āĻŸā§‡āϰ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋ⧟āĻž āϜāĻžāύāĻžāύ⧋](../assignment.md) +[āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻŋāϕ⧇āĻļāύ āϰ⧇āϜāĻžāĻ˛ā§āĻŸā§‡āϰ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋ⧟āĻž āϜāĻžāύāĻžāύ⧋](./assignment.bn.md) diff --git a/4-manufacturing/lessons/2-check-fruit-from-device/translations/assignment.bn.md b/4-manufacturing/lessons/2-check-fruit-from-device/translations/assignment.bn.md new file mode 100644 index 00000000..268e610c --- /dev/null +++ b/4-manufacturing/lessons/2-check-fruit-from-device/translations/assignment.bn.md @@ -0,0 +1,13 @@ +# āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻŋāϕ⧇āĻļāύ āϰ⧇āϜāĻžāĻ˛ā§āĻŸā§‡āϰ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋ⧟āĻž āϜāĻžāύāĻžāύ⧋ + +## āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻžāĻŦāϞ⧀ + +āφāĻŽāĻžāĻĻ⧇āϰ āĻĄāĻŋāĻ­āĻžāχāϏ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāχ āĻ•āϰ⧇āϛ⧇, āĻāĻŦāĻ‚ āĻĒā§āϰ⧇āĻĄāĻŋāĻ•āĻļāύ⧇āϰ āĻŽāĻžāύ āϗ⧁āϞ⧋ āφāϛ⧇āĨ¤ āφāĻŽāĻžāĻĻ⧇āϰ āĻĄāĻŋāĻ­āĻžāχāϏ āĻāχ āϤāĻĨā§āϝ āϗ⧁āϞ⧋ āĻĻāĻŋā§Ÿā§‡ āĻ•āĻŋāϛ⧁ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ - āĻāϟāĻž āĻĒā§āϰāϏ⧇āϏāĻŋāĻ‚ āĻāϰ āϜāĻ¨ā§āϝ IoT Hub āĻ āĻĒāĻžāĻ āĻžāϤ⧇ āĻĒāĻžāϰ⧇ āĻ…āĻ¨ā§āϝ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āϗ⧁āϞ⧋ āĻĻāĻŋā§Ÿā§‡, āĻ…āĻĨāĻŦāĻž āĻāϟāĻž āĻāĻ•āϟāĻž actuator āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āϝ⧇āĻŽāύ LED āφāϞ⧋āĻ•āĻŋāϤ āĻšāĻŦ⧇ āϝāĻ–āύ āĻĢāϞ āĻ•āĻžāρāϚāĻžāĨ¤ + +āφāĻŽāĻžāĻĻ⧇āϰ āĻĄāĻŋāĻ­āĻžāχāϏ āĻ āφāĻŽāĻžāĻĻ⧇āϰ āĻŽāϤ āĻ•āϰ⧇ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋ⧟āĻž āϜāĻžāύāĻžāϤ⧇ āĻĒāĻžāϰ⧇ āĻāĻŽāύ āĻ­āĻžāĻŦ⧇ āϕ⧋āĻĄ āĻ•āϰāĻŋ - āĻšā§Ÿ IoT Hub āĻ āĻĄāĻžāϟāĻž āĻĒāĻžāĻ āĻžāĻŦ⧇ , actuator āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞ āĻ•āϰāĻŦ⧇, āĻ…āĻĨāĻŦāĻž āĻĻ⧁āĻŸā§‹ āϕ⧇ āĻāĻ•āĻ¤ā§āϰāĻŋāϤ āĻ•āϰāĻŦ⧇ āĻāĻŦāĻ‚ IoT Hub āĻ āĻĄāĻžāϟāĻž āĻĒāĻžāĻ āĻžāĻŦ⧇ āĻ•āĻŋāϛ⧁ āϏāĻžāĻ°ā§āĻ­āĻžāϰāϞ⧇āϏ āϕ⧋āĻĄ āĻĻāĻŋā§Ÿā§‡ āϝ⧇āϟāĻž āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰāĻŦ⧇ āĻĢāϞ āϟāĻž āĻĒāĻžāĻ•āĻž āύāĻžāĻ•āĻŋ āύāĻž āĻāĻŦāĻ‚ actuator āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞ āĻ•āϰāĻžāϰ āĻāĻ•āϟāĻŋ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĢ⧇āϰāϤ āĻĒāĻžāĻ āĻžāĻŦ⧇āĨ¤ + +## āĻāϏāĻžāχāύāĻŽā§‡āĻ¨ā§āϟ āĻŽā§‚āĻ˛ā§āϝāĻžā§Ÿāύ āĻŽāĻžāύāĻĻāĻ¨ā§āĻĄ + +| āĻ•ā§āϰāĻžāχāĻŸā§‡āϰāĻŋ⧟āĻž | āĻĻ⧃āĻˇā§āϟāĻžāĻ¨ā§āϤāĻŽā§‚āϞāĻ• (āϏāĻ°ā§āĻŦā§‹āĻ¤ā§āϤāĻŽ) | āĻĒāĻ°ā§āϝāĻžāĻĒā§āϤ (āĻŽāĻžāĻāĻžāϰāĻŋ) | āωāĻ¨ā§āύāϤāĻŋ āĻĒā§āϰāϝāĻŧā§‹āϜāύ (āύāĻŋāĻŽā§āύāĻŽāĻžāύ) | +| --------- | ------------------ | -------------- | -------------------- | +| āĻĒā§āϰ⧇āĻĄāĻŋāĻ•āĻļāύ⧇āϰ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋ⧟āĻž āϜāĻžāύāĻžāύ⧋ | āĻĒā§āϰ⧇āĻĄāĻŋāĻ•āĻļāύ⧇āϰ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋ⧟āĻž āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āĻ•āϰāϤ⧇ āĻĒ⧇āϰ⧇āϛ⧇ āϝ⧇āϟāĻž āĻāĻ•āχ āĻŽāĻžāύ⧇āϰ āĻĒā§āϰ⧇āĻĄāĻŋāĻ•āĻļāύ⧇āϰ āϏāĻžāĻĨ⧇ āϧāĻžāϰāĻžāĻŦāĻžāĻšāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ | āĻĒā§āϰ⧇āĻĄāĻŋāĻ•āĻļāύ⧇āϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰāĻļā§€āϞ āύāĻž āĻāĻŽāύ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋ⧟āĻž āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āĻ•āϰāϤ⧇ āĻĒ⧇āϰ⧇āϛ⧇, āϝ⧇āĻŽāύ IoT Hub āĻ āĻŽā§‚āϞ āĻĄāĻžāϟāĻž āĻĒā§āϰ⧇āϰāĻŖ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇| āĻĄāĻŋāĻ­āĻžāχāϏ āϟāĻžāϕ⧇ āĻĒā§āϰ⧇āĻĄāĻŋāĻ•āĻļāύ⧇āϰ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋ⧟āĻž āĻĻ⧇āĻ–āĻžāύ⧋āϰ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āύāĻžāχ | \ No newline at end of file From 48c96092b574164f3c247bb7fed19da9f4a9866f Mon Sep 17 00:00:00 2001 From: Jim Bennett Date: Wed, 20 Oct 2021 12:53:41 -0700 Subject: [PATCH 33/35] Update pi-text-to-speech.md --- .../3-spoken-feedback/pi-text-to-speech.md | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/6-consumer/lessons/3-spoken-feedback/pi-text-to-speech.md b/6-consumer/lessons/3-spoken-feedback/pi-text-to-speech.md index 2447dc5d..f8e7befe 100644 --- a/6-consumer/lessons/3-spoken-feedback/pi-text-to-speech.md +++ b/6-consumer/lessons/3-spoken-feedback/pi-text-to-speech.md @@ -103,21 +103,21 @@ Each language supports a range of different voices, and you can make a REST requ ```python def play_speech(speech): - with wave.open(speech, 'rb') as wave_file: - stream = audio.open(format=audio.get_format_from_width(wave_file.getsampwidth()), - channels=wave_file.getnchannels(), - rate=wave_file.getframerate(), - output_device_index=speaker_card_number, - output=True) + with wave.open(speech, 'rb') as wave_file: + stream = audio.open(format=audio.get_format_from_width(wave_file.getsampwidth()), + channels=wave_file.getnchannels(), + rate=wave_file.getframerate(), + output_device_index=speaker_card_number, + output=True) - data = wave_file.readframes(4096) - - while len(data) > 0: - stream.write(data) data = wave_file.readframes(4096) - stream.stop_stream() - stream.close() + while len(data) > 0: + stream.write(data) + data = wave_file.readframes(4096) + + stream.stop_stream() + stream.close() ``` This code uses a PyAudio stream, the same as capturing audio. The difference here is the stream is set as an output stream, and data is read from the audio data and pushed to the stream. From 2bf8b24c6113cb7142a15dcc0ab28aa65f729ed8 Mon Sep 17 00:00:00 2001 From: "Mohammad Iftekher (Iftu) Ebne Jalal" Date: Tue, 26 Oct 2021 21:05:01 +0600 Subject: [PATCH 34/35] [Bn Translation] Fixes (#336) * Quick Fix BN Translation * Update README.bn.md * Update README.bn.md * Update BN check-fruit-from-device --- .../translations/README.bn.md | 87 ++++++------------- translations/README.bn.md | 2 +- 2 files changed, 28 insertions(+), 61 deletions(-) diff --git a/4-manufacturing/lessons/2-check-fruit-from-device/translations/README.bn.md b/4-manufacturing/lessons/2-check-fruit-from-device/translations/README.bn.md index fff56fb2..eb5ce53e 100644 --- a/4-manufacturing/lessons/2-check-fruit-from-device/translations/README.bn.md +++ b/4-manufacturing/lessons/2-check-fruit-from-device/translations/README.bn.md @@ -10,123 +10,98 @@ ## āϏ⧂āϚāύāĻž -āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āϞ⧇āϏāύ āĻ āφāĻŽāϰāĻž āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ āύāĻŋā§Ÿā§‡ āϜāĻžāύāϞāĻžāĻŽ, āĻāĻŦāĻ‚ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āϤāĻžāĻĻ⧇āϰ train āĻ•āϰāĻž āϝāĻžā§Ÿ āĻ­āĻžāϞ āĻāĻŦāĻ‚ āĻ–āĻžāϰāĻžāĻĒ āĻĢāϞ āϏāύāĻžāĻ•ā§āϤ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝāĨ¤ āĻāχ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ āϟāĻžāϕ⧇ IoT āĻāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āφāĻŽāĻžāĻĻ⧇āϰāϕ⧇ āϕ⧋āύ⧋ āϧāϰāύ⧇āϰ āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āĻĻāĻŋā§Ÿā§‡ āχāĻŽā§‡āϜ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āĻāĻŦāĻ‚ āĻāχ āχāĻŽā§‡āϜ āϟāĻžāϕ⧇ āĻ•ā§āϞāĻžāωāĻĄ āĻ āĻĒāĻžāĻ āĻžāϤ⧇ āĻšāĻŦ⧇āĨ¤ +āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āϤ⧀ āϞ⧇āϏāύ āĻ āφāĻŽāϰāĻž āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ āύāĻŋā§Ÿā§‡ āϜāĻžāύāϞāĻžāĻŽ āĻāĻŦāĻ‚ āφāϰ⧋ āĻœā§‡āύ⧇āĻ›āĻŋ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āϤāĻžāĻĻ⧇āϰāϕ⧇ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŋāϤ (train) āĻ•āϰāĻž āϝāĻžā§Ÿ āĻ­āĻžāϞ āĻāĻŦāĻ‚ āĻ–āĻžāϰāĻžāĻĒ āĻĢāϞ āϏāύāĻžāĻ•ā§āϤ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝāĨ¤ āĻāχ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ IoT āĻāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āφāĻŽāĻžāĻĻ⧇āϰāϕ⧇ āϕ⧋āύ⧋ āϧāϰāύ⧇āϰ āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āĻĻāĻŋā§Ÿā§‡ āχāĻŽā§‡āϜ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āĻāĻŦāĻ‚ āϏ⧇āχ āχāĻŽā§‡āϜāϟāĻŋ āĻ•ā§āϞāĻžāωāĻĄ āĻ āĻĒāĻžāĻ āĻžāϤ⧇ āĻšāĻŦ⧇āĨ¤ -āĻāχ āϞ⧇āϏāύ āĻ āφāĻŽāϰāĻž āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āϏ⧇āĻ¨ā§āϏāϰ āύāĻŋā§Ÿā§‡ āϜāĻžāύāĻŦā§‹ , āĻāĻŦāĻ‚ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻāϗ⧁āϞ⧋āϕ⧇ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻāϰ āϏāĻžāĻĨ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āχāĻŽā§‡āϜ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰāϤ⧇ āĻšā§ŸāĨ¤ āφāĻŽāϰāĻž āφāϰ⧋ āϜāĻžāύāĻŦā§‹ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰāϟāĻžāϕ⧇ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨ⧇āϕ⧇ āĻ•āϞ āĻ•āϰāϤ⧇ āĻšā§ŸāĨ¤ +āĻāχ āϞ⧇āϏāύ āĻ āφāĻŽāϰāĻž āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āϏ⧇āĻ¨ā§āϏāϰ āύāĻŋā§Ÿā§‡ āϜāĻžāύāĻŦā§‹ āĻāĻŦāĻ‚ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻāϗ⧁āϞ⧋āϕ⧇ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻāϰ āϏāĻžāĻĨ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āχāĻŽā§‡āϜ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰāϤ⧇ āĻšā§Ÿ āϤāĻž āĻļāĻŋāĻ–āĻŦā§‹āĨ¤ āĻāĻ›āĻžā§œāĻžāĻ“ āφāĻŽāϰāĻž āĻĻ⧇āĻ–āĻŦā§‹ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰāϕ⧇ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨ⧇āϕ⧇ āĻ•āϞ āĻ•āϰāϤ⧇ āĻšā§ŸāĨ¤ āĻāχ āϞ⧇āϏāύ āĻ āφāĻŽāϰāĻž āĻ•āĻ­āĻžāϰ āĻ•āϰāĻŦā§‹āσ * [āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āϏ⧇āĻ¨ā§āϏāϰ](#āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž-āϏ⧇āĻ¨ā§āϏāϰ) -* [IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āχāĻŽā§‡āϜ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰāĻž](#IoT-āĻĄāĻŋāĻ­āĻžāχāϏ-āĻŦā§āϝāĻžāĻŦāĻšāĻžāϰ-āĻ•āϰ⧇-āĻāĻ•āϟāĻŋ-āχāĻŽā§‡āϜ-āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ-āĻ•āϰāĻž) +* [IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āχāĻŽā§‡āϜ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰāĻž](#IoT-āĻĄāĻŋāĻ­āĻžāχāϏ-āĻŦā§āϝāĻŦāĻšāĻžāϰ-āĻ•āϰ⧇-āχāĻŽā§‡āϜ-āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ-āĻ•āϰāĻž) * [āφāĻŽāĻžāĻĻ⧇āϰ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ āĻĒāĻžāĻŦāϞāĻŋāĻļ āĻ•āϰāĻŋ](#āφāĻŽāĻžāĻĻ⧇āϰ-āχāĻŽā§‡āϜ-āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ-āĻĒāĻžāĻŦāϞāĻŋāĻļ-āĻ•āϰāĻŋ) * [IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨ⧇āϕ⧇ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāχ āĻ•āϰāĻž](#IoT-āĻĄāĻŋāĻ­āĻžāχāϏ-āĻĨ⧇āϕ⧇-āχāĻŽā§‡āϜ-āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāχ-āĻ•āϰāĻž) * [Model āωāĻ¨ā§āύāϤ āĻ•āϰāĻž](#Model-āωāĻ¨ā§āύāϤ-āĻ•āϰāĻž) - - ## āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āϏ⧇āĻ¨ā§āϏāϰ -āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āϏ⧇āĻ¨ā§āϏāϰ, āϤāĻžāϰ āύāĻžāĻŽā§‡āϰ āĻŽāϤāχ āĻāĻŽāύ āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āϝāĻž IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻāϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāύ⧇āĻ•ā§āϟ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ āĻāϗ⧁āϞ⧋ āĻ¸ā§āĻĨāĻŋāϰāϚāĻŋāĻ¤ā§āϰ āĻ…āĻĨāĻŦāĻž āĻ¸ā§āĻŸā§āϰāĻŋāĻŽāĻŋāĻ‚ āĻ­āĻŋāĻĄāĻŋāĻ“ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇, āĻ•āĻŋāϛ⧁ āĻĄāĻŋāĻ­āĻžāχāϏ āϗ⧁āϞ⧋ āĻŽā§‚āϞ āχāĻŽā§‡āϜ āĻĄāĻžāϟāĻž āĻĢ⧇āϰāϤ āĻĒāĻžāĻ āĻžāχ , āĻŦāĻžāĻ•āĻŋ āϗ⧁āϞ⧋ āχāĻŽā§‡āϜ āĻĄāĻžāϟāĻž āĻ•āĻŽāĻĒā§āϰ⧇āϏ āĻ•āϰ⧇ JPEG āĻ…āĻĨāĻŦāĻž PNG āϟāĻžāχāĻĒ āĻāϰ āχāĻŽā§‡āϜ āĻĢāĻžāχāϞ āĻŦāĻžāύāĻžāĻŦ⧇āĨ¤ āϏāĻžāϧāĻžāϰāĻŖāϤ āϝ⧇ āĻ•āĻžāĻŽā§‡āϰāĻž āϗ⧁āϞ⧋ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āϗ⧁āϞ⧋āϰ āϏāĻžāĻĨ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšā§Ÿ āφāĻŽāϰāĻž āϝ⧇āϗ⧁āϞ⧋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ…āĻ­ā§āϝāĻ¸ā§āϤ āϏ⧇āϗ⧁āϞ⧋ āĻĨ⧇āϕ⧇ āĻ…āύ⧇āĻ• āϛ⧋āϟ āϏāĻžāχāϜ āĻāϰ āĻāĻŦāĻ‚ āĻ•āĻŽ āϰ⧇āĻœā§‹āϞāĻŋāωāĻļāĻžāύ āĻāϰ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāĻŽāϰāĻž āĻšāĻžāχ āϰ⧇āĻœā§‹āϞāĻŋāωāĻļāĻžāύ āĻāϰ āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āύāĻŋāϤ⧇ āĻĒāĻžāϰāĻŋ āϝ⧇āϗ⧁āϞ⧋ āφāϧ⧁āύāĻŋāĻ• āĻĢā§‹āύ āϗ⧁āϞāĻžāϰ āϏāĻžāĻĨ⧇ āĻŸā§‡āĻ•ā§āĻ•āĻž āĻĻā§‡ā§ŸāĨ¤ āφāĻŽāϰāĻž āϏāĻŦ āϧāϰāύ⧇āϰ āχāĻ¨ā§āϟāĻžāϰāĻšā§‡āĻžā§āĻœā§‡āĻŦāϞ āϞ⧇āĻ¨ā§āϏ , āĻ•ā§Ÿā§‡āĻ•āϟāĻž āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āϏ⧇āϟāĻžāĻĒ , āχāύāĻĢā§āϰāĻžāϰ⧇āĻĄ āĻĨāĻžāĻ°ā§āĻŽāĻžāϞ āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āĻ…āĻĨāĻŦāĻž āχāωāĻ­āĻŋ āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āύāĻŋāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ +āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āϏ⧇āĻ¨ā§āϏāϰ, āϤāĻžāϰ āύāĻžāĻŽā§‡āϰ āĻŽāϤāχ āĻāĻŽāύ āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āϝāĻž IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻāϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāύ⧇āĻ•ā§āϟ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ āĻāϗ⧁āϞ⧋ āĻ¸ā§āĻĨāĻŋāϰāϚāĻŋāĻ¤ā§āϰ āĻ…āĻĨāĻŦāĻž āĻ¸ā§āĻŸā§āϰāĻŋāĻŽāĻŋāĻ‚ āĻ­āĻŋāĻĄāĻŋāĻ“ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇, āĻ•āĻŋāϛ⧁ āĻĄāĻŋāĻ­āĻžāχāϏ āϗ⧁āϞ⧋ āĻŽā§‚āϞ āχāĻŽā§‡āϜ āĻĄāĻžāϟāĻž āĻĢ⧇āϰāϤ āĻĒāĻžāĻ āĻžāχ , āĻŦāĻžāĻ•āĻŋ āϗ⧁āϞ⧋ āχāĻŽā§‡āϜ āĻĄāĻžāϟāĻž āĻ•āĻŽāĻĒā§āϰ⧇āϏ āĻ•āϰ⧇ JPEG āĻ…āĻĨāĻŦāĻž PNG āϟāĻžāχāĻĒ āĻāϰ āχāĻŽā§‡āϜ āĻĢāĻžāχāϞ āĻŦāĻžāύāĻžāĻŦ⧇āĨ¤ āϏāĻžāϧāĻžāϰāĻŖāϤ āϝ⧇ āĻ•āĻžāĻŽā§‡āϰāĻž āϗ⧁āϞ⧋ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āϗ⧁āϞ⧋āϰ āϏāĻžāĻĨ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšā§Ÿ āφāĻŽāϰāĻž āϝ⧇āϗ⧁āϞ⧋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ…āĻ­ā§āϝāĻ¸ā§āϤ āϏ⧇āϗ⧁āϞ⧋ āĻĨ⧇āϕ⧇ āĻ…āύ⧇āĻ• āϛ⧋āϟ āϏāĻžāχāϜ āĻāϰ āĻāĻŦāĻ‚ āĻ•āĻŽ āϰ⧇āĻœā§‹āϞāĻŋāωāĻļāĻžāύ āĻāϰ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāĻŽāϰāĻž āĻšāĻžāχ āϰ⧇āĻœā§‹āϞāĻŋāωāĻļāĻžāύ āĻāϰ āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āύāĻŋāϤ⧇ āĻĒāĻžāϰāĻŋ āϝ⧇āϗ⧁āϞ⧋ āφāϧ⧁āύāĻŋāĻ• āĻĢā§‹āύ āϗ⧁āϞāĻžāϰ āϏāĻžāĻĨ⧇ āĻŸā§‡āĻ•ā§āĻ•āĻž āĻĻā§‡ā§ŸāĨ¤ āφāĻŽāϰāĻž āϏāĻŦ āϧāϰāύ⧇āϰ āχāĻ¨ā§āϟāĻžāϰāĻšā§‡āĻžā§āĻœā§‡āĻŦāϞ āϞ⧇āĻ¨ā§āϏ, āĻ•ā§Ÿā§‡āĻ•āϟāĻž āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āϏ⧇āϟāĻžāĻĒ, āχāύāĻĢā§āϰāĻžāϰ⧇āĻĄ āĻĨāĻžāĻ°ā§āĻŽāĻžāϞ āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āĻ…āĻĨāĻŦāĻž āχāωāĻ­āĻŋ āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āύāĻŋāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ ![The light from a scene passes through a lens and is focused on a CMOS sensor](../../../../images/cmos-sensor.png) -āĻŦ⧇āĻļāĻŋāϰāĻ­āĻžāĻ— āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āϏ⧇āĻ¨ā§āϏāϰ āχāĻŽā§‡āϜ āϏ⧇āĻ¨ā§āϏāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϝ⧇āĻ–āĻžāύ⧇ āĻĒā§āϰāĻ¤ā§āϝ⧇āĻ• āĻĒāĻŋāĻ•ā§āϏ⧇āϞ āĻšāϞ āĻĢāĻŸā§‹āĻĄāĻžā§Ÿā§‹āĻĄāĨ¤ āĻāĻ•āϟāĻž āϞ⧇āĻ¨ā§āϏ āχāĻŽā§‡āϜ āϏ⧇āĻ¨ā§āϏāϰ āĻāϰ āωāĻĒāϰ āχāĻŽā§‡āϜ āϟāĻžāϕ⧇ āĻĢā§‹āĻ•āĻžāϏ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻšāĻžāϜāĻžāϰ āĻ…āĻĨāĻŦāĻž āϞāĻ•ā§āώ āϞāĻ•ā§āώ āĻĢāĻŸā§‹āĻĄāĻžā§Ÿā§‹āĻĄāĨ¤ āĻĒā§āϰāĻ¤ā§āϝ⧇āϕ⧇āϰ āωāĻĒāϰ āĻĒāϰāĻž āφāϞ⧋ āĻĄāĻŋāĻŸā§‡āĻ•ā§āϟ āĻ•āϰ⧇ , āĻāĻŦāĻ‚ āĻĒāĻŋāĻ•ā§āϏ⧇āϞ āĻĄāĻžāϟāĻž āĻšāĻŋāϏāĻžāĻŦ⧇ āϰ⧇āĻ•āĻ°ā§āĻĄ āĻ•āϰ⧇āĨ¤ - - - -> 💁 āϞ⧇āĻ¨ā§āϏ āχāĻŽā§‡āϜ āϕ⧇ āωāĻ˛ā§āϟāĻžā§Ÿ, āĻĒāϰ⧇ āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āϏ⧇āĻ¨ā§āϏāϰ āφāĻŦāĻžāϰ āĻ āĻŋāĻ• āĻ­āĻžāĻŦ⧇ āχāĻŽā§‡āϜ āϟāĻžāϕ⧇ āωāĻ˛ā§āϟāĻžā§ŸāĨ¤ āĻ āĻŋāĻ• āĻāĻ•āχ āϰāĻ•āĻŽ āφāĻŽāĻžāĻĻ⧇āϰ āĻšā§‹āϖ⧇ āĻšā§Ÿ - āφāĻŽāϰāĻž āϝāĻž āĻĻ⧇āĻ–āĻŋ āϤāĻž āĻšā§‹āϖ⧇āϰ āĻĒāĻŋāĻ›āύ⧇ -āωāĻ˛ā§āĻŸā§‹ āĻ­āĻžāĻŦ⧇ āĻĄāĻŋāĻŸā§‡āĻ•ā§āϟ āĻ•āϰ⧇ āĻāĻŦ⧁āĻ‚ āĻŦā§āϰ⧇āύ āϏ⧇āϟāĻžāϕ⧇ āĻ āĻŋāĻ• āĻ•āϰ⧇āĨ¤ - +āĻŦ⧇āĻļāĻŋāϰāĻ­āĻžāĻ— āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āϏ⧇āĻ¨ā§āϏāϰ āχāĻŽā§‡āϜ āϏ⧇āĻ¨ā§āϏāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϝ⧇āĻ–āĻžāύ⧇ āĻĒā§āϰāĻ¤ā§āϝ⧇āĻ• āĻĒāĻŋāĻ•ā§āϏ⧇āϞ āĻšāϞ āĻĢāĻŸā§‹āĻĄāĻžā§Ÿā§‹āĻĄāĨ¤ āĻāĻ•āϟāĻž āϞ⧇āĻ¨ā§āϏ āχāĻŽā§‡āϜ āϏ⧇āĻ¨ā§āϏāϰ āĻāϰ āωāĻĒāϰ āχāĻŽā§‡āϜ āϟāĻžāϕ⧇ āĻĢā§‹āĻ•āĻžāϏ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻšāĻžāϜāĻžāϰ āĻ…āĻĨāĻŦāĻž āϞāĻ•ā§āώ āϞāĻ•ā§āώ āĻĢāĻŸā§‹āĻĄāĻžā§Ÿā§‹āĻĄ āĻĒā§āϰāĻ¤ā§āϝ⧇āϕ⧇ āϤāĻžāϰ āωāĻĒāϰ āφāĻĒāϤāĻŋāϤ āφāϞ⧋ āĻĄāĻŋāĻŸā§‡āĻ•ā§āϟ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻĒāĻŋāĻ•ā§āϏ⧇āϞ āĻĄāĻžāϟāĻž āĻšāĻŋāϏāĻžāĻŦ⧇ āϰ⧇āĻ•āĻ°ā§āĻĄ āĻ•āϰ⧇āĨ¤ +> 💁 āϞ⧇āĻ¨ā§āϏ āχāĻŽā§‡āϜ āϕ⧇ āωāĻ˛ā§āϟāĻžā§Ÿ, āĻĒāϰ⧇ āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āϏ⧇āĻ¨ā§āϏāϰ āφāĻŦāĻžāϰ āĻ āĻŋāĻ• āĻ­āĻžāĻŦ⧇ āχāĻŽā§‡āϜāϟāĻžāϕ⧇ āωāĻ˛ā§āϟāĻžā§ŸāĨ¤ āĻ āĻŋāĻ• āĻāĻ•āχ āϰāĻ•āĻŽ āφāĻŽāĻžāĻĻ⧇āϰ āĻšā§‹āϖ⧇ āĻšā§Ÿ - āφāĻŽāϰāĻž āϝāĻž āĻĻ⧇āĻ–āĻŋ āϤāĻž āĻšā§‹āϖ⧇āϰ āĻĒāĻŋāĻ›āύ⧇ āωāĻ˛ā§āĻŸā§‹ āĻ­āĻžāĻŦ⧇ āĻĄāĻŋāĻŸā§‡āĻ•ā§āϟ āĻ•āϰ⧇ āĻāĻŦ⧁āĻ‚ āĻŦā§āϰ⧇āύ āϏ⧇āϟāĻžāϕ⧇ āĻ āĻŋāĻ• āĻ•āϰ⧇āĨ¤ > 🎓 āχāĻŽā§‡āϜ āϏ⧇āĻ¨ā§āϏāϰāϟāĻž āĻāĻ•āϟāĻŋāĻ­-āĻĒāĻŋāĻ•ā§āϏ⧇āϞ āϏ⧇āĻ¨ā§āϏāϰ (APS) āĻšāĻŋāϏ⧇āĻŦ⧇ āĻĒāϰāĻŋāϚāĻŋāϤ, āĻāĻŦāĻ‚ āϏāĻŦāĻšā§‡ā§Ÿā§‡ āϜāύāĻĒā§āϰāĻŋāϝāĻŧ āϟāĻžāχāĻĒ āĻāϰ APS āĻšāϞ āĻ•āĻŽāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āϟāĻžāϰāĻŋ āĻŽā§‡āϟāĻžāϞ-āĻ…āĻ•ā§āϏāĻžāχāĻĄ āϏ⧇āĻŽāĻŋāĻ•āĻ¨ā§āĻĄāĻžāĻ•ā§āϟāϰ āϏ⧇āĻ¨ā§āϏāϰ, āĻ…āĻĨāĻŦāĻž CMOSāĨ¤ āφāĻŽāϰāĻž āĻļ⧁āύ⧇ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰāĻŋ āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āϏ⧇āĻ¨ā§āϏāϰ āĻ CMOS āϏ⧇āĻ¨ā§āϏāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ āϟāĻžāĻ°ā§āĻŽ āϟāĻžāĨ¤ - - āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āϏ⧇āĻ¨ā§āϏāϰ āĻšāϞ āĻĄāĻŋāϜāĻŋāϟāĻžāϞ āϏ⧇āĻ¨ā§āϏāϰ , āχāĻŽā§‡āϜ āĻĄāĻžāϟāĻž āϕ⧇ āĻĄāĻŋāϜāĻŋāϟāĻžāϞ āĻĄāĻžāϟāĻž āĻšāĻŋāϏ⧇āĻŦ⧇ āĻĒāĻžāĻ āĻžā§Ÿ, āϏāĻžāϧāĻžāϰāĻŖāϤ āϝ⧇ āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋ āĻ•āĻŽāĻŋāωāύāĻŋāϕ⧇āĻļāύ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇ āϤāĻžāϰ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āύāĻŋā§Ÿā§‡, āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āϗ⧁āϞ⧋ āĻ•āĻžāύ⧇āĻ•ā§āϟ āĻ•āϰ⧇ SPI āĻāϰ āĻŽāϤ āĻĒā§āϰ⧋āϟāĻ•āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϝāĻž āϤāĻžāĻĻ⧇āϰ āĻŦ⧜ āĻĒāϰāĻŋāĻŽāĻžāϪ⧇ āĻĄāĻžāϟāĻž āĻĒāĻžāĻ āĻžāϤ⧇ āĻ…āύ⧁āĻŽā§‹āĻĻāύ āĻĻā§‡ā§Ÿ - āχāĻŽā§‡āϜ āϗ⧁āϞ⧋ temperature āϏ⧇āĻ¨ā§āϏāϰ āĻāϰ āĻŽāϤ āϏ⧇āĻ¨ā§āϏāϰ āĻĨ⧇āϕ⧇ āĻĒāĻžāĻ“ā§ŸāĻž āϏāĻŋāĻ‚āϗ⧇āϞ āύāĻžāĻŽā§āĻŦāĻžāϰ āĻĨ⧇āϕ⧇ āϝāĻĨ⧇āĻˇā§āϟ āĻĒāϰāĻŋāĻŽāĻžāϪ⧇ āĻŦ⧜āĨ¤ ✅ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āϗ⧁āϞ⧋āϰ āχāĻŽā§‡āϜ āϏāĻžāχāϜ āĻāϰ āϏ⧀āĻŽāĻžāĻŦāĻĻā§āϧāϤāĻž āĻ•āĻŋ āĻ•āĻŋ? āϏ⧀āĻŽāĻžāĻŦāĻĻā§āϧāϤāĻžāϗ⧁āϞ⧋ āϚāĻŋāĻ¨ā§āϤāĻž āĻ•āϰāĻŋ āĻŦāĻŋāĻļ⧇āώ āĻ•āϰ⧇ āĻŽāĻžāχāĻ•ā§āϰ⧋āĻ•āĻ¨ā§āĻŸā§āϰ⧋āϞāĻžāϰ āĻšāĻžāĻ°ā§āĻĄāĻ“ā§ŸāĻžāϰ āĻāϰ āωāĻĒāϰāĨ¤ +## IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āχāĻŽā§‡āϜ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰāĻž -## IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āχāĻŽā§‡āϜ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰāĻž - -āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻāĻŦ⧁āĻ‚ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāχ āĻ•āϰāϤ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ +āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻāĻŦāĻ‚ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāχ āĻ•āϰāϤ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ ### āĻ•āĻžāϜ - IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āχāĻŽā§‡āϜ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰāĻž āύāĻŋāĻŽā§āύ⧇āϰ āϕ⧋āύ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻžāϏāĻ™ā§āĻ—āĻŋāĻ• āĻ—āĻžāχāĻĄ āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āχāĻŽā§‡āϜ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰāĻŋāσ -* [Arduino - Wio Terminal](wio-terminal-camera.md) -* [Single-board computer - Raspberry Pi](pi-camera.md) -* [Single-board computer - Virtual device](virtual-device-camera.md) - +* [Arduino - Wio Terminal](../wio-terminal-camera.md) +* [Single-board computer - Raspberry Pi](../pi-camera.md) +* [Single-board computer - Virtual device](../virtual-device-camera.md) ## āφāĻŽāĻžāĻĻ⧇āϰ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ āĻĒāĻžāĻŦāϞāĻŋāĻļ āĻ•āϰāĻŋ āφāĻŽāϰāĻž āĻļ⧇āώ āϞ⧇āϏāύ āĻ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ āĻŸā§āϰ⧇āύ āĻ•āϰ⧇āĻ›āĻŋāϞāĻžāĻŽāĨ¤ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻāϟāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āφāϗ⧇, āφāĻŽāĻžāĻĻ⧇āϰ model āϤāĻž āĻĒāĻžāĻŦāϞāĻŋāĻļ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ - ### Model Iteration -āϝāĻ–āύ āφāĻŽāĻžāĻĻ⧇āϰ model āĻļ⧇āώ āϞ⧇āϏāύ āĻ āĻŸā§āϰ⧇āύ āĻšāĻšā§āĻ›āĻŋāϞ⧋, āφāĻŽāϰāĻž āĻšā§ŸāϤ āĻ–ā§‡ā§ŸāĻžāϞ āĻ•āϰāĻ›āĻŋāϞāĻžāĻŽ āϝ⧇ **Performance** āĻŸā§āϝāĻžāĻŦ āϏāĻžāχāĻĄ āĻ Iterationāϗ⧁āϞ⧋ āĻĻ⧇āĻ–āĻžāϝāĻŧāĨ¤ āϝāĻ–āύ āφāĻŽāϰāĻž āĻĒā§āϰāĻĨāĻŽ model āϟāĻž āĻŸā§āϰ⧇āύ āĻ•āϰāĻŋ āϤāĻ–āύ āφāĻŽāϰāĻž āĻĻ⧇āϖ⧇ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰāĻŋ *Iteration 1* āĻŸā§āϰ⧇āχāύāĻŋāĻ‚ āĻāĨ¤ āϝāĻ–āύ āφāĻŽāϰāĻž model āϟāĻžāϕ⧇ āĻĒā§āϰ⧇āĻĄāĻŋāĻ•āĻļāύ āχāĻŽā§‡āϜ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāϰ⧋ āωāĻ¨ā§āύāϤ āĻ•āϰāĻŋ, āϤāĻ–āύ āφāĻŽāϰāĻž āĻĻ⧇āϖ⧇ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰāĻŋ *Iteration 2* āĻŸā§āϰ⧇āχāύāĻŋāĻ‚ āĻāĨ¤ +āϝāĻ–āύ āφāĻŽāĻžāĻĻ⧇āϰ āĻŽāĻĄā§‡āϞ⧇ āĻļ⧇āώ āϞ⧇āϏāύ āĻ āĻŸā§āϰ⧇āύāĻŋāĻ‚ āĻšāĻšā§āĻ›āĻŋāϞ⧋, āφāĻŽāϰāĻž āĻšā§ŸāϤ āĻ–ā§‡ā§ŸāĻžāϞ āĻ•āϰāĻ›āĻŋāϞāĻžāĻŽ āϝ⧇ **Performance** āĻŸā§āϝāĻžāĻŦ āϏāĻžāχāĻĄ āĻ Iteration āϗ⧁āϞ⧋ āĻĻ⧇āĻ–āĻžāϝāĻŧāĨ¤ āϝāĻ–āύ āφāĻŽāϰāĻž āĻĒā§āϰāĻĨāĻŽ model āϟāĻž āĻŸā§āϰ⧇āύ āĻ•āϰāĻŋ āϤāĻ–āύ āφāĻŽāϰāĻž āĻĻ⧇āϖ⧇ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰāĻŋ *Iteration 1* āĻŸā§āϰ⧇āχāύāĻŋāĻ‚ āĻāĨ¤ āϝāĻ–āύ āφāĻŽāϰāĻž model āϟāĻžāϕ⧇ āĻĒā§āϰ⧇āĻĄāĻŋāĻ•āĻļāύ āχāĻŽā§‡āϜ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāϰ⧋ āωāĻ¨ā§āύāϤ āĻ•āϰāĻŋ, āϤāĻ–āύ āφāĻŽāϰāĻž āĻĻ⧇āϖ⧇ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰāĻŋ *Iteration 2* āĻŸā§āϰ⧇āχāύāĻŋāĻ‚ āĻāĨ¤ āĻĒā§āϰāϤ⧇āĻ•āĻŦāĻžāϰ āφāĻŽāϰāĻž āϝāĻ–āύ model āϟāĻžāϕ⧇ āĻŸā§āϰ⧇āχāύ āĻ•āϰāĻŋ, āφāĻŽāϰāĻž āύāϤ⧁āύ Iteration āĻĒāĻžāχāĨ¤ āĻāĻ­āĻžāĻŦ⧇ āφāĻŽāϰāĻž āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻĄāĻžāϟāĻžāϏ⧇āϟ āĻāϰ āωāĻĒāϰ āĻŸā§āϰ⧇āχāύ āĻ•āϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ model āĻāϰ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻ­āĻžāĻ°ā§āϏāύ āĻŸā§āĻ°ā§āϝāĻžāĻ• āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āϝāĻ–āύ āφāĻŽāϰāĻž **Quick Test** āĻ•āϰāĻŋ, āĻāĻ–āĻžāύ⧇ āφāĻŽāϰāĻž Iteration āϏāĻŋāϞ⧇āĻ•ā§āϟ āĻ•āϰāĻžāϰ āĻāĻ•āϟāĻŋ āĻĄā§āϰāĻĒāĻĄāĻžāωāύ āĻŽā§‡āύ⧁ āĻĒāĻžāχ, āϝ⧇āύ āφāĻŽāϰāĻž āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ Iteration āĻāϰ āϰ⧇āϜāĻžāĻ˛ā§āϟ āϤ⧁āϞāύāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āϝāĻ–āύ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ Iteration āύāĻŋā§Ÿā§‡ āϏāĻ¨ā§āϤ⧁āĻˇā§āϟ āĻšāχ, āφāĻŽāϰāĻž āĻāϟāĻžāϕ⧇ āĻĒāĻžāĻŦāϞāĻŋāĻļ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ āĻāĻ•ā§āϏāϟāĻžāĻ°ā§āύāĻžāϞ āĻāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻĨ⧇āϕ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āϏāĻšāϜāϞāĻ­ā§āϝ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝāĨ¤ āĻāĻ­āĻžāĻŦ⧇ āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āĻĄāĻŋāĻ­āĻžāχāϏ āĻĻāĻŋā§Ÿā§‡ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻāĻ•āϟāĻŋ āĻĒāĻžāĻŦāϞāĻŋāĻ• āĻ­āĻžāĻ°ā§āϏāύ āĻĒ⧇āϤ⧇ āĻĒāĻžāϰāĻŋ, āĻĒāϰ⧇ āφāϰ⧋ āύāϤ⧁āύ āĻ•āĻŋāϛ⧁ Iteration āĻāϰ āωāĻĒāϰ āύāϤ⧁āύ āĻ­āĻžāĻ°ā§āϏāύ āύāĻŋā§Ÿā§‡ āĻ•āĻžāϜ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ, āĻĒāϰ⧇ āϝāĻ–āύ āφāĻŽāϰāĻž āĻāϟāĻž āύāĻŋā§Ÿā§‡ āϏāĻ¨ā§āϤ⧁āĻˇā§āϟ āĻšāĻŦ āϤāĻ–āύ āĻāϟāĻž āĻĒāĻžāĻŦāϞāĻŋāĻļ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ - - - ### āĻ•āĻžāϜ - Iteration āĻĒāĻžāĻŦāϞāĻŋāĻļ āĻ•āϰāĻž - -Iteration āĻšāϞ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāϏāύ āĻĒā§‹āĻ°ā§āϟāĻžāϞ āĨ¤ - - +Iteration āϗ⧁āϞ⧋ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāϏāύ āĻĒā§‹āĻ°ā§āϟāĻžāϞ āĻĨ⧇āϕ⧇ āĻĒāĻžāĻŦāϞāĻŋāĻļ āĻ•āϰāϤ⧇ āĻšā§ŸāĨ¤ 1. [CustomVision.ai](https://customvision.ai) āϤ⧇ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāϏāύ āĻĒā§‹āĻ°ā§āϟāĻžāϞ āϞāĻžā§āϚ āĻ•āϰāĻŋ āĻāĻŦāĻ‚ āϏāĻžāχāύ āχāύ āĻ•āϰāĻŋ āϝāĻĻāĻŋ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇ āĻāϟāĻž āϖ⧁āϞ⧇ āύāĻž āĻĨāĻžāĻ•āĻŋāĨ¤ āĻĒāϰ⧇ āφāĻŽāĻžāĻĻ⧇āϰ `fruit-quality-detector` āĻĒā§āϰ⧋āĻœā§‡āĻ•ā§āϟ āϖ⧁āϞāĻŋāĨ¤ - 1. āωāĻĒāϰ⧇āϰ āĻ…āĻĒāĻļāύ āĻĨ⧇āϕ⧇ **Performance** āĻŸā§āϝāĻžāĻŦ āϏāĻŋāϞ⧇āĻ•ā§āϟ āĻ•āϰāĻŋāĨ¤ - 1. āϏāĻžāχāĻĄ āĻāϰ *Iterations* āϞāĻŋāĻ¸ā§āϟ āĻĨ⧇āϕ⧇ āϏāĻ°ā§āĻŦāĻļ⧇āώ Iteration āϏāĻŋāϞ⧇āĻ•ā§āϟ āĻ•āϰāĻŋāĨ¤ - - - 1. Iteration āĻāϰ āϜāĻ¨ā§āϝ **Publish** āĻŦāĻžāϟāύ āϏāĻŋāϞ⧇āĻ•ā§āϟ āĻ•āϰāĻŋāĨ¤ ![The publish button](../../../../images/custom-vision-publish-button.png) - - 1. *Publish Model* āĻĄāĻžā§ŸāϞāĻ— āĻ, *Prediction resource* āĻ āφāϗ⧇āϰ āϞ⧇āϏāύ āĻ āφāĻŽāĻžāĻĻ⧇āϰ āϤ⧈āϰāĻŋ āϰāĻŋāϏ⧋āĻ°ā§āϏ `fruit-quality-detector-prediction` āϏ⧇āϟ āĻ•āϰāĻŋāĨ¤ āύāĻžāĻŽ āĻšāĻŋāϏ⧇āĻŦ⧇ `Iteration2` āϰāĻžāĻ–āĻŋ, āĻāĻŦāĻ‚ **Publish** āĻŦāĻžāϟāύ āϏāĻŋāϞ⧇āĻ•ā§āϟ āĻ•āϰāĻŋāĨ¤ -1. āĻāĻ•āĻŦāĻžāϰ āĻĒāĻžāĻŦāϞāĻŋāĻļ āĻ•āϰāĻž āĻšāϞ⧇, **Prediction URL** āĻŦāĻžāϟāύ āϏāĻŋāϞ⧇āĻ•ā§āϟ āĻ•āϰāĻŋāĨ¤ āĻāϟāĻž āĻĒā§āϰ⧇āĻĄāĻŋāĻ•āĻļāύ āĻāĻĒāĻŋāφāχ āĻāϰ āĻĄāĻŋāĻŸā§‡āϞāϏ āĻĻ⧇āĻ–āĻžāĻŦ⧇, āĻāĻŦāĻ‚ āφāĻŽāĻžāĻĻ⧇āϰ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨ⧇āϕ⧇ model āϕ⧇ āĻ•āϞ āĻ•āϰāϤ⧇ āĻāϗ⧁āϞ⧋ āĻĻāϰāĻ•āĻžāϰ āĻšāĻŦ⧇āĨ¤ āύāĻŋāĻšā§‡āϰ āϏ⧇āĻ•āĻļāύ āϕ⧇ *If you have an image file* āĻšāĻŋāϏ⧇āĻŦ⧇ āϞ⧇āĻŦ⧇āϞ āĻ•āϰāĻž , āĻāĻŦāĻ‚ āĻāχ āĻĄāĻŋāĻŸā§‡āχāϞ āϗ⧁āϞ⧋ āφāĻŽāϰāĻž āϚāĻžāχāĨ¤ āĻĻ⧇āĻ–āĻžāύ⧋ URL āĻāϰ āĻ•āĻĒāĻŋ āĻ•āϰāĻŋ āϝ⧇āϟāĻž āĻ•āĻŋāϛ⧁ āϟāĻž āĻāϰāĻ•āĻŽ āĻšāĻŦ⧇āσ +1. āĻāĻ•āĻŦāĻžāϰ āĻĒāĻžāĻŦāϞāĻŋāĻļ āĻ•āϰāĻž āĻšāϞ⧇, **Prediction URL** āĻŦāĻžāϟāύ āϏāĻŋāϞ⧇āĻ•ā§āϟ āĻ•āϰāĻŋāĨ¤ āĻāϟāĻž āĻĒā§āϰ⧇āĻĄāĻŋāĻ•āĻļāύ āĻāĻĒāĻŋāφāχ āĻāϰ āĻĄāĻŋāĻŸā§‡āϞāϏ āĻĻ⧇āĻ–āĻžāĻŦ⧇, āĻāĻŦāĻ‚ āφāĻŽāĻžāĻĻ⧇āϰ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨ⧇āϕ⧇ model āϕ⧇ āĻ•āϞ āĻ•āϰāϤ⧇ āĻāϗ⧁āϞ⧋ āĻĻāϰāĻ•āĻžāϰ āĻšāĻŦ⧇āĨ¤ āύāĻŋāĻšā§‡āϰ āϏ⧇āĻ•āĻļāύ āϕ⧇ *If you have an image file* āĻšāĻŋāϏ⧇āĻŦ⧇ āϞ⧇āĻŦ⧇āϞ āĻ•āϰāĻž āĻāĻŦāĻ‚ āĻāχ āĻĄāĻŋāĻŸā§‡āχāϞ āϗ⧁āϞ⧋ āφāĻŽāϰāĻž āϚāĻžāχāĨ¤ āĻĻ⧇āĻ–āĻžāύ⧋ URL āĻāϰ āĻ•āĻĒāĻŋ āĻ•āϰāĻŋ āϝ⧇āϟāĻž āĻ•āĻŋāϛ⧁ āϟāĻž āĻāϰāĻ•āĻŽ āĻšāĻŦ⧇āσ ```output https://.api.cognitive.microsoft.com/customvision/v3.0/Prediction//classify/iterations/Iteration2/image ``` āϝ⧇āĻ–āĻžāύ⧇ `` āĻšāĻŦ⧇ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāϏāύ āĻĒā§‹āĻ°ā§āϟāĻžāϞ āϰāĻŋāϏ⧋āĻ°ā§āϏ āϤ⧈āϰāĻŋ āĻ•āϰāĻžāϰ āϏāĻŽā§Ÿ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϞ⧋āϕ⧇āĻļāύ, āĻāĻŦāĻ‚ `` āĻšāĻŦ⧇ āĻ…āύ⧇āĻ•āϗ⧁āϞ⧋ āϞ⧇āϟāĻžāϰ āĻāĻŦāĻ‚ āύāĻžāĻŽā§āĻŦāĻžāϰ āĻĻāĻŋā§Ÿā§‡ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āϞāĻŽā§āĻŦāĻž āφāχāĻĄāĻŋāĨ¤ - āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ *Prediction-Key* āĻ­ā§āϝāĻžāϞ⧁ āĻāϰ āĻāĻ•āϟāĻŋ āĻ•āĻĒāĻŋ āύāĻŋāχāĨ¤ āĻāϟāĻž āĻāĻ•āϟāĻŋ āϏāĻŋāĻ•āĻŋāωāϰāĻĄ āĻ•āĻŋ āϝ⧇āϟāĻž model āϕ⧇ āĻ•āϞ āĻ•āϰāĻžāϰ āϏāĻŽā§Ÿ āĻĒāĻžāϏ āĻ•āϰāĻž āĻšā§ŸāĨ¤ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āϝ⧇ āφāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āϗ⧁āϞ⧋ āĻāχ āĻ•āĻŋ āĻĒāĻžāϏ āĻ•āϰāĻŦ⧇ āϤāĻžāĻĻ⧇āϰāϕ⧇ model āϟāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĻā§‡ā§ŸāĻž āĻšāĻŦ⧇, āĻ…āĻ¨ā§āϝ āϏāĻŦ āφāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āϕ⧇ āĻĒā§āϰāĻ¤ā§āϝāĻžāĻ–ā§āϝāĻžāύ āĻšāĻŦ⧇āĨ¤ + āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ *Prediction-Key* āĻ­ā§āϝāĻžāϞ⧁ āĻāϰ āĻāĻ•āϟāĻŋ āĻ•āĻĒāĻŋ āύāĻŋāχāĨ¤ āĻāϟāĻž āĻāĻ•āϟāĻŋ āϏāĻŋāĻ•āĻŋāωāϰāĻĄ āϕ⧀ (KEY) āϝ⧇āϟāĻž model āϕ⧇ āĻ•āϞ āĻ•āϰāĻžāϰ āϏāĻŽā§Ÿ āĻĒāĻžāϏ āĻ•āϰāĻž āĻšā§ŸāĨ¤ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āϝ⧇ āφāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āϗ⧁āϞ⧋ āĻāχ āĻ•āĻŋ āĻĒāĻžāϏ āĻ•āϰāĻŦ⧇ āϤāĻžāĻĻ⧇āϰāϕ⧇ model āϟāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĻā§‡ā§ŸāĻž āĻšāĻŦ⧇, āĻ…āĻ¨ā§āϝ āϏāĻŦ āφāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āϕ⧇ āĻĒā§āϰāĻ¤ā§āϝāĻžāĻ–ā§āϝāĻžāύ āĻšāĻŦ⧇āĨ¤ ![The prediction API dialog showing the URL and key](../../../../images/custom-vision-prediction-key-endpoint.png) -✅ āϝāĻ–āύ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ Iteration āĻĒāĻžāĻŦāϞāĻŋāĻļ āĻ•āϰāĻž āĻšā§Ÿ, āϤāĻ–āύ āĻāϟāĻžāϰ āĻ…āĻ¨ā§āϝ āύāĻžāĻŽ āĻĨāĻžāϕ⧇āĨ¤āύ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž Iteration āφāĻŽāϰāĻž āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻž āϝāĻžā§Ÿ āϏ⧇āϟāĻž āφāĻŽāϰāĻž āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āϚāĻŋāĻ¨ā§āϤāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ +✅ āϝāĻ–āύ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ Iteration āĻĒāĻžāĻŦāϞāĻŋāĻļ āĻ•āϰāĻž āĻšā§Ÿ, āϤāĻ–āύ āĻāϟāĻžāϰ āĻ…āĻ¨ā§āϝ āύāĻžāĻŽ āĻĨāĻžāϕ⧇āĨ¤ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž Iteration āφāĻŽāϰāĻž āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻž āϝāĻžā§Ÿ āϏ⧇āϟāĻž āφāĻŽāϰāĻž āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āϚāĻŋāĻ¨ā§āϤāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ ## IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨ⧇āϕ⧇ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāχ āĻ•āϰāĻž @@ -134,40 +109,32 @@ Iteration āĻšāϞ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāϏāύ āĻĒā§‹āĻ°ā§āϟāĻžāϞ āĨ¤ ### āĻ•āĻžāϜ - āφāĻŽāĻžāĻĻ⧇āϰ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨ⧇āϕ⧇ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāχ āĻ•āϰāĻž - āĻĒā§āϰāĻžāϏāĻ™ā§āĻ—āĻŋāĻ• āĻ—āĻžāχāĻĄ āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻ•āĻžāϜ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āχāĻŽā§‡āϜ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰāĻŋāσ -* [Arduino - Wio Terminal](wio-terminal-classify-image.md) -* [Single-board computer - Raspberry Pi/Virtual IoT device](single-board-computer-classify-image.md) - +* [Arduino - Wio Terminal](../wio-terminal-classify-image.md) +* [Single-board computer - Raspberry Pi/Virtual IoT device](../single-board-computer-classify-image.md) ## Model āωāĻ¨ā§āύāϤ āĻ•āϰāĻž - - āφāĻŽāϰāĻž āϝ⧇āύ⧇ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰāĻŋ āϝ⧇, IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻāϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāύ⧇āĻ•ā§āĻŸā§‡āĻĄ āĻĨāĻžāĻ•āĻž āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āĻĨ⧇āϕ⧇ āφāĻŽāϰāĻž āφāĻļāĻžāύ⧁āϰ⧂āĻĒ āϰ⧇āϜāĻžāĻ˛ā§āϟ āύāĻžāĻ“ āĻĒ⧇āϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ āĻĨ⧇āϕ⧇ āφāĻĒāϞ⧋āĻĄ āĻ•āϰāĻž āχāĻŽā§‡āϜ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻĒā§āϰ⧇āĻĄāĻŋāĻ•āĻļāύ āϗ⧁āϞ⧋ āϏāĻŦāϏāĻŽā§Ÿ āϏāĻ āĻŋāĻ• āĻšā§Ÿ āύāĻžāĨ¤ āĻāϟāĻžāϰ āĻ•āĻžāϰāύ āĻšāϞ Model āϝ⧇ āĻĄāĻžāϟāĻžāϰ āωāĻĒāϰ āĻŸā§āϰ⧇āχāύ āĻ•āϰāĻž āĻšā§Ÿā§‡āϛ⧇ āϤāĻžāϰ āĻĨ⧇āϕ⧇ āĻ­āĻŋāĻ¨ā§āύ āĻĄāĻžāϟāĻž āĻĒā§āϰ⧇āĻĄāĻŋāĻ•āĻļāύ āĻāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāĨ¤ - - āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžā§ŸāĻžāϰ āĻĨ⧇āϕ⧇ āϏāĻŦāĻšā§‡ā§Ÿā§‡ āĻ­āĻžāϞ āϰ⧇āϜāĻžāĻ˛ā§āϟ āĻāϰ āϜāĻ¨ā§āϝ, āφāĻŽāϰāĻž āĻĒā§āϰ⧇āĻĄāĻŋāĻ•āĻļāύ āĻāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āχāĻŽā§‡āϜ āĻāϰ āĻŽāϤ āϝāĻĨāĻžāϏāĻŽā§āĻ­āĻŦ āĻ…āύ⧁āϰ⧂āĻĒ āχāĻŽā§‡āϜ āωāĻĒāϰ āφāĻŽāĻžāĻĻ⧇āϰ model āĻŸā§āϰ⧇āχāύ āĻ•āϰāϤ⧇ āϚāĻžāĻŦā§‹āĨ¤ āωāĻĻāĻžāĻšāϰāĻŖ āĻ¸ā§āĻŦāϰ⧂āĻĒ, āφāĻŽāϰāĻž āϝāĻĻāĻŋ āĻŸā§āϰ⧇āχāύāĻŋāĻ‚ āĻāϰ āχāĻŽā§‡āϜ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻāϰ āϜāĻ¨ā§āϝ āĻĢā§‹āύ āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŋ, āϏ⧇āϟāĻžāϰ āχāĻŽā§‡āϜ āĻ•ā§‹ā§ŸāĻžāϞāĻŋāϟāĻŋ, āĻļāĻžāĻ°ā§āĻĒāύ⧇āϏ, āĻāĻŦāĻ‚ āĻ•āĻžāϞāĻžāϰ āĻāĻ•āϟ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻāϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāύ⧇āĻ•ā§āĻŸā§‡āĻĄ āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āĻĨ⧇āϕ⧇ āĻ­āĻŋāĻ¨ā§āύ āĻšāĻŦ⧇āĨ¤ ![2 banana pictures, a low resolution one with poor lighting from an IoT device, and a high resolution one with good lighting from a phone](../../../../images/banana-picture-compare.png) - āωāĻĒāϰ⧇āϰ āχāĻŽā§‡āϜ āĻ, āĻŦāĻžāĻŽā§‡āϰ āĻ•āϞāĻžāϰ āĻ›āĻŦāĻŋ āĻāĻ•āϟāĻŋ āϰāĻžāĻ¸ā§āĻĒāĻŦ⧇āϰāĻŋ āĻĒāĻžāχ āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āĻĨ⧇āϕ⧇ āĻ¨ā§‡ā§ŸāĻž āĻšā§Ÿā§‡āĻ›āĻŋāϞ, āĻĄāĻžāύ⧇āϰ āϟāĻž āĻāĻ•āχ āĻ•āϞāĻžāϰ āĻ›āĻŦāĻŋ āφāχāĻĢā§‹āύ āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āĻĨ⧇āϕ⧇ āĻ¨ā§‡ā§ŸāĻž āĻšā§Ÿā§‡āĻ›āĻŋāϞāĨ¤ āĻāĻ–āĻžāύ⧇āϰ āĻ•ā§‹ā§ŸāĻžāϞāĻŋāϟāĻŋāϰ āĻĻāĻŋāĻ• āĻĨ⧇āϕ⧇ āϞāĻ•ā§āώāĻŖā§€āϝāĻŧ āĻ­āĻŋāĻ¨ā§āύāϤāĻž āφāϛ⧇ - āφāχāĻĢā§‹āύ āĻāϰ āĻ›āĻŦāĻŋ āϟāĻž āĻļāĻžāĻ°ā§āĻĒāĻžāϰ, āωāĻœā§āĻœā§āĻŦāϞ āĻ•āĻžāϞāĻžāϰ āϏāĻš āĻāĻŦāĻ‚ āĻŦ⧇āĻļāĻŋ āĻ•āĻ¨ā§āĻŸā§āϰāĻžāĻ¸ā§āϟ āĻāϰāĨ¤ ✅ āφāĻŽāĻžāĻĻ⧇āϰ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻĻāĻŋā§Ÿā§‡ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰāĻž āχāĻŽā§‡āϜ āĻāϰ āϭ⧁āϞ āĻĒā§āϰ⧇āĻĄāĻŋāĻ•āĻļāύ āĻāϰ āϜāĻ¨ā§āϝ āφāϰ āĻ•āĻŋ āĻ•āĻŋ āĻ•āĻžāϰāύ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇? āĻāĻ•āϟāĻž IoT āĻĄāĻŋāĻ­āĻžāχāϏ āϝ⧇ āĻĒāϰāĻŋāĻŦ⧇āĻļ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāϤ⧇ āĻĒāĻžāϰ⧇ āϏ⧇āϟāĻž āύāĻŋā§Ÿā§‡ āϚāĻŋāĻ¨ā§āϤāĻž āĻ•āϰāĻŋ, āĻ•āĻŋ āĻ•āĻŋ āĻĢā§āϝāĻžāĻ•ā§āϟāϰ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰāĻž āχāĻŽā§‡āϜ āϕ⧇ āĻĒā§āϰāĻ­āĻžāĻŦāĻŋāϤ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ -model āϕ⧇ āωāĻ¨ā§āύāϤ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ, āφāĻŽāϰāĻž IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨ⧇āϕ⧇ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰāĻž āχāĻŽā§‡āϜ āĻĻāĻŋā§Ÿā§‡ āϰāĻŋāĻŸā§āϰ⧇āχāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ - +āĻŽāĻĄā§‡āϞ āϕ⧇ āωāĻ¨ā§āύāϤ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ, āφāĻŽāϰāĻž IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨ⧇āϕ⧇ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰāĻž āχāĻŽā§‡āϜ āĻĻāĻŋā§Ÿā§‡ āϰāĻŋāĻŸā§āϰ⧇āχāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ --- -### āĻ•āĻžāϜ - model āωāĻ¨ā§āύāϤ āĻ•āϰāĻž +### āĻ•āĻžāϜ - āĻŽāĻĄā§‡āϞ āωāĻ¨ā§āύāϤ āĻ•āϰāĻž -1. āφāĻŽāĻžāĻĻ⧇āϰ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻĻāĻŋā§Ÿā§‡ āĻĒāĻžāĻ•āĻž āĻāĻŦāĻ‚ āĻ•āĻžāρāϚāĻž āĻāϰ āĻ•āĻŋāϛ⧁ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāχ āĻ•āϰāĻŋāĨ¤ +1. āφāĻŽāĻžāĻĻ⧇āϰ IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻĻāĻŋā§Ÿā§‡ āĻĒāĻžāĻ•āĻž āĻāĻŦāĻ‚ āĻ•āĻžāρāϚāĻž āĻĢāϞ⧇āϰ āĻ•āĻŋāϛ⧁ āχāĻŽā§‡āϜ āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻžāχ āĻ•āϰāĻŋāĨ¤ 1. āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāϏāύ āĻĒā§‹āĻ°ā§āϟāĻžāϞ āĻ, *Predictions* āĻŸā§āϝāĻžāĻŦ āĻāϰ āχāĻŽā§‡āϜ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϰāĻŋāĻŸā§āϰ⧇āχāύ āĻ•āϰāĻŋāĨ¤ @@ -187,22 +154,22 @@ model āϕ⧇ āωāĻ¨ā§āύāϤ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ, āφāĻŽāϰāĻž IoT āĻĄāĻŋ ## 🚀 āĻšā§āϝāĻžāϞ⧇āĻžā§āϜ -āχāĻŽā§‡āϜ āĻāϰ āϰ⧇āĻœā§‹āϞāĻŋāωāĻļāύ āĻ…āĻĨāĻŦāĻž āφāϞ⧋ āĻĒā§āϰ⧇āĻĄāĻŋāĻ•āĻļāύ āϕ⧇ āĻ•āϤāϟ⧁āϕ⧁ āĻĒā§āϰāĻ­āĻžāĻŦāĻŋāϤ āĻ•āϰ⧇? +āχāĻŽā§‡āϜ āĻāϰ āϰ⧇āĻœā§‹āϞāĻŋāωāĻļāύ āĻ…āĻĨāĻŦāĻž āφāϞ⧋āϰ āωāĻĒāĻ¸ā§āĻĨāĻŋāϤāĻŋ āĻāĻ–āĻžāύ⧇ āĻĒā§āϰ⧇āĻĄāĻŋāĻ•āĻļāύ āϕ⧇ āĻ•āϤāϟ⧁āϕ⧁ āĻĒā§āϰāĻ­āĻžāĻŦāĻŋāϤ āĻ•āϰ⧇? āφāĻŽāĻžāĻĻ⧇āϰ āĻĄāĻŋāĻ­āĻžāχāϏ āĻāϰ āϕ⧋āĻĄ āĻ āχāĻŽā§‡āϜ āĻāϰ āϰ⧇āĻœā§‹āϞāĻŋāωāĻļāύ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰāĻŋ āĻāĻŦāĻ‚ āĻĻ⧇āĻ–āĻŋ āĻāϟāĻž āχāĻŽā§‡āϜ āĻāϰ āĻ•ā§‹ā§ŸāĻžāϞāĻŋāϟāĻŋ āϤ⧇ āϕ⧋āύ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āφāύ⧇ āĻ•āĻŋāύāĻžāĨ¤ āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ āφāϞ⧋ āĻšā§‡āĻžā§āϜ āĻ•āϰ⧇āĻ“ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰ⧇ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ -āϝāĻĻāĻŋ āφāĻŽāϰāĻž āĻāχ āĻĒā§āϰ⧋āĻĄāĻžāĻ•āĻļāύ āĻĄāĻŋāĻ­āĻžāχāϏāϟāĻŋ āϕ⧋āύ āĻĢāĻžāĻ°ā§āĻŽ āĻ…āĻĨāĻŦāĻž āĻĢā§āϝāĻžāĻ•ā§āϟāϰāĻŋ āϤ⧇ āĻŦāĻŋāĻ•ā§āĻ°ā§Ÿā§‡āϰ āϜāĻ¨ā§āϝ āϤ⧈āϰ⧀ āĻ•āϰāĻŋ, āφāĻŽāϰāĻž āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ āϝ⧇ āĻāϟāĻž āϏāĻŦ āϏāĻŽā§Ÿ āϧāĻžāϰāĻžāĻŦāĻžāĻšāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻ­āĻžāϞ⧋ āĻĢāϞāĻžāĻĢāϞ āĻĻāĻŋāĻŦ⧇āĨ¤ +āϝāĻĻāĻŋ āφāĻŽāϰāĻž āĻāχ āĻĒā§āϰ⧋āĻĄāĻžāĻ•āĻļāύ āĻĄāĻŋāĻ­āĻžāχāϏāϟāĻŋ āϕ⧋āύ āĻĢāĻžāĻ°ā§āĻŽ āĻ…āĻĨāĻŦāĻž āĻĢā§āϝāĻžāĻ•ā§āϟāϰāĻŋ āϤ⧇ āĻŦāĻŋāĻ•ā§āĻ°ā§Ÿā§‡āϰ āϜāĻ¨ā§āϝ āϤ⧈āϰ⧀ āĻ•āϰāĻŋ, āφāĻŽāϰāĻž āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ āϝ⧇ āĻāϟāĻž āϏāĻŦ āϏāĻŽā§Ÿ āϧāĻžāϰāĻžāĻŦāĻžāĻšāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻ­āĻžāϞ⧋ āĻĢāϞāĻžāĻĢāϞ āĻĻāĻŋāĻŦ⧇? -## ## āϞ⧇āĻ•āϚāĻžāϰ-āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āϕ⧁āχāϜ +## āϞ⧇āĻ•āϚāĻžāϰ-āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āϕ⧁āχāϜ [āϞ⧇āĻ•āϚāĻžāϰ-āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āϕ⧁āχāϜ](https://brave-island-0b7c7f50f.azurestaticapps.net/quiz/32) ## āϰāĻŋāĻ­āĻŋāω āĻ“ āĻ¸ā§āĻŦ-āĻ…āĻ§ā§āϝ⧟āύ -āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāϏāύ āĻŽāĻĄā§‡āϞ āĻĒā§‹āĻ°ā§āϟāĻžāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻŸā§āϰ⧇āχāύ āĻ•āϰ⧇āĻ›āĻŋāĨ¤ āĻāϟāĻž āχāĻŽā§‡āϜ āĻāϰ āϏāĻšāϜāϞāĻ­ā§āϝāϤāĻžāϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇ - āĻāĻŦāĻ‚ āĻŦāĻžāĻ¸ā§āϤāĻŦ āϜāĻ—āϤ⧇ āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āĻĄāĻŋāĻ­āĻžāχāϏ āĻāϰ āϏāĻžāĻĨ⧇ āĻŽā§āϝāĻžāϚ āĻ•āϰ⧇ āĻāĻŽāύ āĻŸā§āϰ⧇āχāύāĻŋāĻ‚ āĻĄāĻžāϟāĻž āĻšā§ŸāϤ āĻĒāĻžāĻŦā§‹ āύāĻžāĨ¤ āφāĻŽāϰāĻž āĻāϟāĻžāϰ āĻŦāĻĻāϞ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨ⧇āϕ⧇ āϏāϰāĻžāϏāϰāĻŋ āĻŸā§āϰ⧇āχāύāĻŋāĻ‚ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ āĻ•āϰāϤ⧇ āĻāĻĒāĻŋāφāχ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇, IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨ⧇āϕ⧇ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰāĻž āχāĻŽā§‡āϜ āĻĻāĻŋā§Ÿā§‡ āĻŽāĻĄā§‡āϞ āĻŸā§āϰ⧇āχāύ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝāĨ¤ +āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻ­āĻŋāϏāύ āĻŽāĻĄā§‡āϞ āĻĒā§‹āĻ°ā§āϟāĻžāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻŸā§āϰ⧇āχāύ āĻ•āϰ⧇āĻ›āĻŋāĨ¤ āĻāϟāĻž āχāĻŽā§‡āϜ āĻāϰ āϏāĻšāϜāϞāĻ­ā§āϝāϤāĻžāϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇ - āĻāĻŦāĻ‚ āĻŦāĻžāĻ¸ā§āϤāĻŦ āϜāĻ—āϤ⧇ āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž āĻĄāĻŋāĻ­āĻžāχāϏ āĻāϰ āϏāĻžāĻĨ⧇ āĻŽāĻŋāϞ⧇ āĻāĻŽāύ āĻŸā§āϰ⧇āχāύāĻŋāĻ‚ āĻĄāĻžāϟāĻž āĻšā§ŸāϤ āĻĒāĻžāĻŦā§‹ āύāĻžāĨ¤ āφāĻŽāϰāĻž āĻāϟāĻžāϰ āĻŦāĻĻāϞ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨ⧇āϕ⧇ āϏāϰāĻžāϏāϰāĻŋ āĻŸā§āϰ⧇āχāύāĻŋāĻ‚ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ āĻ•āϰāϤ⧇ āĻāĻĒāĻŋāφāχ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇, IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻĨ⧇āϕ⧇ āĻ•ā§āϝāĻžāĻĒāϚāĻžāϰ āĻ•āϰāĻž āχāĻŽā§‡āϜ āĻĻāĻŋā§Ÿā§‡ āĻŽāĻĄā§‡āϞ āĻŸā§āϰ⧇āχāύ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝāĨ¤ -* āĻŸā§āϰ⧇āχāύāĻŋāĻ‚ āĻāĻĒāĻŋāφāχ āĻāϰ āωāĻĒāϰ āĻĒ⧜⧁āύ [using the Custom Vision SDK quick start](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/quickstarts/image-classification?WT.mc_id=academic-17441-jabenn&tabs=visual-studio&pivots=programming-language-python) +* āĻŸā§āϰ⧇āχāύāĻŋāĻ‚ āĻāĻĒāĻŋāφāχ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āφāϰ⧋ āϜāĻžāύāϤ⧇ [using the Custom Vision SDK quick start](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/quickstarts/image-classification?WT.mc_id=academic-17441-jabenn&tabs=visual-studio&pivots=programming-language-python) āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ ## āĻāϏāĻžāχāύāĻŽā§‡āĻ¨ā§āϟ -[āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻŋāϕ⧇āĻļāύ āϰ⧇āϜāĻžāĻ˛ā§āĻŸā§‡āϰ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋ⧟āĻž āϜāĻžāύāĻžāύ⧋](./assignment.bn.md) +[āĻ•ā§āϞāĻžāϏāĻŋāĻĢāĻŋāϕ⧇āĻļāύ āϰ⧇āϜāĻžāĻ˛ā§āĻŸā§‡āϰ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋ⧟āĻž āϜāĻžāύāĻžāύ⧋](assignment.bn.md) diff --git a/translations/README.bn.md b/translations/README.bn.md index 3ce2f415..69772140 100644 --- a/translations/README.bn.md +++ b/translations/README.bn.md @@ -92,7 +92,7 @@ | 13 | [āĻĒāϰāĻŋāĻŦāĻšāύ](../3-transport) | āϞ⧋āϕ⧇āĻļāύ āĻĄā§‡āϟāĻž āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ |āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰ⧇ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāύ⧇āϰ āĻĄā§‡āϟāĻž āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰāĻž āĻāĻŦāĻ‚ āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰāϗ⧁āϞāĻŋ āϕ⧀āĻ­āĻžāĻŦ⧇ ⧍āϟāĻŋ āĻŽāĻžāĻ¤ā§āϰāĻžāϝāĻŧ āĻŦāĻžāĻ¸ā§āϤāĻŦ āĻ¤ā§āϰāĻŋāĻŽāĻžāĻ¤ā§āϰāĻŋāĻ• āĻŦāĻŋāĻļā§āĻŦ⧇āϰ āωāĻĒāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇ āϏ⧇ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻœā§āĻžāĻžāύ āĻ…āĻ°ā§āϜāύ | [āϞ⧋āϕ⧇āĻļāύ āĻĄā§‡āϟāĻž āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ](../3-transport/lessons/3-visualize-location-data/translations/README.bn.md) | | 14 | [āĻĒāϰāĻŋāĻŦāĻšāύ](../3-transport) | Geofences | Geofences āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϜāĻžāύāĻž āĻāĻŦāĻ‚ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϏāĻžāĻĒā§āϞāĻžāχ āĻšā§‡āχāύ⧇āϰ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻĒāĻ°ā§āϝāĻžā§Ÿā§‡āϰ āĻŦāĻžāĻšāύāϗ⧁āϞ⧋ āϝāĻ–āύ āĻ—āĻ¨ā§āϤāĻŦā§āϝ⧇āϰ āĻ•āĻžāĻ›āĻžāĻ•āĻžāĻ›āĻŋ āĻĒ⧌āρāĻ›āĻžā§Ÿ āϤāĻ–āύ āĻāϞāĻžāĻ°ā§āϟ āĻĻā§‡ā§ŸāĻž āϝāĻžā§Ÿ āϤāĻž āĻļ⧇āĻ–āĻž | [Geofences](../3-transport/lessons/4-geofences/README.md) | | 15 | [āĻ‰ā§ŽāĻĒāĻžāĻĻāύ](../4-manufacturing) | āĻ–āĻžāĻĻā§āϝāĻĒāĻŖā§āϝ⧇āϰ āϗ⧁āĻŖāĻŽāĻžāύ āϏāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀ āĻŽāĻĄā§‡āϞāϕ⧇ āĻŸā§āϰ⧇āύāĻŋāĻ‚ āĻĒā§āϰāĻĻāĻžāύ | āĻ•ā§āϞāĻžāωāĻĄā§‡āϰ āĻ›āĻŦāĻŋ āĻļā§āϰ⧇āĻŖāĻŋāĻŦāĻĻā§āϧāĻ•āϰāĻŖ āĻŽāĻĄā§‡āϞāϕ⧇ (Image Classifier) āĻĢāϞ⧇āϰ āĻŽāĻžāύ āϏāύāĻžāĻ•ā§āϤ āĻ•āϰāϤ⧇ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŋāϤ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϏ⧇ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϜāĻžāύāĻž | [āĻ–āĻžāĻĻā§āϝāĻĒāĻŖā§āϝ⧇āϰ āϗ⧁āĻŖāĻŽāĻžāύ āϏāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀ āĻŽāĻĄā§‡āϞāϕ⧇ āĻŸā§āϰ⧇āύāĻŋāĻ‚ āĻĒā§āϰāĻĻāĻžāύ](../4-manufacturing/lessons/1-train-fruit-detector/translations/README.bn.md) | -| 16 | [āĻ‰ā§ŽāĻĒāĻžāĻĻāύ](../4-manufacturing) | Check fruit quality from an IoT device | āφāχāĻ“āϟāĻŋ āĻĄāĻŋāĻ­āĻžāχāϏ⧇ āĻĢāϞ⧇āϰ āϗ⧁āĻŖāĻ—āϤ āĻŽāĻžāύ āϏāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀ āĻŦā§āϝāĻŦāĻšāĻžāϰ | [Check fruit quality from an IoT device](../4-manufacturing/lessons/2-check-fruit-from-device/README.md) | +| 16 | [āĻ‰ā§ŽāĻĒāĻžāĻĻāύ](../4-manufacturing) | IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĢāϞ⧇āϰ āĻŽāĻžāύ āϝāĻžāϚāĻžāχ | āφāχāĻ“āϟāĻŋ āĻĄāĻŋāĻ­āĻžāχāϏ⧇ āĻĢāϞ⧇āϰ āϗ⧁āĻŖāĻ—āϤ āĻŽāĻžāύ āϏāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀ āĻŦā§āϝāĻŦāĻšāĻžāϰ | [IoT āĻĄāĻŋāĻ­āĻžāχāϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĢāϞ⧇āϰ āĻŽāĻžāύ āϝāĻžāϚāĻžāχ](../4-manufacturing/lessons/2-check-fruit-from-device/translations/README.bn.md) | | 17 | [āĻ‰ā§ŽāĻĒāĻžāĻĻāύ](../4-manufacturing) | Edge āĻ Fruit Detector āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰāĻž | āĻĢāϞ⧇āϰ āϗ⧁āĻŖāĻ—āϤ āĻŽāĻžāύ āϏāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀āϕ⧇ Edge āĻšāĻŋāϏ⧇āĻŦ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ | [Edge āĻ Fruit Detector āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰāĻž](../4-manufacturing/lessons/3-run-fruit-detector-edge/translations/README.bn.md) | | 18 | [āĻ‰ā§ŽāĻĒāĻžāĻĻāύ](../4-manufacturing) | Trigger fruit quality detection from a sensor | āϏ⧇āĻ¨ā§āϏāϰ āĻĨ⧇āϕ⧇ āĻĢāϞ⧇āϰ āϗ⧁āĻŖāĻžāϗ⧁āĻŖ āϏāύāĻžāĻ•ā§āϤāĻ•āϰāĻŖ āύāĻŋ⧟āĻ¨ā§āĻ¤ā§āϰāĻŖ āĻ•āϰāĻž āĻļ⧇āĻ–āĻž| [Trigger fruit quality detection from a sensor](../4-manufacturing/lessons/4-trigger-fruit-detector/README.md) | | 19 | [āϖ⧁āϚāϰāĻžāĻĒāĻ°ā§āϝāĻžā§Ÿ](../5-retail) | Train a stock detector | āϕ⧋āύāĻ“ āĻĻā§‹āĻ•āĻžāύ⧇ āĻ¸ā§āϟāĻ• āĻ—āĻŖāύāĻž āĻ•āϰāϤ⧇ āĻ¸ā§āϟāĻ• āĻĄāĻŋāĻŸā§‡āĻ•ā§āϟāϰāϕ⧇ āĻĒā§āϰāĻļāĻŋāĻ•ā§āώāĻŖ āĻĻ⧇āĻ“āϝāĻŧāĻžāϰ āϜāĻ¨ā§āϝ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āϏāύāĻžāĻ•ā§āϤāĻ•āϰāĻŖ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝāĻžāϝāĻŧ āϤāĻž āĻļ⧇āĻ–āĻž | [Train a stock detector](../5-retail/lessons/1-train-stock-detector/README.md) | From 72ebf6b1aecacca60d78e6d11a6127f685e9df8d Mon Sep 17 00:00:00 2001 From: Dhanya Hegde <71935582+DhanyaHegde01@users.noreply.github.com> Date: Thu, 28 Oct 2021 21:38:04 +0530 Subject: [PATCH 35/35] Created Hindi translation for retail (#337) * Created Hindi translation for retail * Update 5-retail/translations/ReadME.hi.md Co-authored-by: Bhavesh Suneja <40915476+EliteWarrior315@users.noreply.github.com> * Update 5-retail/translations/ReadME.hi.md Co-authored-by: Bhavesh Suneja <40915476+EliteWarrior315@users.noreply.github.com> * Update 5-retail/translations/ReadME.hi.md Co-authored-by: Bhavesh Suneja <40915476+EliteWarrior315@users.noreply.github.com> Co-authored-by: Jim Bennett Co-authored-by: Bhavesh Suneja <40915476+EliteWarrior315@users.noreply.github.com> --- 5-retail/translations/ReadME.hi.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 5-retail/translations/ReadME.hi.md diff --git a/5-retail/translations/ReadME.hi.md b/5-retail/translations/ReadME.hi.md new file mode 100644 index 00000000..1ffc8967 --- /dev/null +++ b/5-retail/translations/ReadME.hi.md @@ -0,0 +1,19 @@ +# ⤖āĨā¤Ļā¤°ā¤ž - ⤏āĨā¤ŸāĨ‰ā¤• ⤏āĨā¤¤ā¤°āĨ‹ā¤‚ ⤕āĨ‹ ā¤ĒāĨā¤°ā¤Ŧ⤂⤧ā¤ŋ⤤ ⤕⤰⤍āĨ‡ ⤕āĨ‡ ⤞ā¤ŋā¤ IoT ā¤•ā¤ž ⤉ā¤Ē⤝āĨ‹ā¤— ā¤•ā¤°ā¤¨ā¤ž + +⤉ā¤Ē⤭āĨ‹ā¤•āĨā¤¤ā¤žā¤“⤂ ⤤⤕ ā¤Ēā¤šāĨā¤‚ā¤šā¤¨āĨ‡ ⤏āĨ‡ ā¤Ēā¤šā¤˛āĨ‡ ā¤Ģā¤ŧāĨ€ā¤Ą ⤕āĨ‡ ⤞ā¤ŋā¤ ⤅⤂⤤ā¤ŋā¤Ž ⤚⤰⤪ ⤖āĨā¤Ļā¤°ā¤ž ā¤šāĨˆ - ā¤Ŧā¤žā¤œā¤žā¤°, ⤕ā¤ŋā¤°ā¤žā¤¨āĨ‡ ā¤•ā¤ž ā¤¸ā¤žā¤Žā¤žā¤¨, ⤏āĨā¤Ēā¤°ā¤Žā¤žā¤°āĨā¤•āĨ‡ā¤Ÿ ⤔⤰ ⤏āĨā¤ŸāĨ‹ā¤° ⤜āĨ‹ ⤉ā¤Ē⤭āĨ‹ā¤•āĨā¤¤ā¤žā¤“⤂ ⤕āĨ‹ ⤉⤤āĨā¤Ēā¤žā¤Ļ ā¤ŦāĨ‡ā¤šā¤¤āĨ‡ ā¤šāĨˆā¤‚āĨ¤ ⤝āĨ‡ ⤏āĨā¤ŸāĨ‹ā¤° ā¤¯ā¤š ⤏āĨā¤¨ā¤ŋā¤ļāĨā¤šā¤ŋ⤤ ā¤•ā¤°ā¤¨ā¤ž ā¤šā¤žā¤šā¤¤āĨ‡ ā¤šāĨˆā¤‚ ⤕ā¤ŋ ⤉ā¤Ē⤭āĨ‹ā¤•āĨā¤¤ā¤žā¤“⤂ ⤕āĨ‡ ā¤ĻāĨ‡ā¤–⤍āĨ‡ ⤔⤰ ⤖⤰āĨ€ā¤Ļ⤍āĨ‡ ⤕āĨ‡ ⤞ā¤ŋā¤ ⤇⤍⤕āĨ‡ ā¤Ēā¤žā¤¸ ā¤…ā¤˛ā¤Žā¤žā¤°ā¤ŋ⤝āĨ‹ā¤‚ ā¤Ē⤰ ⤉⤤āĨā¤Ēā¤žā¤Ļ⤍ ā¤šāĨ‹āĨ¤ + +ā¤–ā¤žā¤ĻāĨā¤¯ ā¤­ā¤‚ā¤Ąā¤žā¤°āĨ‹ā¤‚ ā¤ŽāĨ‡ā¤‚, ā¤ĩā¤ŋā¤ļāĨ‡ā¤ˇ ⤰āĨ‚ā¤Ē ⤏āĨ‡ ā¤Ŧā¤Ąā¤ŧāĨ‡ ⤏āĨā¤Ēā¤°ā¤Žā¤žā¤°āĨā¤•āĨ‡ā¤Ÿ ā¤ŽāĨ‡ā¤‚, ⤏ā¤Ŧ⤏āĨ‡ ⤅⤧ā¤ŋ⤕ ā¤ŽāĨˆā¤¨āĨā¤…⤞, ā¤¸ā¤Žā¤¯ ⤞āĨ‡ā¤¨āĨ‡ ā¤ĩā¤žā¤˛āĨ‡ ā¤•ā¤žā¤°āĨā¤¯āĨ‹ā¤‚ ā¤ŽāĨ‡ā¤‚ ⤏āĨ‡ ā¤ā¤• ā¤¯ā¤š ⤏āĨā¤¨ā¤ŋā¤ļāĨā¤šā¤ŋ⤤ ā¤•ā¤°ā¤¨ā¤ž ā¤šāĨˆ ⤕ā¤ŋ ā¤…ā¤˛ā¤Žā¤žā¤°ā¤ŋ⤝āĨ‹ā¤‚ ⤕āĨ‹ ⤏āĨā¤ŸāĨ‰ā¤• ⤕ā¤ŋā¤¯ā¤ž ā¤—ā¤¯ā¤ž ā¤šāĨˆ ā¤¯ā¤ž ā¤¨ā¤šāĨ€ā¤‚ ⤔⤰ ā¤¯ā¤š ⤏āĨā¤¨ā¤ŋā¤ļāĨā¤šā¤ŋ⤤ ⤕⤰⤍āĨ‡ ⤕āĨ‡ ⤞ā¤ŋā¤ ⤅⤞⤗-⤅⤞⤗ ā¤…ā¤˛ā¤Žā¤žā¤°ā¤ŋ⤝āĨ‹ā¤‚ ⤕āĨ€ ā¤œā¤žā¤ā¤š ā¤•ā¤°ā¤¨ā¤ž ⤕ā¤ŋ ⤕ā¤ŋ⤏āĨ€ ⤭āĨ€ ā¤…ā¤‚ā¤¤ā¤°ā¤žā¤˛ ⤕āĨ‹ ⤏āĨā¤ŸāĨ‹ā¤° ⤰āĨ‚ā¤Ž ⤏āĨ‡ ⤉ā¤Ē⤜ ⤏āĨ‡ ā¤­ā¤°ā¤ž ā¤—ā¤¯ā¤ž ā¤šāĨˆ ā¤¯ā¤ž ā¤¨ā¤šāĨ€ā¤‚āĨ¤ + +IoT ā¤‡ā¤¸ā¤ŽāĨ‡ā¤‚ ā¤Žā¤Ļā¤Ļ ⤕⤰ ā¤¸ā¤•ā¤¤ā¤ž ā¤šāĨˆ, ⤏āĨā¤ŸāĨ‰ā¤• ⤗ā¤ŋ⤍⤍āĨ‡ ⤕āĨ‡ ⤞ā¤ŋā¤ IoT ⤉ā¤Ē⤕⤰⤪āĨ‹ā¤‚ ā¤Ē⤰ ⤚⤞⤍āĨ‡ ā¤ĩā¤žā¤˛āĨ‡ AI ā¤ŽāĨ‰ā¤Ąā¤˛ ā¤•ā¤ž ⤉ā¤Ē⤝āĨ‹ā¤— ⤕⤰⤕āĨ‡, ā¤Žā¤ļāĨ€ā¤¨ ⤞⤰āĨā¤¨ā¤ŋ⤂⤗ ā¤ŽāĨ‰ā¤Ąā¤˛ ā¤•ā¤ž ⤉ā¤Ē⤝āĨ‹ā¤— ⤕⤰⤕āĨ‡ ⤜āĨ‹ ⤍ ⤕āĨ‡ā¤ĩ⤞ ⤛ā¤ĩā¤ŋ⤝āĨ‹ā¤‚ ⤕āĨ‹ ā¤ĩ⤰āĨā¤—āĨ€ā¤•āĨƒā¤¤ ⤕⤰⤤āĨ‡ ā¤šāĨˆā¤‚, ā¤Ŧ⤞āĨā¤•ā¤ŋ ā¤ĩāĨā¤¯ā¤•āĨā¤¤ā¤ŋ⤗⤤ ā¤ĩ⤏āĨā¤¤āĨā¤“⤂ ā¤•ā¤ž ā¤Ēā¤¤ā¤ž ā¤˛ā¤—ā¤ž ⤏⤕⤤āĨ‡ ā¤šāĨˆā¤‚ ⤔⤰ ⤉⤍āĨā¤šāĨ‡ā¤‚ ⤗ā¤ŋ⤍ ⤏⤕⤤āĨ‡ ā¤šāĨˆā¤‚āĨ¤ + +⤇⤍ 2 ā¤Ēā¤žā¤ āĨ‹ā¤‚ ā¤ŽāĨ‡ā¤‚ ⤆ā¤Ē ⤏āĨ€ā¤–āĨ‡ā¤‚⤗āĨ‡ ⤕ā¤ŋ ⤏āĨā¤ŸāĨ‰ā¤• ⤕āĨ€ ā¤—ā¤Ŗā¤¨ā¤ž ⤕⤰⤍āĨ‡ ⤕āĨ‡ ⤞ā¤ŋā¤ ⤛ā¤ĩā¤ŋ-ā¤†ā¤§ā¤žā¤°ā¤ŋ⤤ AI ā¤ŽāĨ‰ā¤Ąā¤˛ ⤕āĨ‹ ⤕āĨˆā¤¸āĨ‡ ā¤ĒāĨā¤°ā¤ļā¤ŋ⤕āĨā¤ˇā¤ŋ⤤ ⤕ā¤ŋā¤¯ā¤ž ā¤œā¤žā¤, ⤔⤰ ⤕āĨˆā¤¸āĨ‡ ⤇⤍ ā¤ŽāĨ‰ā¤Ąā¤˛āĨ‹ā¤‚ ⤕āĨ‹ IoT ⤉ā¤Ē⤕⤰⤪āĨ‹ā¤‚ ā¤Ē⤰ ā¤šā¤˛ā¤žā¤¯ā¤ž ā¤œā¤žā¤āĨ¤ + +> 💁 ⤝āĨ‡ ā¤Ēā¤žā¤  ⤕āĨā¤› ⤕āĨā¤˛ā¤žā¤‰ā¤Ą ā¤¸ā¤‚ā¤¸ā¤žā¤§ā¤¨āĨ‹ā¤‚ ā¤•ā¤ž ⤉ā¤Ē⤝āĨ‹ā¤— ⤕⤰āĨ‡ā¤‚⤗āĨ‡āĨ¤ ⤝ā¤Ļā¤ŋ ⤆ā¤Ē ⤇⤏ ā¤Ē⤰ā¤ŋ⤝āĨ‹ā¤œā¤¨ā¤ž ⤕āĨ‡ ⤏⤭āĨ€ ā¤Ēā¤žā¤ āĨ‹ā¤‚ ⤕āĨ‹ ā¤ĒāĨ‚ā¤°ā¤ž ā¤¨ā¤šāĨ€ā¤‚ ⤕⤰⤤āĨ‡ ā¤šāĨˆā¤‚, ⤤āĨ‹ ⤏āĨā¤¨ā¤ŋā¤ļāĨā¤šā¤ŋ⤤ ⤕⤰āĨ‡ā¤‚ ⤕ā¤ŋ ⤆ā¤Ē [⤅ā¤Ēā¤¨ā¤ž ā¤ĒāĨā¤°āĨ‹ā¤œāĨ‡ā¤•āĨā¤Ÿ ā¤¸ā¤žā¤Ģā¤ŧ ⤕⤰āĨ‡ā¤‚](../clean-up.md)āĨ¤ +## ā¤ĩā¤ŋ⤎⤝ + +1. [⤏āĨā¤ŸāĨ‰ā¤• ā¤Ąā¤ŋ⤟āĨ‡ā¤•āĨā¤Ÿā¤° ⤕āĨ‹ ā¤ĒāĨā¤°ā¤ļā¤ŋ⤕āĨā¤ˇā¤ŋ⤤ ⤕⤰āĨ‡ā¤‚](./lessons/1-train-stock-detector/README.md) +1. [IoT ā¤Ąā¤ŋā¤ĩā¤žā¤‡ā¤¸ ⤏āĨ‡ ⤏āĨā¤ŸāĨ‰ā¤• ⤕āĨ€ ā¤œā¤žā¤‚ā¤š ⤕⤰āĨ‡ā¤‚](./lessons/2-check-stock-device/README.md) + +## ⤕āĨā¤°āĨ‡ā¤Ąā¤ŋ⤟ + +⤏⤭āĨ€ ā¤Ēā¤žā¤  [⤜ā¤ŋā¤Ž ā¤ŦāĨ‡ā¤¨āĨ‡ā¤Ÿ] ā¤ĻāĨā¤ĩā¤žā¤°ā¤ž ī¸ ⤕āĨ‡ ā¤¸ā¤žā¤Ĩ ⤞ā¤ŋ⤖āĨ‡ ā¤—ā¤ ā¤ĨāĨ‡ (https://GitHub.com/JimBobBennett)